aboutsummaryrefslogtreecommitdiffstats
path: root/cps-service/src/test/groovy
diff options
context:
space:
mode:
authorToineSiebelink <toine.siebelink@est.tech>2021-02-08 11:36:59 +0000
committerToineSiebelink <toine.siebelink@est.tech>2021-02-09 12:44:20 +0000
commit1f64d85f1cd85653a34b8656c67f4cc2565808e7 (patch)
tree60593135797b572362fecfe77062226720a67576 /cps-service/src/test/groovy
parent4ec225ce071d68c02cbc2388847d416c268bfa40 (diff)
General groovy test improvements
- Use the power of Groovy (maps and collections) - Improve data sample readability - Split out Datanode get scenarios: Separate Leave test from children related tests Issue-ID: CPS-160 Signed-off-by: ToineSiebelink <toine.siebelink@est.tech> Change-Id: Ife40749525a931b23091b472680c233f012bc457
Diffstat (limited to 'cps-service/src/test/groovy')
-rwxr-xr-xcps-service/src/test/groovy/org/onap/cps/api/impl/CpsAdminServiceImplSpec.groovy14
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/utils/DataMapUtilsSpec.groovy66
2 files changed, 35 insertions, 45 deletions
diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsAdminServiceImplSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsAdminServiceImplSpec.groovy
index 7c0c6267a7..6631a20136 100755
--- a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsAdminServiceImplSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsAdminServiceImplSpec.groovy
@@ -48,17 +48,17 @@ class CpsAdminServiceImplSpec extends Specification {
def 'Retrieve all anchors for dataspace.'() {
given: 'that anchor is associated with the dataspace'
- Collection<Anchor> anchorCollection = Arrays.asList(new Anchor())
- mockCpsAdminPersistenceService.getAnchors('someDataspace') >> { anchorCollection }
+ def anchors = [new Anchor()]
+ mockCpsAdminPersistenceService.getAnchors('someDataspace') >> anchors
expect: 'the collection provided by persistence service is returned as result'
- objectUnderTest.getAnchors('someDataspace') == anchorCollection
+ objectUnderTest.getAnchors('someDataspace') == anchors
}
-
+
def 'Retrieve anchor for dataspace and provided anchor name.'() {
given: 'that anchor name is associated with the dataspace'
Anchor anchor = new Anchor()
- mockCpsAdminPersistenceService.getAnchor('someDataspace','someAnchor') >> anchor
+ mockCpsAdminPersistenceService.getAnchor('someDataspace','someAnchor') >> anchor
expect: 'the anchor provided by persistence service is returned as result'
objectUnderTest.getAnchor('someDataspace','someAnchor') == anchor
- }
-} \ No newline at end of file
+ }
+}
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 61cfc37aa1..429ab40b90 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,6 +1,7 @@
/*
* ============LICENSE_START=======================================================
* Copyright (C) 2021 Pantheon.tech
+ * Modifications Copyright (C) 2020 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,56 +20,45 @@
package org.onap.cps.utils
-import com.google.common.collect.ImmutableMap
-import org.onap.cps.spi.model.DataNode
import org.onap.cps.spi.model.DataNodeBuilder
import spock.lang.Specification
-import static java.util.Arrays.asList
-
class DataMapUtilsSpec extends Specification {
- DataNode dataNode = buildDataNode(
- "/parent",
- ImmutableMap.<String, Object> of("a", "b", "c", asList("d", "e")),
- asList(
- buildDataNode(
- "/parent/child-list[@name='x']",
- ImmutableMap.<String, Object> of("name", "x"),
- Collections.emptyList()),
- buildDataNode(
- "/parent/child-list[@name='y']",
- ImmutableMap.<String, Object> of("name", "y"),
- Collections.emptyList()),
- buildDataNode(
- "/parent/child-object",
- ImmutableMap.<String, Object> of("m", "n"),
- asList(
- buildDataNode(
- "/parent/child-object/grand-child",
- ImmutableMap.<String, Object> of("o", "p"),
- Collections.emptyList()
- )
- )
- ),
- ))
+ def noChildren = []
+
+ def dataNode = buildDataNode(
+ "/parent",[parentLeaf:'parentLeafValue', parentLeafList:['parentLeafListEntry1','parentLeafListEntry2']],[
+ buildDataNode('/parent/child-list[@id=1]',[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 DataNode buildDataNode(String xpath, Map<String, Object> leaves, List<DataNode> children) {
+ static def buildDataNode(xpath, leaves, children) {
return new DataNodeBuilder().withXpath(xpath).withLeaves(leaves).withChildDataNodes(children).build()
}
def 'Data node structure conversion to map.'() {
- when: 'data node structure converted to map'
- def result = DataMapUtils.toDataMap(dataNode)
+ when: 'data node structure is converted to a map'
+ Map result = DataMapUtils.toDataMap(dataNode)
+
then: 'root node leaves are top level elements'
- assert result["a"] == "b"
- assert ((Collection) result["c"]).containsAll("d", "e")
+ result.parentLeaf == 'parentLeafValue'
+ result.parentLeafList == ['parentLeafListEntry1','parentLeafListEntry2']
+
and: 'leaves of child list element are listed as structures under common identifier'
- assert ((Collection) result["child-list"]).size() == 2
- assert ((Collection) result["child-list"]).containsAll(["name": "x"], ["name": "y"])
- and: 'leaves for child and grand-child elements are populated under their node identifiers'
- assert result["child-object"]["m"] == "n"
- assert result["child-object"]["grand-child"]["o"] == "p"
+ result.'child-list'.collect().containsAll(['listElementLeaf': 'listElement1leafValue'],
+ ['listElementLeaf': 'listElement2leafValue'])
+
+ and: 'leaves for child element is populated under its node identifier'
+ Map childObjectData = result.'child-object'
+ childObjectData.childLeaf == 'childLeafValue'
+
+ and: 'leaves for grandchild element is populated under its node identifier'
+ Map grandChildObjectData = childObjectData.'grand-child-object'
+ grandChildObjectData.grandChildLeaf == 'grandChildLeafValue'
}
}