From: Ruslan Kashapov Date: Mon, 5 Apr 2021 11:46:03 +0000 (+0300) Subject: Delete anchor part 2: cps rest X-Git-Tag: 1.1.0~89 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=b20858b706445a4e10b781070f6620e92587985c;p=cps.git Delete anchor part 2: cps rest Issue-ID: CPS-312 Change-Id: I08f92dfff3188bd96a69ec2ae01e0d0891b81d87 Signed-off-by: Ruslan Kashapov --- diff --git a/cps-rest/docs/api/swagger/cpsAdmin.yml b/cps-rest/docs/api/swagger/cpsAdmin.yml index 5040e2cf8..cf2629928 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 d74e9b1cf..ead365af0 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. @@ -56,6 +57,11 @@ public class AdminRestController implements CpsAdminApi { return new ResponseEntity<>(dataspaceName, HttpStatus.CREATED); } + @Override + public ResponseEntity deleteDataspace(final String dataspaceName) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + @Override public ResponseEntity createSchemaSet(final MultipartFile multipartFile, final String schemaSetName, final String dataspaceName) { @@ -91,13 +97,9 @@ public class AdminRestController implements CpsAdminApi { } @Override - public ResponseEntity deleteAnchor(final String dataspaceName, final String anchorName) { - return null; - } - - @Override - public ResponseEntity deleteDataspace(final String dataspaceName) { - return null; + public ResponseEntity 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 3387fb4e1..370ebaa6a 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()) }