From accefb1c6f1fbb2ab904acbf7d5f4eb33ef51cee Mon Sep 17 00:00:00 2001 From: niamhcore Date: Wed, 15 Sep 2021 13:01:25 +0100 Subject: Update response code for passthrough-running create use-case Issue-ID: CPS-659 Signed-off-by: niamhcore Change-Id: I4ebc4f68604efe78efb951989c2fb021443c36c9 --- .../rest/controller/DmiRestControllerSpec.groovy | 4 +-- .../cps/ncmp/dmi/service/DmiServiceImplSpec.groovy | 38 ++++++++++++++-------- 2 files changed, 26 insertions(+), 16 deletions(-) (limited to 'src/test/groovy') diff --git a/src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy b/src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy index e08870fd..a937c4e6 100644 --- a/src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy +++ b/src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy @@ -218,8 +218,8 @@ class DmiRestControllerSpec extends Specification { post(writeDataforCmHandlePassthroughRunning).contentType(MediaType.APPLICATION_JSON) .content(jsonData) ).andReturn().response - then: 'response status is ok' - response.status == HttpStatus.OK.value() + then: 'response status is 201 CREATED' + response.status == HttpStatus.CREATED.value() and: 'the data in the request body is as expected' response.getContentAsString() == '{some-json}' } 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 1d2cf7f3..a99aa9aa 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 @@ -248,30 +248,40 @@ class DmiServiceImplSpec extends Specification { response == 'response json' } - def 'Write resource data using for passthrough running for the given cm handle.'() { - given: 'sdnc returns a created response' - mockSdncOperations.writeResourceDataPassthroughRunning(_, _, _, _) >> new ResponseEntity('response json', HttpStatus.CREATED) - when: 'write resource data from cm handles service method invoked' + def 'Write resource data for passthrough running for the given cm handle with a #scenario from sdnc.'() { + given: 'sdnc returns a response' + mockSdncOperations.writeResourceDataPassthroughRunning(_, _, _, _) >> new ResponseEntity('response json', httpResponse) + when: 'write resource data for cm handle method invoked' def response = objectUnderTest.writeResourceDataPassthroughForCmHandle('some-cmHandle', 'some-resourceIdentifier', 'some-dataType', '{some-data}') - then: 'response have expected json' + 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 + } + + 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('response json', HttpStatus.INTERNAL_SERVER_ERROR) + when: 'write resource data for pass through method is invoked' + objectUnderTest.writeResourceDataPassthroughForCmHandle('some-cmHandle', + 'some-resourceIdentifier', 'some-dataType', new Object()) + then: 'a dmi exception is thrown' + thrown(DmiException.class) } - def 'Write resource data for passthrough running with a #scenario.'() { - given: 'sdnc returns a response for the write operation' - mockSdncOperations.writeResourceDataPassthroughRunning(_, _, _, _) >> new ResponseEntity('response json', httpStatus) - and: 'the data provided in the request body is written as a string' + def 'Write resource data for passthrough running with a json processing exception.'() { + given: 'sdnc returns a 200 response for the write operation' + mockSdncOperations.writeResourceDataPassthroughRunning(_, _, _, _) >> new ResponseEntity('response json', HttpStatus.OK) + and: 'a json processing exception is thrown' objectUnderTest.objectMapper = mockObjectMapper - mockObjectMapper.writeValueAsString(_) >> jsonString + mockObjectMapper.writeValueAsString(_) >> { throw new JsonProcessingException('some-exception') } when: 'write resource data for pass through method is invoked' objectUnderTest.writeResourceDataPassthroughForCmHandle('some-cmHandle', 'some-resourceIdentifier', 'some-dataType', new Object()) then: 'a dmi exception is thrown' thrown(DmiException.class) - where: 'the following combinations are tested' - scenario | httpStatus | jsonString - '500 response from sdnc' | HttpStatus.INTERNAL_SERVER_ERROR | '{some-json-data}' - 'json processing exception ' | HttpStatus.OK | { throw new JsonProcessingException('some error.') } } } \ No newline at end of file -- cgit 1.2.3-korg