summaryrefslogtreecommitdiffstats
path: root/cps-nf-proxy-rest/src/test/groovy/org/onap
diff options
context:
space:
mode:
authorHanif Kukkalli <lte-ng@outlook.com>2021-02-23 12:26:39 +0100
committerHanif Kukkalli <lte-ng@outlook.com>2021-02-26 11:23:28 +0000
commit83e318f8c7d3cacb24b2ef9b76162b0af12e817c (patch)
tree3a38e10ffcb878e6e61bdaeb2440d58b079467c5 /cps-nf-proxy-rest/src/test/groovy/org/onap
parent85aebca0339f9e619fa3a9fd537dc986fc7aa03a (diff)
Implement getDataNode(anchorName, xPath) in NF-Proxy
Added spring-boot-starter-validation instead of cps-ri. Added test 'Data node without leaves and without children.' to MultipartFileUtilSpec groovy test Created a method getNodeByCmHandleIdAndXpath(cmHandleId, cpsPath) Added hardcoded value of NFS DataspaceName as: "NFP-Operation". Issue-ID: CPS-172 Signed-off-by: Hanif Kukkalli <lte-ng@outlook.com> Change-Id: Ie8086ede01a9c5069b1ee75864b04a0ee5e8a4f6
Diffstat (limited to 'cps-nf-proxy-rest/src/test/groovy/org/onap')
-rw-r--r--cps-nf-proxy-rest/src/test/groovy/org/onap/cps/nfproxy/rest/controller/NfProxyControllerSpec.groovy43
1 files changed, 30 insertions, 13 deletions
diff --git a/cps-nf-proxy-rest/src/test/groovy/org/onap/cps/nfproxy/rest/controller/NfProxyControllerSpec.groovy b/cps-nf-proxy-rest/src/test/groovy/org/onap/cps/nfproxy/rest/controller/NfProxyControllerSpec.groovy
index 874a1b004..3cd6b9a9f 100644
--- a/cps-nf-proxy-rest/src/test/groovy/org/onap/cps/nfproxy/rest/controller/NfProxyControllerSpec.groovy
+++ b/cps-nf-proxy-rest/src/test/groovy/org/onap/cps/nfproxy/rest/controller/NfProxyControllerSpec.groovy
@@ -2,6 +2,8 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2021 Pantheon.tech
* ================================================================================
+ * Modification Copyright (C) 2021 highstreet technologies GmbH
+ * ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -19,13 +21,19 @@
package org.onap.cps.nfproxy.rest.controller
+import org.onap.cps.nfproxy.api.NfProxyDataService
+import org.onap.cps.spi.model.DataNodeBuilder
+import org.spockframework.spring.SpringBean
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.beans.factory.annotation.Value
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
import org.springframework.http.HttpStatus
import org.springframework.test.web.servlet.MockMvc
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders
import spock.lang.Specification
+import spock.lang.Unroll
+
+import static org.onap.cps.spi.FetchDescendantsOption.OMIT_DESCENDANTS
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
@WebMvcTest
class NfProxyControllerSpec extends Specification {
@@ -33,22 +41,31 @@ class NfProxyControllerSpec extends Specification {
@Autowired
MockMvc mvc
+ @SpringBean
+ NfProxyDataService mockNfProxyDataService = Mock()
+
@Value('${rest.api.xnf-base-path}')
def basePath
- def 'Hello world method invocation.'(){
- when: 'hello-world request performed'
- def response = mvc.perform(MockMvcRequestBuilders.get("$basePath/v1/hello-world")).andReturn().response
- then: 'success response returned'
- response.status == HttpStatus.OK.value()
- response.getContentAsString().contains("Hello World!")
+ def dataNodeBaseEndpoint
+
+ def setup() {
+ dataNodeBaseEndpoint = "$basePath/v1"
}
- def 'Example error handling.'(){
- when: 'hello-error request performed'
- def response = mvc.perform(MockMvcRequestBuilders.get("$basePath/v1/hello-error")).andReturn().response
- then: 'error response returned'
- response.status == HttpStatus.INTERNAL_SERVER_ERROR.value()
- response.getContentAsString().contains("Example error")
+ @Unroll
+ def 'Get data node.'() {
+ given: 'the service returns a data node'
+ def xpath = 'some xpath'
+ def cmHandle = 'some handle'
+ def dataNode = new DataNodeBuilder().withXpath(xpath).withLeaves(["leaf": "value"]).build()
+ def endpoint = "$dataNodeBaseEndpoint/cm-handles/$cmHandle/node"
+ mockNfProxyDataService.getDataNode(cmHandle, xpath, OMIT_DESCENDANTS) >> dataNode
+ when: 'get request is performed through REST API'
+ def response = mvc.perform(get(endpoint).param('xpath', xpath)).andReturn().response
+ then: 'a success response is returned'
+ response.status == HttpStatus.OK.value()
+ and: 'response contains expected leaf and value'
+ response.contentAsString.contains('"leaf":"value"')
}
}