diff options
author | kissand <andras.zoltan.kiss@est.tech> | 2022-05-12 15:59:18 +0200 |
---|---|---|
committer | kissand <andras.zoltan.kiss@est.tech> | 2022-06-08 09:46:28 +0200 |
commit | e9ed581de0a6090c513e6fca0052b69396cb3cc8 (patch) | |
tree | ea66ec265e0544cf0037e9fe2969a5f017d9ad45 /cps-service/src/test/groovy | |
parent | 002fb164cde7079cb3cac65a14b74fec9588ddc5 (diff) |
Merge 2 'query' end points in NCMP
- merge two endpoint for a same backend
- use xPath query instead of sql query
- modify searches endpoint to return a cmHandle object with all public
properties
- handle old (deprecated) queries
- handle public property queries
- create useful examples
- use more verbose error messages
- simplify openapi yamls
- create new query service
- change second endpoint name to a better matched name
- modify legacy tests with new requirements
- create new tests for the new scenarios
Issue-ID: CPS-1016
Change-Id: I7476e9dbd510ec93b5b48ce85d477ecb2dadffff
Signed-off-by: kissand <andras.zoltan.kiss@est.tech>
Diffstat (limited to 'cps-service/src/test/groovy')
-rwxr-xr-x | cps-service/src/test/groovy/org/onap/cps/api/impl/CpsAdminServiceImplSpec.groovy | 10 | ||||
-rw-r--r-- | cps-service/src/test/groovy/org/onap/cps/utils/CmHandleQueryRestParametersValidatorSpec.groovy | 91 |
2 files changed, 91 insertions, 10 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/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'] + } +} |