diff options
author | ToineSiebelink <toine.siebelink@est.tech> | 2021-07-06 13:03:03 +0100 |
---|---|---|
committer | ToineSiebelink <toine.siebelink@est.tech> | 2021-07-20 16:19:37 +0100 |
commit | f0527c58c17963d940535d0ce0eb934c2b4c635c (patch) | |
tree | f2d8df5b92f3b3e50655fb9a0d685672bf010f0a /cps-service/src | |
parent | 6355b212de77e658b16614eb775f03c7713c8460 (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')
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; + } + + } } } |