diff options
Diffstat (limited to 'cps-service/src/test/groovy')
3 files changed, 46 insertions, 22 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/spi/exceptions/CpsExceptionsSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/spi/exceptions/CpsExceptionsSpec.groovy index 914a395d66..500b80152d 100755 --- a/cps-service/src/test/groovy/org/onap/cps/spi/exceptions/CpsExceptionsSpec.groovy +++ b/cps-service/src/test/groovy/org/onap/cps/spi/exceptions/CpsExceptionsSpec.groovy @@ -27,6 +27,7 @@ class CpsExceptionsSpec extends Specification { def rootCause = new Throwable() def providedMessage = 'some message' def providedDetails = 'some details' + def xpath = 'some xpath' def 'Creating an exception that the Anchor already exist.'() { given: 'an exception dat the Anchor already exist is created' @@ -52,7 +53,7 @@ class CpsExceptionsSpec extends Specification { == "Dataspace with name ${dataspaceName} does not exist." } - def 'Creating a data validation exception.'() { + def 'Creating a data validation exception with root cause.'() { given: 'a data validation exception is created' def exception = new DataValidationException(providedMessage, providedDetails, rootCause) expect: 'the exception has the provided message' @@ -63,6 +64,15 @@ class CpsExceptionsSpec extends Specification { exception.cause == rootCause } + def 'Creating a data validation exception.'() { + given: 'a data validation exception is created' + def exception = new DataValidationException(providedMessage, providedDetails) + expect: 'the exception has the provided message' + exception.message == providedMessage + and: 'the exception has the provided details' + exception.details == providedDetails + } + def 'Creating a model validation exception.'() { given: 'a data validation exception is created' def exception = new ModelValidationException(providedMessage, providedDetails) @@ -117,4 +127,10 @@ class CpsExceptionsSpec extends Specification { == ("Schema Set with name ${schemaSetName} in dataspace ${dataspaceName} is having " + "Anchor records associated.") } + + def 'Creating a exception that a datanode does not exist.'() { + expect: 'the exception details contains the correct message with dataspace name and xpath.' + (new DataNodeNotFoundException(dataspaceName, anchorName, xpath)).details + == "DataNode with xpath ${xpath} was not found for anchor ${anchorName} and dataspace ${dataspaceName}." + } }
\ No newline at end of file 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']"]) - } } |