summaryrefslogtreecommitdiffstats
path: root/cps-service/src/test/groovy
diff options
context:
space:
mode:
authorRuslan Kashapov <ruslan.kashapov@pantheon.tech>2021-04-22 11:47:41 +0300
committerRishi Chail <rishi.chail@est.tech>2021-04-29 16:21:02 +0000
commit6da081cc0667795cd7872582a8795cf0bbd56c17 (patch)
tree0e2a35e6481d463a1b925a40f13d9fe352d06d86 /cps-service/src/test/groovy
parent8a74ced574d566024513044859f433d263e3cc1b (diff)
JSON data fragment into DataNode collection parsing support
Issue-ID: CPS-358 Change-Id: I92f46504e5f3623131844616945069f70712ed61 Signed-off-by: Ruslan Kashapov <ruslan.kashapov@pantheon.tech>
Diffstat (limited to 'cps-service/src/test/groovy')
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/model/DataNodeBuilderSpec.groovy22
1 files changed, 22 insertions, 0 deletions
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 901e0b60ce..7f50f7f524 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
@@ -83,6 +83,7 @@ class DataNodeBuilderSpec extends Specification {
mappedResult.keySet()
.containsAll(['/test-tree/branch[@name=\'Branch\']', '/test-tree/branch[@name=\'Branch\']/nest'])
}
+
def 'Converting NormalizedNode (tree) to a DataNode (tree) -- augmentation case.'() {
given: 'a schema context for expected model'
def yangResourceNameToContent = TestUtils.getYangResourcesAsMap(networkTopologyModelRfc8345)
@@ -133,6 +134,27 @@ class DataNodeBuilderSpec extends Specification {
assert result.leaves['source-tp'] == '1-2-1'
}
+ def 'Converting NormalizedNode into DataNode collection: #scenario.'() {
+ given: 'a schema context for expected model'
+ def yangResourceNameToContent = TestUtils.getYangResourcesAsMap('test-tree.yang')
+ def schemaContext = YangTextSchemaSourceSetBuilder.of(yangResourceNameToContent) getSchemaContext()
+ and: 'parent node xpath referencing parent of list-node element'
+ def parentNodeXpath = "/test-tree"
+ and: 'the json data fragment (list-node element) parsed into normalized node object'
+ def normalizedNode = YangUtils.parseJsonData(jsonData, schemaContext, parentNodeXpath)
+ when: 'the normalized node is converted to a data node collection'
+ def result = new DataNodeBuilder().withNormalizedNodeTree(normalizedNode)
+ .withParentNodeXpath(parentNodeXpath).buildCollection()
+ def resultXpaths = result.collect { it.getXpath() }
+ then: 'the resulting collection contains data nodes for expected list elements'
+ assert resultXpaths.size() == expectedSize
+ assert resultXpaths.containsAll(expectedXpaths)
+ where: 'following parameters are used'
+ scenario | jsonData | expectedSize | expectedXpaths
+ 'single entry' | '{"branch": [{"name": "One"}]}' | 1 | ['/test-tree/branch[@name=\'One\']']
+ 'multiple entries' | '{"branch": [{"name": "One"}, {"name": "Two"}]}' | 2 | ['/test-tree/branch[@name=\'One\']', '/test-tree/branch[@name=\'Two\']']
+ }
+
def static assertLeavesMaps(actualLeavesMap, expectedLeavesMap) {
expectedLeavesMap.each { key, value ->
{