summaryrefslogtreecommitdiffstats
path: root/src/test/groovy/org/onap/cps/ncmp/dmi/service
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/groovy/org/onap/cps/ncmp/dmi/service')
-rw-r--r--src/test/groovy/org/onap/cps/ncmp/dmi/service/DmiServiceImplSpec.groovy60
-rw-r--r--src/test/groovy/org/onap/cps/ncmp/dmi/service/client/SdncRestconfClientSpec.groovy17
-rw-r--r--src/test/groovy/org/onap/cps/ncmp/dmi/service/operation/SdncOperationsSpec.groovy24
3 files changed, 62 insertions, 39 deletions
diff --git a/src/test/groovy/org/onap/cps/ncmp/dmi/service/DmiServiceImplSpec.groovy b/src/test/groovy/org/onap/cps/ncmp/dmi/service/DmiServiceImplSpec.groovy
index d5353754..a463a344 100644
--- a/src/test/groovy/org/onap/cps/ncmp/dmi/service/DmiServiceImplSpec.groovy
+++ b/src/test/groovy/org/onap/cps/ncmp/dmi/service/DmiServiceImplSpec.groovy
@@ -40,6 +40,9 @@ import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import spock.lang.Specification
+import static org.onap.cps.ncmp.dmi.model.DataAccessRequest.OperationEnum.CREATE
+import static org.onap.cps.ncmp.dmi.model.DataAccessRequest.OperationEnum.UPDATE
+
class DmiServiceImplSpec extends Specification {
@@ -191,8 +194,8 @@ class DmiServiceImplSpec extends Specification {
thrownException.cause == jsonProcessingException
}
- def 'Get resource data for pass through operational from cm handle.'() {
- given: 'cm-handle, pass through parameter, resourceId, accept header, fields, depth'
+ def 'Get resource data for passthrough operational.'() {
+ given: 'cm-handle, passthrough parameter, resourceId, accept header, fields, depth'
def cmHandle = 'testCmHandle'
def resourceId = 'testResourceId'
def acceptHeaderParam = 'testAcceptParam'
@@ -201,31 +204,32 @@ class DmiServiceImplSpec extends Specification {
and: 'sdnc operation returns OK response'
mockSdncOperations.getResouceDataForOperationalAndRunning(cmHandle, resourceId, optionsParam, acceptHeaderParam, contentQuery) >> new ResponseEntity<>('response json', HttpStatus.OK)
when: 'get resource data from cm handles service method invoked'
- def response = objectUnderTest.getResourceDataOperationalForCmHandle(cmHandle,
+ def response = objectUnderTest.getResourceData(cmHandle,
resourceId, acceptHeaderParam,
- optionsParam, null)
+ optionsParam, contentQuery)
then: 'response have expected json'
response == 'response json'
}
- def 'Get resource data from cm handle with exception.'() {
- given: 'cm-handle, pass through parameter, resourceId, accept header, fields, depth'
+ def 'Get resource data with not found exception.'() {
+ given: 'cm-handle, passthrough parameter, resourceId, accept header, fields, depth, query param'
def cmHandle = 'testCmHandle'
def resourceId = 'testResourceId'
def acceptHeaderParam = 'testAcceptParam'
def optionsParam = '(fields=x/y/z,depth=10,test=abc)'
+ def restConfQueryParam = 'content=config'
and: 'sdnc operation returns "NOT_FOUND" response'
mockSdncOperations.getResouceDataForOperationalAndRunning(cmHandle, resourceId, optionsParam, acceptHeaderParam, _ as String) >> new ResponseEntity<>(HttpStatus.NOT_FOUND)
when: 'get resource data from cm handles service method invoked'
- objectUnderTest.getResourceDataOperationalForCmHandle(cmHandle,
+ objectUnderTest.getResourceData(cmHandle,
resourceId, acceptHeaderParam,
- optionsParam, null)
+ optionsParam, restConfQueryParam)
then: 'resource data not found'
thrown(ResourceDataNotFound.class)
}
- def 'Get resource data for pass through running from cm handle.'() {
- given: 'cm-handle, pass through parameter, resourceId, accept header, fields, depth'
+ def 'Get resource data for passthrough running.'() {
+ given: 'cm-handle, passthrough parameter, resourceId, accept header, fields, depth'
def cmHandle = 'testCmHandle'
def resourceId = 'testResourceId'
def acceptHeaderParam = 'testAcceptParam'
@@ -235,47 +239,43 @@ class DmiServiceImplSpec extends Specification {
mockSdncOperations.getResouceDataForOperationalAndRunning(cmHandle, resourceId, optionsParam,
acceptHeaderParam, contentQuery) >> new ResponseEntity<>('response json', HttpStatus.OK)
when: 'get resource data from cm handles service method invoked'
- def response = objectUnderTest.getResourceDataPassThroughRunningForCmHandle(cmHandle,
+ def response = objectUnderTest.getResourceData(cmHandle,
resourceId, acceptHeaderParam,
- optionsParam, null)
+ optionsParam, contentQuery)
then: 'response have expected json'
response == 'response json'
}
- def 'Write resource data for passthrough running for the given cm handle with a #scenario from sdnc.'() {
+ def 'Write resource data for passthrough running with a #scenario from sdnc.'() {
given: 'sdnc returns a response with #scenario'
- mockSdncOperations.writeResourceDataPassthroughRunning(_, _, _, _) >> new ResponseEntity<String>('response json', httpResponse)
+ mockSdncOperations.writeData(operationEnum, _, _, _, _) >> new ResponseEntity<String>('response json', httpResponse)
when: 'write resource data for cm handle method invoked'
- def response = objectUnderTest.writeResourceDataPassthroughForCmHandle('some-cmHandle',
+ def response = objectUnderTest.writeData(operationEnum,'some-cmHandle',
'some-resourceIdentifier', 'some-dataType', '{some-data}')
then: 'the response contains the expected json data from sdnc'
response == 'response json'
where: 'the following values are used'
- scenario | httpResponse
- '200 OK response' | HttpStatus.OK
- '201 CREATED response' | HttpStatus.CREATED
+ scenario | httpResponse | operationEnum
+ '200 OK with an update operation' | HttpStatus.OK | UPDATE
+ '201 CREATED with a create operation' | HttpStatus.CREATED | CREATE
}
- def 'Write resource data using for passthrough running for the given cm handle with #scenario.'() {
+ def 'Write resource data with special characters.'() {
given: 'sdnc returns a created response'
- mockSdncOperations.writeResourceDataPassthroughRunning('some-cmHandle',
- 'some-resourceIdentifier', 'some-dataType', requestBody) >> new ResponseEntity<String>('response json', HttpStatus.CREATED)
+ mockSdncOperations.writeData(CREATE, 'some-cmHandle',
+ 'some-resourceIdentifier', 'some-dataType', 'data with quote " and \n new line') >> new ResponseEntity<String>('response json', HttpStatus.CREATED)
when: 'write resource data from cm handles service method invoked'
- def response = objectUnderTest.writeResourceDataPassthroughForCmHandle('some-cmHandle',
- 'some-resourceIdentifier', 'some-dataType', requestBody)
+ def response = objectUnderTest.writeData(CREATE, 'some-cmHandle',
+ 'some-resourceIdentifier', 'some-dataType', 'data with quote " and \n new line')
then: 'response have expected json'
response == 'response json'
- where: 'given request body'
- scenario | requestBody
- 'data contains normal char' | 'normal char string'
- 'data contains quote and new line' | 'data with quote " and \n new line'
}
def 'Write resource data for passthrough running with a 500 response from sdnc.'() {
given: 'sdnc returns a 500 response for the write operation'
- mockSdncOperations.writeResourceDataPassthroughRunning(_, _, _, _) >> new ResponseEntity<String>('response json', HttpStatus.INTERNAL_SERVER_ERROR)
- when: 'write resource data for pass through method is invoked'
- objectUnderTest.writeResourceDataPassthroughForCmHandle('some-cmHandle',
+ mockSdncOperations.writeData(CREATE, _, _, _, _) >> new ResponseEntity<String>('response json', HttpStatus.INTERNAL_SERVER_ERROR)
+ when: 'write resource data for passthrough method is invoked'
+ objectUnderTest.writeData(CREATE, 'some-cmHandle',
'some-resourceIdentifier', 'some-dataType', _ as String)
then: 'a dmi exception is thrown'
thrown(DmiException.class)
diff --git a/src/test/groovy/org/onap/cps/ncmp/dmi/service/client/SdncRestconfClientSpec.groovy b/src/test/groovy/org/onap/cps/ncmp/dmi/service/client/SdncRestconfClientSpec.groovy
index 2184c7e7..8a3170b4 100644
--- a/src/test/groovy/org/onap/cps/ncmp/dmi/service/client/SdncRestconfClientSpec.groovy
+++ b/src/test/groovy/org/onap/cps/ncmp/dmi/service/client/SdncRestconfClientSpec.groovy
@@ -28,6 +28,11 @@ import org.springframework.http.ResponseEntity
import org.springframework.web.client.RestTemplate
import spock.lang.Specification
+import static org.springframework.http.HttpMethod.GET
+import static org.springframework.http.HttpMethod.POST
+import static org.springframework.http.HttpMethod.DELETE
+import static org.springframework.http.HttpMethod.PUT
+
class SdncRestconfClientSpec extends Specification {
def mockSdncProperties = Mock(DmiConfiguration.SdncProperties)
@@ -49,7 +54,7 @@ class SdncRestconfClientSpec extends Specification {
result == mockResponseEntity
}
- def 'SDNC POST operation called.'() {
+ def 'SDNC #scenario operation called.'() {
given: 'json data'
def jsonData = 'some-json'
and: 'a url for get module resources'
@@ -59,12 +64,18 @@ class SdncRestconfClientSpec extends Specification {
and: 'the rest template returns a valid response entity'
def mockResponseEntity = Mock(ResponseEntity)
when: 'get module resources is invoked'
- def result = objectUnderTest.postOperationWithJsonData(getModuleResourceUrl, jsonData, new HttpHeaders())
+ def result = objectUnderTest.httpOperationWithJsonData(expectedHttpMethod, getModuleResourceUrl, jsonData, new HttpHeaders())
then: 'the rest template is called with the correct uri and json in the body'
1 * mockRestTemplate.exchange({ it.toString() == 'http://some-uri/getModuleResourceUrl' },
- HttpMethod.POST, { it.body.contains(jsonData) }, String.class) >> mockResponseEntity
+ expectedHttpMethod, { it.body.contains(jsonData) }, String.class) >> mockResponseEntity
and: 'the output of the method is the same as the output from the test template'
result == mockResponseEntity
+ where: 'the following values are used'
+ scenario || expectedHttpMethod
+ 'POST' || POST
+ 'PUT' || PUT
+ 'GET' || GET
+ 'DELETE' || DELETE
}
def 'SDNC GET operation with header.'() {
diff --git a/src/test/groovy/org/onap/cps/ncmp/dmi/service/operation/SdncOperationsSpec.groovy b/src/test/groovy/org/onap/cps/ncmp/dmi/service/operation/SdncOperationsSpec.groovy
index 2ce870ab..5079ada7 100644
--- a/src/test/groovy/org/onap/cps/ncmp/dmi/service/operation/SdncOperationsSpec.groovy
+++ b/src/test/groovy/org/onap/cps/ncmp/dmi/service/operation/SdncOperationsSpec.groovy
@@ -29,11 +29,17 @@ import org.spockframework.spring.SpringBean
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.http.HttpHeaders
+import org.springframework.http.HttpMethod
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import org.springframework.test.context.ContextConfiguration
import spock.lang.Specification
+import static org.onap.cps.ncmp.dmi.model.DataAccessRequest.OperationEnum.CREATE
+import static org.onap.cps.ncmp.dmi.model.DataAccessRequest.OperationEnum.DELETE
+import static org.onap.cps.ncmp.dmi.model.DataAccessRequest.OperationEnum.UPDATE
+import static org.onap.cps.ncmp.dmi.model.DataAccessRequest.OperationEnum.READ
+
@SpringBootTest
@ContextConfiguration(classes = [DmiConfiguration.SdncProperties, SdncOperations])
class SdncOperationsSpec extends Specification {
@@ -106,7 +112,7 @@ class SdncOperationsSpec extends Specification {
when: 'get module resources is called with the expected parameters'
objectUnderTest.getModuleResource(nodeId, 'some-json-data')
then: 'the SDNC Rest client is invoked with the correct URL and json data'
- 1 * mockSdncRestClient.postOperationWithJsonData(expectedUrl, 'some-json-data', _ as HttpHeaders)
+ 1 * mockSdncRestClient.httpOperationWithJsonData(HttpMethod.POST, expectedUrl, 'some-json-data', _ as HttpHeaders)
}
def 'Get resource data from node to SDNC.'() {
@@ -119,13 +125,19 @@ class SdncOperationsSpec extends Specification {
1 * mockSdncRestClient.getOperation(expectedUrl, _ as HttpHeaders)
}
- def 'Write resource data to SDNC.'() {
+ def 'Write resource data with #scenario operation to SDNC.'() {
given: 'expected url, topology-id, sdncOperation object'
def expectedUrl = '/rests/data/network-topology:network-topology/topology=test-topology/node=node1/yang-ext:mount/testResourceId'
- when: 'write resource data for pass through running is called'
- objectUnderTest.writeResourceDataPassthroughRunning('node1', 'testResourceId', 'application/json', 'requestData')
- then: 'the post operation is executed with the correct URL and data'
- 1 * mockSdncRestClient.postOperationWithJsonData(expectedUrl, 'requestData', _ as HttpHeaders)
+ when: 'write resource data for passthrough running is called'
+ objectUnderTest.writeData(operationEnum, 'node1', 'testResourceId', 'application/json', 'requestData')
+ then: 'the #expectedHttpMethod operation is executed with the correct URL and data'
+ 1 * mockSdncRestClient.httpOperationWithJsonData(expectedHttpMethod, expectedUrl, 'requestData', _ as HttpHeaders)
+ where: 'the following values are used'
+ scenario | operationEnum || expectedHttpMethod
+ 'Create' | CREATE || HttpMethod.POST
+ 'Update' | UPDATE || HttpMethod.PUT
+ 'Read' | READ || HttpMethod.GET
+ 'Delete' | DELETE || HttpMethod.DELETE
}
def 'build query param list for SDNC where options contains a #scenario'() {