summaryrefslogtreecommitdiffstats
path: root/cps-ncmp-rest/src/test
diff options
context:
space:
mode:
authorNiamh Core <niamh.core@est.tech>2021-08-05 13:06:57 +0000
committerGerrit Code Review <gerrit@onap.org>2021-08-05 13:06:57 +0000
commit0e210d77ec39915046a95615f5f9d2a2dc65162b (patch)
tree8bda19fd0f944e05b68b34a40595814501826bd0 /cps-ncmp-rest/src/test
parent0fca83f368f3af6b0d909be0982fee29344e0402 (diff)
parent4f4178c7af4ca5571a0813a5c79f35b11c825d35 (diff)
Merge "Implement DMI Registration (NCMP-Side)"
Diffstat (limited to 'cps-ncmp-rest/src/test')
-rw-r--r--cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy40
-rw-r--r--cps-ncmp-rest/src/test/java/org/onap/cps/TestUtils.java54
-rw-r--r--cps-ncmp-rest/src/test/resources/dmi-registration.json11
3 files changed, 97 insertions, 8 deletions
diff --git a/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy b/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy
index 45e8f11948..f537980ac8 100644
--- a/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy
+++ b/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy
@@ -28,7 +28,9 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put
+import com.fasterxml.jackson.databind.ObjectMapper
import com.google.gson.Gson
+import org.onap.cps.TestUtils
import org.onap.cps.ncmp.api.NetworkCmProxyDataService
import org.onap.cps.spi.model.DataNodeBuilder
import org.spockframework.spring.SpringBean
@@ -49,13 +51,19 @@ class NetworkCmProxyControllerSpec extends Specification {
@SpringBean
NetworkCmProxyDataService mockNetworkCmProxyDataService = Mock()
+ @SpringBean
+ ObjectMapper objectMapper = new ObjectMapper()
+
@Value('${rest.api.ncmp-base-path}')
def basePath
- def dataNodeBaseEndpoint
+ def deprecatedDataNodeBaseEndPoint
+
+ def ncmpDmiEndpoint
def setup() {
- dataNodeBaseEndpoint = "$basePath/v1"
+ deprecatedDataNodeBaseEndPoint = "$basePath/v1"
+ ncmpDmiEndpoint = "$basePath/ncmp-dmi/v1"
}
def cmHandle = 'some handle'
@@ -67,7 +75,7 @@ class NetworkCmProxyControllerSpec extends Specification {
def cpsPath = 'some cps-path'
mockNetworkCmProxyDataService.queryDataNodes(cmHandle, cpsPath, expectedCpsDataServiceOption) >> [dataNode]
and: 'the query endpoint'
- def dataNodeEndpoint = "$dataNodeBaseEndpoint/cm-handles/$cmHandle/nodes/query"
+ def dataNodeEndpoint = "$deprecatedDataNodeBaseEndPoint/cm-handles/$cmHandle/nodes/query"
when: 'query data nodes API is invoked'
def response = mvc.perform(get(dataNodeEndpoint)
.param('cps-path', cpsPath)
@@ -89,7 +97,7 @@ class NetworkCmProxyControllerSpec extends Specification {
def jsonData = 'json data'
when: 'post request is performed'
def response = mvc.perform(
- post("$dataNodeBaseEndpoint/cm-handles/$cmHandle/nodes")
+ post("$deprecatedDataNodeBaseEndPoint/cm-handles/$cmHandle/nodes")
.contentType(MediaType.APPLICATION_JSON)
.content(jsonData)
.param('xpath', reqXpath)
@@ -111,7 +119,7 @@ class NetworkCmProxyControllerSpec extends Specification {
def parentNodeXpath = 'parent node xpath'
when: 'post request is performed'
def response = mvc.perform(
- post("$dataNodeBaseEndpoint/cm-handles/$cmHandle/list-node")
+ post("$deprecatedDataNodeBaseEndPoint/cm-handles/$cmHandle/list-node")
.contentType(MediaType.APPLICATION_JSON)
.content(jsonData)
.param('xpath', parentNodeXpath)
@@ -126,7 +134,7 @@ class NetworkCmProxyControllerSpec extends Specification {
given: 'json data'
def jsonData = 'json data'
and: 'the query endpoint'
- def endpoint = "$dataNodeBaseEndpoint/cm-handles/$cmHandle/nodes"
+ def endpoint = "$deprecatedDataNodeBaseEndPoint/cm-handles/$cmHandle/nodes"
when: 'patch request is performed'
def response = mvc.perform(
patch(endpoint)
@@ -144,7 +152,7 @@ class NetworkCmProxyControllerSpec extends Specification {
given: 'json data'
def jsonData = 'json data'
and: 'the query endpoint'
- def endpoint = "$dataNodeBaseEndpoint/cm-handles/$cmHandle/nodes"
+ def endpoint = "$deprecatedDataNodeBaseEndPoint/cm-handles/$cmHandle/nodes"
when: 'put request is performed'
def response = mvc.perform(
put(endpoint)
@@ -164,7 +172,7 @@ class NetworkCmProxyControllerSpec extends Specification {
def dataNode = new DataNodeBuilder().withXpath(xpath).withLeaves(["leaf": "value"]).build()
mockNetworkCmProxyDataService.getDataNode(cmHandle, xpath, OMIT_DESCENDANTS) >> dataNode
and: 'the query endpoint'
- def endpoint = "$dataNodeBaseEndpoint/cm-handles/$cmHandle/node"
+ def endpoint = "$deprecatedDataNodeBaseEndPoint/cm-handles/$cmHandle/node"
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'
@@ -172,5 +180,21 @@ class NetworkCmProxyControllerSpec extends Specification {
and: 'response contains expected leaf and value'
response.contentAsString.contains('"leaf":"value"')
}
+
+ def 'Register CM Handle Event' () {
+ given: 'jsonData'
+ def jsonData = TestUtils.getResourceFileContent('dmi-registration.json')
+ when: 'post request is performed'
+ def response = mvc.perform(
+ post("$ncmpDmiEndpoint/ch")
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(jsonData)
+ ).andReturn().response
+ then: 'the cm handles are registered with the service'
+ 1 * mockNetworkCmProxyDataService.updateDmiPluginRegistration(_)
+ and: 'response status is created'
+ response.status == HttpStatus.CREATED.value()
+ }
+
}
diff --git a/cps-ncmp-rest/src/test/java/org/onap/cps/TestUtils.java b/cps-ncmp-rest/src/test/java/org/onap/cps/TestUtils.java
new file mode 100644
index 0000000000..4a6f5e5169
--- /dev/null
+++ b/cps-ncmp-rest/src/test/java/org/onap/cps/TestUtils.java
@@ -0,0 +1,54 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.cps;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+
+/**
+ * Common convenience methods for testing.
+ */
+public class TestUtils {
+
+ /**
+ * Convert a file in the test resource folder to file.
+ *
+ * @param filename to name of the file in test/resources
+ * @return the file
+ * @throws IOException when there is an IO issue
+ */
+ public static File readFile(final String filename) {
+ return new File(ClassLoader.getSystemClassLoader().getResource(filename).getFile());
+ }
+
+ /**
+ * Convert a file in the test resource folder to a string.
+ *
+ * @param filename to name of the file in test/resources
+ * @return the content of the file as a String
+ * @throws IOException when there is an IO issue
+ */
+ public static String getResourceFileContent(final String filename) throws IOException {
+ final File file = readFile(filename);
+ return new String(Files.readAllBytes(file.toPath()));
+ }
+}
diff --git a/cps-ncmp-rest/src/test/resources/dmi-registration.json b/cps-ncmp-rest/src/test/resources/dmi-registration.json
new file mode 100644
index 0000000000..24bc9f963c
--- /dev/null
+++ b/cps-ncmp-rest/src/test/resources/dmi-registration.json
@@ -0,0 +1,11 @@
+{
+ "dmiPlugin": "onap-dmi-plugin",
+ "createdCmHandles": [
+ {
+ "cmHandle": "example-name",
+ "cmHandleProperties": {
+ "subSystemId" : "system-001"
+ }
+ }
+ ]
+} \ No newline at end of file