summaryrefslogtreecommitdiffstats
path: root/cps-service
diff options
context:
space:
mode:
Diffstat (limited to 'cps-service')
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/utils/DataMapUtilsSpec.groovy74
1 files changed, 37 insertions, 37 deletions
diff --git a/cps-service/src/test/groovy/org/onap/cps/utils/DataMapUtilsSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/utils/DataMapUtilsSpec.groovy
index e27b437637..c636f4b5ff 100644
--- a/cps-service/src/test/groovy/org/onap/cps/utils/DataMapUtilsSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/utils/DataMapUtilsSpec.groovy
@@ -1,7 +1,7 @@
/*
* ============LICENSE_START=======================================================
* Copyright (C) 2021 Pantheon.tech
- * Modifications Copyright (C) 2020-2022 Nordix Foundation
+ * Modifications Copyright (C) 2020-2023 Nordix Foundation
* Modifications Copyright (C) 2022 Bell Canada.
* Modifications Copyright (C) 2023 TechMahindra Ltd.
* ================================================================================
@@ -29,50 +29,19 @@ class DataMapUtilsSpec extends Specification {
def noChildren = []
- def dataNode = buildDataNode(
- "/parent",[parentLeaf:'parentLeafValue', parentLeafList:['parentLeafListEntry1','parentLeafListEntry2']],[
- buildDataNode('/parent/child-list[@id=1/2]',[listElementLeaf:'listElement1leafValue'],noChildren),
- buildDataNode('/parent/child-list[@id=2]',[listElementLeaf:'listElement2leafValue'],noChildren),
- buildDataNode('/parent/child-object',[childLeaf:'childLeafValue'],
- [buildDataNode('/parent/child-object/grand-child-object',[grandChildLeaf:'grandChildLeafValue'],noChildren)]
- ),
- ])
-
- def dataNodeWithAnchor = buildDataNodeWithAnchor(
- "/parent", 'anchor01',[parentLeaf:'parentLeafValue', parentLeafList:['parentLeafListEntry1','parentLeafListEntry2']],[
- buildDataNode('/parent/child-list[@id=1/2]',[listElementLeaf:'listElement1leafValue'],noChildren),
- buildDataNode('/parent/child-list[@id=2]',[listElementLeaf:'listElement2leafValue'],noChildren),
- buildDataNode('/parent/child-object',[childLeaf:'childLeafValue'],
- [buildDataNode('/parent/child-object/grand-child-object',[grandChildLeaf:'grandChildLeafValue'],noChildren)]
- ),
- ])
-
- static def buildDataNode(xpath, leaves, children) {
- return new DataNodeBuilder().withXpath(xpath).withLeaves(leaves).withChildDataNodes(children).build()
- }
-
- static def buildDataNodeWithAnchor(xpath, anchorName, leaves, children) {
- return new DataNodeBuilder().withXpath(xpath).withAnchor(anchorName).withLeaves(leaves).withChildDataNodes(children).build()
- }
-
def 'Data node structure conversion to map.'() {
when: 'data node structure is converted to a map'
def result = DataMapUtils.toDataMap(dataNode)
-
then: 'root node identifier is null'
result.parent == null
-
then: 'root node leaves are top level elements'
result.parentLeaf == 'parentLeafValue'
result.parentLeafList == ['parentLeafListEntry1','parentLeafListEntry2']
-
and: 'leaves of child list element are listed as structures under common identifier'
result.'child-list'.collect().containsAll(['listElementLeaf': 'listElement1leafValue'],
['listElementLeaf': 'listElement2leafValue'])
-
and: 'leaves for child element is populated under its node identifier'
result.'child-object'.childLeaf == 'childLeafValue'
-
and: 'leaves for grandchild element is populated under its node identifier'
result.'child-object'.'grand-child-object'.grandChildLeaf == 'grandChildLeafValue'
}
@@ -84,10 +53,8 @@ class DataMapUtilsSpec extends Specification {
def parentNode = result.parent
parentNode.parentLeaf == 'parentLeafValue'
parentNode.parentLeafList == ['parentLeafListEntry1','parentLeafListEntry2']
-
and: 'leaves for child element is populated under its node identifier'
parentNode.'child-object'.childLeaf == 'childLeafValue'
-
and: 'leaves for grandchild element is populated under its node identifier'
parentNode.'child-object'.'grand-child-object'.grandChildLeaf == 'grandChildLeafValue'
}
@@ -112,15 +79,48 @@ class DataMapUtilsSpec extends Specification {
def parentNode = result.get("dataNode").parent
parentNode.parentLeaf == 'parentLeafValue'
parentNode.parentLeafList == ['parentLeafListEntry1','parentLeafListEntry2']
-
and: 'leaves for child element is populated under its node identifier'
assert parentNode.'child-object'.childLeaf == 'childLeafValue'
-
and: 'leaves for grandchild element is populated under its node identifier'
assert parentNode.'child-object'.'grand-child-object'.grandChildLeaf == 'grandChildLeafValue'
-
and: 'data node is associated with anchor name'
assert result.get('anchorName') == 'anchor01'
}
+
+ def 'Data node without leaves and without children.'() {
+ given: 'a datanode with no leaves and no children'
+ def dataNodeWithoutData = new DataNodeBuilder().withXpath('some xpath').build()
+ when: 'it is converted to a map'
+ def result = DataMapUtils.toDataMap(dataNodeWithoutData)
+ then: 'an empty object map is returned'
+ result.isEmpty()
+ }
+
+ def dataNode = buildDataNode(
+ "/parent",[parentLeaf:'parentLeafValue', parentLeafList:['parentLeafListEntry1','parentLeafListEntry2']],[
+ buildDataNode('/parent/child-list[@id=1/2]',[listElementLeaf:'listElement1leafValue'],noChildren),
+ buildDataNode('/parent/child-list[@id=2]',[listElementLeaf:'listElement2leafValue'],noChildren),
+ buildDataNode('/parent/child-object',[childLeaf:'childLeafValue'],
+ [buildDataNode('/parent/child-object/grand-child-object',[grandChildLeaf:'grandChildLeafValue'],noChildren)]
+ ),
+ ])
+
+ def dataNodeWithAnchor = buildDataNodeWithAnchor(
+ "/parent", 'anchor01',[parentLeaf:'parentLeafValue', parentLeafList:['parentLeafListEntry1','parentLeafListEntry2']],[
+ buildDataNode('/parent/child-list[@id=1/2]',[listElementLeaf:'listElement1leafValue'],noChildren),
+ buildDataNode('/parent/child-list[@id=2]',[listElementLeaf:'listElement2leafValue'],noChildren),
+ buildDataNode('/parent/child-object',[childLeaf:'childLeafValue'],
+ [buildDataNode('/parent/child-object/grand-child-object',[grandChildLeaf:'grandChildLeafValue'],noChildren)]
+ ),
+ ])
+
+ def buildDataNode(xpath, leaves, children) {
+ return new DataNodeBuilder().withXpath(xpath).withLeaves(leaves).withChildDataNodes(children).build()
+ }
+
+ def buildDataNodeWithAnchor(xpath, anchorName, leaves, children) {
+ return new DataNodeBuilder().withXpath(xpath).withAnchor(anchorName).withLeaves(leaves).withChildDataNodes(children).build()
+ }
+
}