summaryrefslogtreecommitdiffstats
path: root/cps-service/src
diff options
context:
space:
mode:
authorToineSiebelink <toine.siebelink@est.tech>2021-07-06 13:03:03 +0100
committerToineSiebelink <toine.siebelink@est.tech>2021-07-20 16:19:37 +0100
commitf0527c58c17963d940535d0ce0eb934c2b4c635c (patch)
treef2d8df5b92f3b3e50655fb9a0d685672bf010f0a /cps-service/src
parent6355b212de77e658b16614eb775f03c7713c8460 (diff)
Support text() condition
- Added Antlr parsing of text() condition (as an optional additional to any query) - Implemented text-condition combined with descendants - Refactor descendants queries into using one more flexible Custom (native) Query builder - Refactor ALL cpsPath queries to now use FragmentRepositoryCpsPathQuery (custom query builder) - Refactor Antrl code to simply parsing of cpsPath and allow all combinations (no more query types, addresses CPS-436) - Minor clean up of some minor convention issues in CpsAdminServiceImplSpec.groovy (found during groovy demo) - Update .rst documentation of xPaths - Fixed incorrect matching of additional list indexes using more precise SIMILAR-TO regex in postgreSQL - Documented special chararter limitation (CPS-500) - Checked for consistent use of term 'CPS path' in documentation and error message - Included (updated) copyright in all .SQL test files Issue-ID: CPS-452 Issue-ID: CPS-436 Issue-ID: CPS-500 Signed-off-by: ToineSiebelink <toine.siebelink@est.tech> Change-Id: If422d25cafd2850d25c9a28dea16ba7a5f93dddb
Diffstat (limited to 'cps-service/src')
-rwxr-xr-xcps-service/src/test/groovy/org/onap/cps/api/impl/CpsAdminServiceImplSpec.groovy10
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/model/DataNodeBuilderSpec.groovy14
-rw-r--r--cps-service/src/test/resources/test-tree.json8
-rw-r--r--cps-service/src/test/resources/test-tree.yang12
4 files changed, 32 insertions, 12 deletions
diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsAdminServiceImplSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsAdminServiceImplSpec.groovy
index 532f442036..be213c0fa0 100755
--- a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsAdminServiceImplSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsAdminServiceImplSpec.groovy
@@ -35,16 +35,16 @@ class CpsAdminServiceImplSpec extends Specification {
}
def 'Create dataspace method invokes persistence service.'() {
- when: 'Create dataspace method is invoked'
+ when: 'create dataspace method is invoked'
objectUnderTest.createDataspace('someDataspace')
- then: 'The persistence service method is invoked with same parameters'
+ then: 'the persistence service method is invoked with same parameters'
1 * mockCpsAdminPersistenceService.createDataspace('someDataspace')
}
def 'Create anchor method invokes persistence service.'() {
- when: 'Create anchor method is invoked'
+ when: 'create anchor method is invoked'
objectUnderTest.createAnchor('someDataspace', 'someSchemaSet', 'someAnchorName')
- then: 'The persistence service method is invoked with same parameters'
+ then: 'the persistence service method is invoked with same parameters'
1 * mockCpsAdminPersistenceService.createAnchor('someDataspace', 'someSchemaSet', 'someAnchorName')
}
@@ -61,7 +61,7 @@ class CpsAdminServiceImplSpec extends Specification {
Anchor anchor = new Anchor()
mockCpsAdminPersistenceService.getAnchor('someDataspace','someAnchor') >> anchor
expect: 'the anchor provided by persistence service is returned as result'
- objectUnderTest.getAnchor('someDataspace','someAnchor') == anchor
+ assert objectUnderTest.getAnchor('someDataspace','someAnchor') == anchor
}
def 'Delete anchor.'() {
diff --git a/cps-service/src/test/groovy/org/onap/cps/model/DataNodeBuilderSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/model/DataNodeBuilderSpec.groovy
index 7f50f7f524..2751d55075 100644
--- a/cps-service/src/test/groovy/org/onap/cps/model/DataNodeBuilderSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/model/DataNodeBuilderSpec.groovy
@@ -1,6 +1,7 @@
/*
* ============LICENSE_START=======================================================
* Copyright (C) 2021 Pantheon.tech
+ * Modifications Copyright (C) 2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,11 +29,12 @@ import spock.lang.Specification
class DataNodeBuilderSpec extends Specification {
Map<String, Map<String, Object>> expectedLeavesByXpathMap = [
- '/test-tree' : [],
- '/test-tree/branch[@name=\'Left\']' : [name: 'Left'],
- '/test-tree/branch[@name=\'Left\']/nest' : [name: 'Small', birds: ['Sparrow', 'Robin', 'Finch']],
- '/test-tree/branch[@name=\'Right\']' : [name: 'Right'],
- '/test-tree/branch[@name=\'Right\']/nest': [name: 'Big', birds: ['Owl', 'Raven', 'Crow']]
+ '/test-tree' : [],
+ '/test-tree/branch[@name=\'Left\']' : [name: 'Left'],
+ '/test-tree/branch[@name=\'Left\']/nest' : [name: 'Small', birds: ['Sparrow', 'Robin', 'Finch']],
+ '/test-tree/branch[@name=\'Right\']' : [name: 'Right'],
+ '/test-tree/branch[@name=\'Right\']/nest' : [name: 'Big', birds: ['Owl', 'Raven', 'Crow']],
+ '/test-tree/fruit[@color=\'Green\' and @name=\'Apple\']': [color: 'Green', name: 'Apple']
]
String[] networkTopologyModelRfc8345 = [
@@ -55,7 +57,7 @@ class DataNodeBuilderSpec extends Specification {
def result = new DataNodeBuilder().withNormalizedNodeTree(normalizedNode).build()
def mappedResult = TestUtils.getFlattenMapByXpath(result)
then: '5 DataNode objects with unique xpath were created in total'
- mappedResult.size() == 5
+ mappedResult.size() == 6
and: 'all expected xpaths were built'
mappedResult.keySet().containsAll(expectedLeavesByXpathMap.keySet())
and: 'each data node contains the expected attributes'
diff --git a/cps-service/src/test/resources/test-tree.json b/cps-service/src/test/resources/test-tree.json
index bc9cbd7cea..e1789abc1d 100644
--- a/cps-service/src/test/resources/test-tree.json
+++ b/cps-service/src/test/resources/test-tree.json
@@ -23,6 +23,12 @@
]
}
}
+ ],
+ "fruit": [
+ {
+ "name": "Apple",
+ "color": "Green"
+ }
]
}
-} \ No newline at end of file
+}
diff --git a/cps-service/src/test/resources/test-tree.yang b/cps-service/src/test/resources/test-tree.yang
index faba8a11d4..63100657ef 100644
--- a/cps-service/src/test/resources/test-tree.yang
+++ b/cps-service/src/test/resources/test-tree.yang
@@ -20,5 +20,17 @@ module test-tree {
}
}
}
+ list fruit {
+ key "name color";
+
+ leaf name {
+ type string;
+ }
+
+ leaf color {
+ type string;
+ }
+
+ }
}
}