summaryrefslogtreecommitdiffstats
path: root/cps-service/src/test/groovy/org
diff options
context:
space:
mode:
Diffstat (limited to 'cps-service/src/test/groovy/org')
-rwxr-xr-xcps-service/src/test/groovy/org/onap/cps/api/impl/CpsAdminServiceImplSpec.groovy10
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/spi/model/DataNodeBuilderSpec.groovy17
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/utils/CmHandleQueryRestParametersValidatorSpec.groovy91
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/utils/DataMapUtilsSpec.groovy28
4 files changed, 128 insertions, 18 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 33868ccf06..def99e21f4 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
@@ -177,15 +177,6 @@ class CpsAdminServiceImplSpec extends Specification {
1 * mockCpsAdminPersistenceService.deleteDataspace('someDataspace')
}
- def 'Query CM Handles.'() {
- given: 'a cm handle query'
- def cmHandleQueryParameters = new CmHandleQueryParameters()
- when: 'query cm handles is invoked'
- objectUnderTest.queryCmHandles(cmHandleQueryParameters)
- then: 'associated persistence service method is invoked with correct parameter'
- 1 * mockCpsAdminPersistenceService.queryCmHandles(cmHandleQueryParameters)
- }
-
def 'Delete dataspace with invalid dataspace id.'() {
when: 'delete dataspace is invoked'
objectUnderTest.deleteDataspace('some dataspace name')
@@ -194,5 +185,4 @@ class CpsAdminServiceImplSpec extends Specification {
and: 'associated persistence service method is not invoked'
0 * mockCpsAdminPersistenceService.deleteDataspace(_)
}
-
}
diff --git a/cps-service/src/test/groovy/org/onap/cps/spi/model/DataNodeBuilderSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/spi/model/DataNodeBuilderSpec.groovy
index ce54ead2a0..16d4efc273 100644
--- a/cps-service/src/test/groovy/org/onap/cps/spi/model/DataNodeBuilderSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/spi/model/DataNodeBuilderSpec.groovy
@@ -22,6 +22,7 @@ package org.onap.cps.spi.model
import org.onap.cps.TestUtils
import org.onap.cps.spi.model.DataNodeBuilder
+import org.onap.cps.utils.DataMapUtils
import org.onap.cps.utils.YangUtils
import org.onap.cps.yang.YangTextSchemaSourceSetBuilder
import org.opendaylight.yangtools.yang.common.QName
@@ -172,6 +173,22 @@ class DataNodeBuilderSpec extends Specification {
'NormalizedNode is an unsupported type' | 'not supported' | Mock(NormalizedNode) | 0 | [ ]
}
+ def 'Use of adding the module name prefix attribute of data node.'() {
+ when: 'data node is built with a prefix'
+ def testDataNode = new DataNodeBuilder()
+ .withModuleNamePrefix('sampleModuleNamePrefix')
+ .withXpath(xPath)
+ .withLeaves(sampleLeaves)
+ .build()
+ then: 'the result when node request is a #scenario includes the correct prefix'
+ def result = new DataMapUtils().toDataMapWithIdentifier(testDataNode)
+ result.toString() == expectedResult
+ where: 'the following parameters are used'
+ scenario | xPath | sampleLeaves | expectedResult
+ 'list attribute' | '/test-tree/branch[@name=\'Right\']/nest' | [name: 'Big', birds: ['Owl']] | '{sampleModuleNamePrefix:nest={name=Big, birds=[Owl]}}'
+ 'container xpath' | '/test-tree/branch[@name=\'Left\']' | [name: 'Left'] | '{sampleModuleNamePrefix:branch={name=Left}}'
+ }
+
def static assertLeavesMaps(actualLeavesMap, expectedLeavesMap) {
expectedLeavesMap.each { key, value ->
{
diff --git a/cps-service/src/test/groovy/org/onap/cps/utils/CmHandleQueryRestParametersValidatorSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/utils/CmHandleQueryRestParametersValidatorSpec.groovy
new file mode 100644
index 0000000000..645829b2a2
--- /dev/null
+++ b/cps-service/src/test/groovy/org/onap/cps/utils/CmHandleQueryRestParametersValidatorSpec.groovy
@@ -0,0 +1,91 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 Nordix Foundation
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.cps.utils
+
+import org.onap.cps.spi.exceptions.DataValidationException
+import org.onap.cps.spi.model.CmHandleQueryParameters
+import org.onap.cps.spi.model.ConditionProperties
+import spock.lang.Specification
+
+class CmHandleQueryRestParametersValidatorSpec extends Specification {
+ def 'CM Handle Query validation: empty query.'() {
+ given: 'a cm handle query'
+ def cmHandleQueryParameters = new CmHandleQueryParameters()
+ when: 'validator is invoked'
+ CmHandleQueryRestParametersValidator.validateCmHandleQueryParameters(cmHandleQueryParameters)
+ then: 'data validation exception is not thrown'
+ noExceptionThrown()
+ }
+
+ def 'CM Handle Query validation: normal query.'() {
+ given: 'a cm handle query'
+ def cmHandleQueryParameters = new CmHandleQueryParameters()
+ def condition = new ConditionProperties()
+ condition.conditionName = 'hasAllProperties'
+ condition.conditionParameters = [[key1:'value1'],[key2:'value2']]
+ cmHandleQueryParameters.cmHandleQueryParameters = [condition]
+ when: 'validator is invoked'
+ CmHandleQueryRestParametersValidator.validateCmHandleQueryParameters(cmHandleQueryParameters)
+ then: 'data validation exception is not thrown'
+ noExceptionThrown()
+ }
+
+ def 'CM Handle Query validation: #scenario.'() {
+ given: 'a cm handle query'
+ def cmHandleQueryParameters = new CmHandleQueryParameters()
+ def condition = new ConditionProperties()
+ condition.conditionName = conditionName
+ condition.conditionParameters = conditionParameters
+ cmHandleQueryParameters.cmHandleQueryParameters = [condition]
+ when: 'validator is invoked'
+ CmHandleQueryRestParametersValidator.validateCmHandleQueryParameters(cmHandleQueryParameters)
+ then: 'a data validation exception is thrown'
+ thrown(DataValidationException)
+ where:
+ scenario | conditionName | conditionParameters
+ 'empty properties' | 'hasAllProperties' | [[ : ]]
+ 'empty conditions' | 'hasAllProperties' | []
+ 'wrong condition name' | 'wrong' | []
+ 'no condition name' | '' | []
+ 'too many properties' | 'hasAllProperties' | [[key1:'value1', key2:'value2']]
+ 'wrong properties' | 'hasAllProperties' | [['':'wrong']]
+ }
+
+ def 'CM Handle Query validation: validate module name condition properties - valid query.'() {
+ given: 'a condition property'
+ def conditionProperty = [moduleName: 'value']
+ when: 'validator is invoked'
+ CmHandleQueryRestParametersValidator.validateModuleNameConditionProperties(conditionProperty)
+ then: 'data validation exception is not thrown'
+ noExceptionThrown()
+ }
+
+ def 'CM Handle Query validation: validate module name condition properties - #scenario.'() {
+ when: 'validator is invoked'
+ CmHandleQueryRestParametersValidator.validateModuleNameConditionProperties(conditionProperty)
+ then: 'a data validation exception is thrown'
+ thrown(DataValidationException)
+ where:
+ scenario | conditionProperty
+ 'invalid value' | [moduleName: '']
+ 'invalid name' | [wrongName: 'value']
+ }
+}
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 90563c0c16..24e8061b53 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 Nordix Foundation
+ * Modifications Copyright (C) 2020-2022 Nordix Foundation
* Modifications Copyright (C) 2022 Bell Canada.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -29,13 +29,13 @@ class DataMapUtilsSpec extends Specification {
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)]
- ),
- ])
+ "/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 def buildDataNode(xpath, leaves, children) {
return new DataNodeBuilder().withXpath(xpath).withLeaves(leaves).withChildDataNodes(children).build()
@@ -81,4 +81,16 @@ class DataMapUtilsSpec extends Specification {
and: 'leaves for grandchild element is populated under its node identifier'
parentNode.'child-object'.'grand-child-object'.grandChildLeaf == 'grandChildLeafValue'
}
+
+ def 'Adding prefix to data node identifier.'() {
+ when: 'a valid xPath is passed to the addPrefixToXpath method'
+ def result = new DataMapUtils().getNodeIdentifierWithPrefix(xPath,'sampleModuleName')
+ then: 'the correct modified node identifier is given'
+ assert result == expectedNodeIdentifier
+ where: 'the following parameters are used'
+ scenario | xPath | expectedNodeIdentifier
+ 'container xpath' | '/bookstore' | 'sampleModuleName:bookstore'
+ 'xpath contains list attribute' | '/bookstore/categories[@code=1]' | 'sampleModuleName:categories'
+ }
}
+