summaryrefslogtreecommitdiffstats
path: root/cps-rest/src
diff options
context:
space:
mode:
Diffstat (limited to 'cps-rest/src')
-rwxr-xr-xcps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java8
-rwxr-xr-xcps-rest/src/test/groovy/org/onap/cps/rest/controller/DataRestControllerSpec.groovy22
2 files changed, 30 insertions, 0 deletions
diff --git a/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java b/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java
index f29ead9e9f..e57fb3c8c6 100755
--- a/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java
+++ b/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java
@@ -60,6 +60,14 @@ public class DataRestController implements CpsDataApi {
}
@Override
+ public ResponseEntity<Void> deleteDataNode(final String dataspaceName, final String anchorName,
+ final String xpath, final String observedTimestamp) {
+ cpsDataService.deleteDataNode(dataspaceName, anchorName, xpath,
+ toOffsetDateTime(observedTimestamp));
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @Override
public ResponseEntity<String> addListElements(final String parentNodeXpath,
final String dataspaceName, final String anchorName, final String jsonData, final String observedTimestamp) {
cpsDataService.saveListElements(dataspaceName, anchorName, parentNodeXpath, jsonData,
diff --git a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/DataRestControllerSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/DataRestControllerSpec.groovy
index 06f2f5795f..2c288344c4 100755
--- a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/DataRestControllerSpec.groovy
+++ b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/DataRestControllerSpec.groovy
@@ -342,4 +342,26 @@ class DataRestControllerSpec extends Specification {
'without observed-timestamp' | null || 1 | HttpStatus.NO_CONTENT
'with invalid observed-timestamp' | 'invalid' || 0 | HttpStatus.BAD_REQUEST
}
+
+ def 'Delete data node #scenario.'() {
+ given: 'data node xpath'
+ def dataNodeXpath = '/dataNodeXpath'
+ when: 'delete data node endpoint is invoked'
+ def deleteDataNodeRequest = delete( "$dataNodeBaseEndpoint/anchors/$anchorName/nodes")
+ .param('xpath', dataNodeXpath)
+ and: 'observed timestamp is added to the parameters'
+ if (observedTimestamp != null)
+ deleteDataNodeRequest.param('observed-timestamp', observedTimestamp)
+ def response = mvc.perform(deleteDataNodeRequest).andReturn().response
+ then: 'a successful response is returned'
+ response.status == expectedHttpStatus.value()
+ and: 'the api is called with the correct parameters'
+ expectedApiCount * mockCpsDataService.deleteDataNode(dataspaceName, anchorName, dataNodeXpath,
+ { it == DateTimeUtility.toOffsetDateTime(observedTimestamp) })
+ where:
+ scenario | observedTimestamp || expectedApiCount | expectedHttpStatus
+ 'with observed timestamp' | '2021-03-03T23:59:59.999-0400' || 1 | HttpStatus.NO_CONTENT
+ 'without observed timestamp' | null || 1 | HttpStatus.NO_CONTENT
+ 'with invalid observed timestamp' | 'invalid' || 0 | HttpStatus.BAD_REQUEST
+ }
}