diff options
Diffstat (limited to 'integration-test/src/test/groovy/org')
-rw-r--r-- | integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy | 25 |
1 files changed, 23 insertions, 2 deletions
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 750deb1b36..a3f14397c2 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 @@ -43,11 +43,13 @@ class CpsDataServiceIntegrationSpec extends FunctionalSpecBase { CpsDataService objectUnderTest def originalCountBookstoreChildNodes + def originalCountBookstoreTopLevelListNodes def now = OffsetDateTime.now() def setup() { objectUnderTest = cpsDataService originalCountBookstoreChildNodes = countDataNodesInBookstore() + originalCountBookstoreTopLevelListNodes = countTopLevelListDataNodesInBookstore() } def 'Read bookstore top-level container(s) using #fetchDescendantsOption.'() { @@ -73,9 +75,9 @@ class CpsDataServiceIntegrationSpec extends FunctionalSpecBase { when: 'get data nodes for bookstore container' def result = objectUnderTest.getDataNodes(FUNCTIONAL_TEST_DATASPACE_1, BOOKSTORE_ANCHOR_1, root, OMIT_DESCENDANTS) then: 'the tree consist ouf of one data node' - assert countDataNodesInTree(result) == 1 + assert countDataNodesInTree(result) == 2 and: 'the top level data node has the expected attribute and value' - assert result.leaves['bookstore-name'] == ['Easons'] + assert result.leaves.size() == 2 where: 'the following variations of "root" are used' root << [ '/', '' ] } @@ -179,6 +181,21 @@ class CpsDataServiceIntegrationSpec extends FunctionalSpecBase { thrown(DataNodeNotFoundExceptionBatch) } + def 'Add and Delete top-level list (element) data nodes with root node.'() { + given: 'a new (multiple-data-tree:invoice) datanodes' + def json = '{"multiple-data-tree:invoice": [{"ProductID": "2","ProductName": "Mango","price": "150","stock": true}]}' + when: 'the new list elements are saved' + objectUnderTest.saveListElements(FUNCTIONAL_TEST_DATASPACE_1, BOOKSTORE_ANCHOR_1 , '/', json, now) + then: 'they can be retrieved by their xpaths' + objectUnderTest.getDataNodes(FUNCTIONAL_TEST_DATASPACE_1, BOOKSTORE_ANCHOR_1 , '/invoice[@ProductID ="2"]', INCLUDE_ALL_DESCENDANTS) + and: 'there is one extra datanode' + assert originalCountBookstoreTopLevelListNodes + 1 == countTopLevelListDataNodesInBookstore() + when: 'the new elements are deleted' + objectUnderTest.deleteDataNode(FUNCTIONAL_TEST_DATASPACE_1, BOOKSTORE_ANCHOR_1 , '/invoice[@ProductID ="2"]', now) + then: 'the original number of datanodes is restored' + assert originalCountBookstoreTopLevelListNodes == countTopLevelListDataNodesInBookstore() + } + def 'Add and Delete list (element) data nodes.'() { given: 'two new (categories) data nodes' def json = '{"categories": [ {"code":"new1"}, {"code":"new2" } ] }' @@ -368,4 +385,8 @@ class CpsDataServiceIntegrationSpec extends FunctionalSpecBase { def countDataNodesInBookstore() { return countDataNodesInTree(objectUnderTest.getDataNodes(FUNCTIONAL_TEST_DATASPACE_1, BOOKSTORE_ANCHOR_1, '/bookstore', INCLUDE_ALL_DESCENDANTS)) } + + def countTopLevelListDataNodesInBookstore() { + return countDataNodesInTree(objectUnderTest.getDataNodes(FUNCTIONAL_TEST_DATASPACE_1, BOOKSTORE_ANCHOR_1, '/', INCLUDE_ALL_DESCENDANTS)) + } } |