diff options
Diffstat (limited to 'cps-service/src/test/groovy')
-rw-r--r-- | cps-service/src/test/groovy/org/onap/cps/model/DataNodeBuilderSpec.groovy | 29 | ||||
-rw-r--r-- | cps-service/src/test/groovy/org/onap/cps/utils/YangUtilsSpec.groovy | 21 |
2 files changed, 29 insertions, 21 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 new file mode 100644 index 0000000000..0dbde889a4 --- /dev/null +++ b/cps-service/src/test/groovy/org/onap/cps/model/DataNodeBuilderSpec.groovy @@ -0,0 +1,29 @@ +package org.onap.cps.model + +import org.onap.cps.TestUtils +import org.onap.cps.spi.model.DataNodeBuilder +import org.onap.cps.utils.YangUtils +import org.onap.cps.yang.YangTextSchemaSourceSetBuilder +import spock.lang.Specification + +class DataNodeBuilderSpec extends Specification { + + def 'Converting Normalized Node (tree) to a DataNode (tree).'() { + given: 'a Yang module' + def yangResourceNameToContent = TestUtils.getYangResourcesAsMap('bookstore.yang') + def schemaContext = YangTextSchemaSourceSetBuilder.of(yangResourceNameToContent)getSchemaContext() + and: 'a normalized node for that model' + def jsonData = TestUtils.getResourceFileContent('bookstore.json') + def normalizedNode = YangUtils.parseJsonData(jsonData, schemaContext) + when: 'the normalized node is converted to a DataNode (tree)' + def result = new DataNodeBuilder().withNormalizedNodeTree(normalizedNode).build() + then: 'the system creates a (root) fragment without a parent and 2 children (categories)' + result.childDataNodes.size() == 2 + and: 'each child (category) has the root fragment (result) as parent and in turn as 1 child (a list of books)' + result.childDataNodes.each { it.childDataNodes.size() == 1 } + and: 'the fragments have the correct xpaths' + assert result.xpath == '/bookstore' + assert result.childDataNodes.collect { it.xpath } + .containsAll(["/bookstore/categories[@code='01']", "/bookstore/categories[@code='02']"]) + } +} diff --git a/cps-service/src/test/groovy/org/onap/cps/utils/YangUtilsSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/utils/YangUtilsSpec.groovy index 9237fa29af..e6e5d6a366 100644 --- a/cps-service/src/test/groovy/org/onap/cps/utils/YangUtilsSpec.groovy +++ b/cps-service/src/test/groovy/org/onap/cps/utils/YangUtilsSpec.groovy @@ -54,25 +54,4 @@ class YangUtilsSpec extends Specification{ '{incomplete json' | 'incomplete json' '{"test:bookstore": {"address": "Parnell st." }}' | 'json with un-modelled data' } - - def 'Breaking a Json Data Object into fragments.'() { - given: 'a Yang module' - def yangResourceNameToContent = TestUtils.getYangResourcesAsMap('bookstore.yang') - def schemaContext = YangTextSchemaSourceSetBuilder.of(yangResourceNameToContent)getSchemaContext() - def module = schemaContext.findModule('stores', Revision.of('2020-09-15')).get() - and: 'a normalized node for that model' - def jsonData = TestUtils.getResourceFileContent('bookstore.json') - def normalizedNode = YangUtils.parseJsonData(jsonData, schemaContext) - when: 'the json data is fragmented' - def result = YangUtils.fragmentNormalizedNode(normalizedNode, module) - then: 'the system creates a (root) fragment without a parent and 2 children (categories)' - result.parentFragment == null - result.childFragments.size() == 2 - and: 'each child (category) has the root fragment (result) as parent and in turn as 1 child (a list of books)' - result.childFragments.each { it.parentFragment == result && it.childFragments.size() == 1 } - and: 'the fragments have the correct xpaths' - assert result.xpath == '/bookstore' - assert result.childFragments.collect { it.xpath } - .containsAll(["/bookstore/categories[@code='01']", "/bookstore/categories[@code='02']"]) - } } |