aboutsummaryrefslogtreecommitdiffstats
path: root/cps-service/src/test/groovy
diff options
context:
space:
mode:
Diffstat (limited to 'cps-service/src/test/groovy')
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/model/DataNodeBuilderSpec.groovy29
-rwxr-xr-xcps-service/src/test/groovy/org/onap/cps/spi/exceptions/CpsExceptionsSpec.groovy18
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/utils/YangUtilsSpec.groovy21
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']"])
- }
}