diff options
3 files changed, 23 insertions, 11 deletions
diff --git a/cps-rest/docs/api/swagger/cpsAdmin.yml b/cps-rest/docs/api/swagger/cpsAdmin.yml index 5040e2cf8d..cf26299283 100755 --- a/cps-rest/docs/api/swagger/cpsAdmin.yml +++ b/cps-rest/docs/api/swagger/cpsAdmin.yml @@ -173,7 +173,7 @@ anchorByDataspaceAndAnchorName: $ref: 'components.yml#/components/responses/NotFound' delete: - description: Delete an anchor given an anchor name and a dataspace - DRAFT + description: Delete an anchor given an anchor name and a dataspace tags: - cps-admin summary: Delete an anchor @@ -182,8 +182,6 @@ anchorByDataspaceAndAnchorName: - $ref: 'components.yml#/components/parameters/dataspaceNameInPath' - $ref: 'components.yml#/components/parameters/anchorNameInPath' responses: - '200': - $ref: 'components.yml#/components/responses/Ok' '204': $ref: 'components.yml#/components/responses/NoContent' '400': 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 d74e9b1cf8..ead365af06 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 @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2020 Nordix Foundation * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. + * Modifications Copyright (C) 2021 Pantheon.tech * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -57,6 +58,11 @@ public class AdminRestController implements CpsAdminApi { } @Override + public ResponseEntity<Object> deleteDataspace(final String dataspaceName) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override public ResponseEntity<String> createSchemaSet(final MultipartFile multipartFile, final String schemaSetName, final String dataspaceName) { cpsModuleService.createSchemaSet(dataspaceName, schemaSetName, extractYangResourcesMap(multipartFile)); @@ -91,13 +97,9 @@ public class AdminRestController implements CpsAdminApi { } @Override - public ResponseEntity<Object> deleteAnchor(final String dataspaceName, final String anchorName) { - return null; - } - - @Override - public ResponseEntity<Object> deleteDataspace(final String dataspaceName) { - return null; + public ResponseEntity<Void> deleteAnchor(final String dataspaceName, final String anchorName) { + cpsAdminService.deleteAnchor(dataspaceName, anchorName); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); } @Override 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 3387fb4e1e..370ebaa6a4 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 @@ -1,6 +1,6 @@ /* * ============LICENSE_START======================================================= - * Copyright (C) 2020 Pantheon.tech + * Copyright (C) 2020-2021 Pantheon.tech * Modifications Copyright (C) 2020, 2021 Bell Canada. All rights reserved. * Copyright (C) 2021 Nordix Foundation * ================================================================================ @@ -290,6 +290,18 @@ class AdminRestControllerSpec extends Specification { responseContent.contains(schemaSetName) } + def 'Delete anchor.'() { + given: 'an endpoint' + def anchorEndpoint = "$basePath/v1/dataspaces/$dataspaceName/anchors/$anchorName" + when: 'delete method is invoked on anchor endpoint' + def response = mvc.perform(delete(anchorEndpoint)).andReturn().response + then: 'associated service method is invoked with expected parameters' + 1 * mockCpsAdminService.deleteAnchor(dataspaceName, anchorName) + and: 'response code indicates success' + response.status == HttpStatus.NO_CONTENT.value() + } + + def createMultipartFile(filename, content) { return new MockMultipartFile("file", filename, "text/plain", content.getBytes()) } |