summaryrefslogtreecommitdiffstats
path: root/cps-service/src/test
diff options
context:
space:
mode:
authorRuslan Kashapov <ruslan.kashapov@pantheon.tech>2021-05-14 12:04:34 +0300
committerRishi Chail <rishi.chail@est.tech>2021-05-24 15:36:55 +0000
commitb0e78acb6aefdcb5866955802099e6091b2a6952 (patch)
tree8f06ec09b2d9fba00dc8dfe4fbbe639330417c15 /cps-service/src/test
parent940d8e4a950d8ce8075a712d9dc3852de828e5b5 (diff)
Replace list-node content (part 1): CPS Service and persistence layers
Issue-ID: CPS-362 Change-Id: I669c9fc6ef67c1992fe95e17a765f0c616b00f7e Signed-off-by: Ruslan Kashapov <ruslan.kashapov@pantheon.tech>
Diffstat (limited to 'cps-service/src/test')
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/api/impl/CpsDataServiceImplSpec.groovy28
1 files changed, 28 insertions, 0 deletions
diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsDataServiceImplSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsDataServiceImplSpec.groovy
index 5f930a1527..27a5a4e0ca 100644
--- a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsDataServiceImplSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsDataServiceImplSpec.groovy
@@ -139,6 +139,34 @@ class CpsDataServiceImplSpec extends Specification {
'level 2 node' | '/test-tree' | '{"branch": [{"name":"Name"}]}' || '/test-tree/branch[@name=\'Name\']'
}
+ def 'Replace list-node data fragment under existing node.'() {
+ given: 'schema set for given anchor and dataspace references test-tree model'
+ setupSchemaSetMocks('test-tree.yang')
+ when: 'replace list data method is invoked with list-node json data'
+ def jsonData = '{"branch": [{"name": "A"}, {"name": "B"}]}'
+ objectUnderTest.replaceListNodeData(dataspaceName, anchorName, '/test-tree', jsonData)
+ then: 'the persistence service method is invoked with correct parameters'
+ 1 * mockCpsDataPersistenceService.replaceListDataNodes(dataspaceName, anchorName, '/test-tree',
+ { dataNodeCollection ->
+ {
+ assert dataNodeCollection.size() == 2
+ assert dataNodeCollection.collect { it.getXpath() }
+ .containsAll(['/test-tree/branch[@name=\'A\']', '/test-tree/branch[@name=\'B\']'])
+ }
+ }
+ )
+ }
+
+ def 'Replace with empty list-node data fragment.'() {
+ given: 'schema set for given anchor and dataspace references test-tree model'
+ setupSchemaSetMocks('test-tree.yang')
+ when: 'replace list data method is invoked with empty list-node data fragment'
+ def jsonData = '{"branch": []}'
+ objectUnderTest.replaceListNodeData(dataspaceName, anchorName, '/test-tree', jsonData)
+ then: 'invalid data exception is thrown'
+ thrown(DataValidationException)
+ }
+
def setupSchemaSetMocks(String... yangResources) {
def anchor = Anchor.builder().name(anchorName).schemaSetName(schemaSetName).build()
mockCpsAdminService.getAnchor(dataspaceName, anchorName) >> anchor