From 09c6b6e1fa2684c913d7b904f7c7ad6b26b04ef1 Mon Sep 17 00:00:00 2001 From: niamhcore Date: Mon, 22 Nov 2021 11:44:38 +0000 Subject: CPS-314: Delete Dataspace Issue-ID: CPS-314 Change-Id: I778e2b784c7b1ff3fecc1036425708dc4ec73227 Signed-off-by: niamhcore --- .../org/onap/cps/rest/controller/AdminRestController.java | 12 ++++++++++++ .../onap/cps/rest/controller/AdminRestControllerSpec.groovy | 13 +++++++++++++ .../cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy | 4 +++- 3 files changed, 28 insertions(+), 1 deletion(-) (limited to 'cps-rest/src') diff --git a/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java b/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java index 55fdbbe87..52e64a95b 100755 --- a/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java +++ b/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java @@ -70,6 +70,18 @@ public class AdminRestController implements CpsAdminApi { return new ResponseEntity<>(dataspaceName, HttpStatus.CREATED); } + /** + * Delete a dataspace. + * + * @param dataspaceName name of dataspace to be deleted + * @return a {@Link ResponseEntity} of {@link HttpStatus} NO_CONTENT + */ + @Override + public ResponseEntity deleteDataspace(final String dataspaceName) { + cpsAdminService.deleteDataspace(dataspaceName); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + /** * Create a {@link SchemaSet}. * diff --git a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy index 84da2db5d..e8cfcfb6f 100755 --- a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy +++ b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy @@ -311,6 +311,18 @@ class AdminRestControllerSpec extends Specification { response.status == HttpStatus.NO_CONTENT.value() } + def 'Delete dataspace.'() { + given: 'an endpoint' + def dataspaceEndpoint = "$basePath/v1/dataspaces" + when: 'delete dataspace endpoint is invoked' + def response = mvc.perform(delete(dataspaceEndpoint) + .param('dataspace-name', dataspaceName)) + .andReturn().response + then: 'associated service method is invoked with expected parameter' + 1 * mockCpsAdminService.deleteDataspace(dataspaceName) + and: 'response code indicates success' + response.status == HttpStatus.NO_CONTENT.value() + } def createMultipartFile(filename, content) { return new MockMultipartFile("file", filename, "text/plain", content.getBytes()) @@ -333,4 +345,5 @@ class AdminRestControllerSpec extends Specification { multipartFile.getInputStream() >> { throw new IOException() } return multipartFile } + } diff --git a/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy index 079a59c66..f5968442d 100644 --- a/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy +++ b/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy @@ -37,6 +37,7 @@ import org.onap.cps.spi.exceptions.DataValidationException import org.onap.cps.spi.exceptions.ModelValidationException import org.onap.cps.spi.exceptions.NotFoundInDataspaceException import org.onap.cps.spi.exceptions.SchemaSetInUseException +import org.onap.cps.spi.exceptions.DataspaceInUseException import org.spockframework.spring.SpringBean import org.springframework.beans.factory.annotation.Autowired import org.springframework.beans.factory.annotation.Value @@ -145,7 +146,8 @@ class CpsRestExceptionHandlerSpec extends Specification { assertTestResponse(response, CONFLICT, exceptionThrown.getMessage(), exceptionThrown.getDetails()) where: 'the following exceptions are thrown' exceptionThrown << [new DataInUseException(dataspaceName, existingObjectName), - new SchemaSetInUseException(dataspaceName, existingObjectName)] + new SchemaSetInUseException(dataspaceName, existingObjectName), + new DataspaceInUseException(dataspaceName, errorDetails)] } /* -- cgit 1.2.3-korg