summaryrefslogtreecommitdiffstats
path: root/integration-test/src
diff options
context:
space:
mode:
Diffstat (limited to 'integration-test/src')
-rw-r--r--integration-test/src/test/groovy/org/onap/cps/integration/base/CpsIntegrationSpecBase.groovy2
-rw-r--r--integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsAdminServiceIntegrationSpec.groovy34
-rw-r--r--integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy11
-rw-r--r--integration-test/src/test/resources/data/tree/new-test-tree.json12
-rw-r--r--integration-test/src/test/resources/data/tree/new-test-tree.yang21
-rw-r--r--integration-test/src/test/resources/data/tree/updated-test-tree.json10
-rw-r--r--integration-test/src/test/resources/data/tree/updated-test-tree.yang33
7 files changed, 118 insertions, 5 deletions
diff --git a/integration-test/src/test/groovy/org/onap/cps/integration/base/CpsIntegrationSpecBase.groovy b/integration-test/src/test/groovy/org/onap/cps/integration/base/CpsIntegrationSpecBase.groovy
index 4780e36428..03ef9c2fdc 100644
--- a/integration-test/src/test/groovy/org/onap/cps/integration/base/CpsIntegrationSpecBase.groovy
+++ b/integration-test/src/test/groovy/org/onap/cps/integration/base/CpsIntegrationSpecBase.groovy
@@ -108,7 +108,7 @@ class CpsIntegrationSpecBase extends Specification {
def dataspaceExists(dataspaceName) {
try {
cpsAdminService.getDataspace(dataspaceName)
- } catch (DataspaceNotFoundException e) {
+ } catch (DataspaceNotFoundException dataspaceNotFoundException) {
return false
}
return true
diff --git a/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsAdminServiceIntegrationSpec.groovy b/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsAdminServiceIntegrationSpec.groovy
index 92fbdaaa25..bdd894c31f 100644
--- a/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsAdminServiceIntegrationSpec.groovy
+++ b/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsAdminServiceIntegrationSpec.groovy
@@ -22,10 +22,12 @@ package org.onap.cps.integration.functional
import org.onap.cps.api.CpsAdminService
import org.onap.cps.integration.base.CpsIntegrationSpecBase
+import org.onap.cps.spi.FetchDescendantsOption
import org.onap.cps.spi.exceptions.AlreadyDefinedException
import org.onap.cps.spi.exceptions.AnchorNotFoundException
import org.onap.cps.spi.exceptions.DataspaceInUseException
import org.onap.cps.spi.exceptions.DataspaceNotFoundException
+import java.time.OffsetDateTime
class CpsAdminServiceIntegrationSpec extends CpsIntegrationSpecBase {
@@ -44,8 +46,8 @@ class CpsAdminServiceIntegrationSpec extends CpsIntegrationSpecBase {
def thrown = null
try {
objectUnderTest.getDataspace('newDataspace')
- } catch(Exception e) {
- thrown = e
+ } catch(Exception exception) {
+ thrown = exception
}
assert thrown instanceof DataspaceNotFoundException
}
@@ -100,8 +102,8 @@ class CpsAdminServiceIntegrationSpec extends CpsIntegrationSpecBase {
def thrown = null
try {
objectUnderTest.getAnchor(GENERAL_TEST_DATASPACE, 'newAnchor')
- } catch(Exception e) {
- thrown = e
+ } catch(Exception exception) {
+ thrown = exception
}
assert thrown instanceof AnchorNotFoundException
}
@@ -151,4 +153,28 @@ class CpsAdminServiceIntegrationSpec extends CpsIntegrationSpecBase {
'just unknown module(s)' | GENERAL_TEST_DATASPACE
}
+ def 'Update anchor schema set.'() {
+ when: 'a new schema set with tree yang model is created'
+ def newTreeYangModelAsString = readResourceDataFile('tree/new-test-tree.yang')
+ cpsModuleService.createSchemaSet(GENERAL_TEST_DATASPACE, 'newTreeSchemaSet', [tree: newTreeYangModelAsString])
+ then: 'an anchor with new schema set is created'
+ objectUnderTest.createAnchor(GENERAL_TEST_DATASPACE, 'newTreeSchemaSet', 'anchor4')
+ and: 'the new tree datanode is saved'
+ def treeJsonData = readResourceDataFile('tree/new-test-tree.json')
+ cpsDataService.saveData(GENERAL_TEST_DATASPACE, 'anchor4', treeJsonData, OffsetDateTime.now())
+ and: 'saved tree data node can be retrieved by its normalized xpath'
+ def branchName = cpsDataService.getDataNodes(GENERAL_TEST_DATASPACE, 'anchor4', "/test-tree/branch", FetchDescendantsOption.DIRECT_CHILDREN_ONLY)[0].leaves['name']
+ assert branchName == 'left'
+ and: 'a another schema set with updated tree yang model is created'
+ def updatedTreeYangModelAsString = readResourceDataFile('tree/updated-test-tree.yang')
+ cpsModuleService.createSchemaSet(GENERAL_TEST_DATASPACE, 'anotherTreeSchemaSet', [tree: updatedTreeYangModelAsString])
+ and: 'anchor4 schema set is updated with another schema set successfully'
+ objectUnderTest.updateAnchorSchemaSet(GENERAL_TEST_DATASPACE, 'anchor4', 'anotherTreeSchemaSet')
+ when: 'updated tree data node with new leaves'
+ def updatedTreeJsonData = readResourceDataFile('tree/updated-test-tree.json')
+ cpsDataService.updateNodeLeaves(GENERAL_TEST_DATASPACE, "anchor4", "/test-tree/branch[@name='left']", updatedTreeJsonData, OffsetDateTime.now())
+ then: 'updated tree data node can be retrieved by its normalized xpath'
+ def birdsName = cpsDataService.getDataNodes(GENERAL_TEST_DATASPACE, 'anchor4',"/test-tree/branch[@name='left']/nest", FetchDescendantsOption.DIRECT_CHILDREN_ONLY)[0].leaves['birds']
+ assert birdsName as String == '[Raven, Night Owl, Crow]'
+ }
}
diff --git a/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy b/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy
index 935a17a014..2fe275383f 100644
--- a/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy
+++ b/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy
@@ -408,6 +408,17 @@ class CpsDataServiceIntegrationSpec extends FunctionalSpecBase {
restoreBookstoreDataAnchor(1)
}
+ def 'Update bookstore top-level container data node.'() {
+ when: 'the bookstore top-level container is updated'
+ def json = '{ "bookstore": { "bookstore-name": "new bookstore" }}'
+ objectUnderTest.updateDataNodeAndDescendants(FUNCTIONAL_TEST_DATASPACE_1, BOOKSTORE_ANCHOR_1, '/', json, now)
+ then: 'bookstore name has been updated'
+ def result = objectUnderTest.getDataNodes(FUNCTIONAL_TEST_DATASPACE_1, BOOKSTORE_ANCHOR_1, '/bookstore', DIRECT_CHILDREN_ONLY)
+ result.leaves.'bookstore-name'[0] == 'new bookstore'
+ cleanup:
+ restoreBookstoreDataAnchor(1)
+ }
+
def 'Update multiple data node leaves.'() {
given: 'Updated json for bookstore data'
def jsonData = "{'book-store:books':{'lang':'English/French','price':100,'title':'Matilda'}}"
diff --git a/integration-test/src/test/resources/data/tree/new-test-tree.json b/integration-test/src/test/resources/data/tree/new-test-tree.json
new file mode 100644
index 0000000000..f7aefc472d
--- /dev/null
+++ b/integration-test/src/test/resources/data/tree/new-test-tree.json
@@ -0,0 +1,12 @@
+{
+ "test-tree": {
+ "branch": [
+ {
+ "name": "left",
+ "nest": {
+ "name": "small"
+ }
+ }
+ ]
+ }
+} \ No newline at end of file
diff --git a/integration-test/src/test/resources/data/tree/new-test-tree.yang b/integration-test/src/test/resources/data/tree/new-test-tree.yang
new file mode 100644
index 0000000000..1a08b92f14
--- /dev/null
+++ b/integration-test/src/test/resources/data/tree/new-test-tree.yang
@@ -0,0 +1,21 @@
+module test-tree {
+ yang-version 1.1;
+
+ namespace "org:onap:cps:test:test-tree";
+ prefix tree;
+ revision "2020-02-02";
+
+ container test-tree {
+ list branch {
+ key "name";
+ leaf name {
+ type string;
+ }
+ container nest {
+ leaf name {
+ type string;
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/integration-test/src/test/resources/data/tree/updated-test-tree.json b/integration-test/src/test/resources/data/tree/updated-test-tree.json
new file mode 100644
index 0000000000..2c2eea4f0d
--- /dev/null
+++ b/integration-test/src/test/resources/data/tree/updated-test-tree.json
@@ -0,0 +1,10 @@
+{
+ "nest": {
+ "name": "small",
+ "birds": [
+ "Night Owl",
+ "Raven",
+ "Crow"
+ ]
+ }
+} \ No newline at end of file
diff --git a/integration-test/src/test/resources/data/tree/updated-test-tree.yang b/integration-test/src/test/resources/data/tree/updated-test-tree.yang
new file mode 100644
index 0000000000..bd883e8b6d
--- /dev/null
+++ b/integration-test/src/test/resources/data/tree/updated-test-tree.yang
@@ -0,0 +1,33 @@
+module test-tree {
+ yang-version 1.1;
+
+ namespace "org:onap:cps:test:test-tree";
+ prefix tree;
+
+ revision "2023-08-17" {
+ description
+ "added list of birds to nest";
+ }
+
+ revision "2020-09-15" {
+ description
+ "Sample Model";
+ }
+
+ container test-tree {
+ list branch {
+ key "name";
+ leaf name {
+ type string;
+ }
+ container nest {
+ leaf name {
+ type string;
+ }
+ leaf-list birds {
+ type string;
+ }
+ }
+ }
+ }
+} \ No newline at end of file