Merge "Merge 2 'query' end points in NCMP"
[cps.git] / cps-ncmp-rest / src / test / groovy / org / onap / cps / ncmp / rest / util / DeprecationHelperSpec.groovy
1 /*
2  *  ============LICENSE_START=======================================================
3  *  Copyright (C) 2022 Nordix Foundation
4  *  ================================================================================
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *        http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  *  SPDX-License-Identifier: Apache-2.0
18  *  ============LICENSE_END=========================================================
19  */
20
21 package org.onap.cps.ncmp.rest.util
22
23 import com.fasterxml.jackson.databind.ObjectMapper
24 import org.onap.cps.ncmp.api.models.CmHandleQueryApiParameters
25 import org.onap.cps.ncmp.api.models.ConditionApiProperties
26 import org.onap.cps.ncmp.rest.model.CmHandleQueryParameters
27 import org.onap.cps.ncmp.rest.model.ConditionProperties
28 import org.onap.cps.ncmp.rest.model.ModuleNameAsJsonObject
29 import org.onap.cps.ncmp.rest.model.OldConditionProperties
30 import org.onap.cps.utils.JsonObjectMapper
31 import spock.lang.Specification
32
33 class DeprecationHelperSpec extends Specification {
34
35     DeprecationHelper deprecationHelper = new DeprecationHelper(new JsonObjectMapper(new ObjectMapper()))
36
37     def 'Map deprecated condition properties - #scenario.'() {
38         given: 'a deprecated condition properties'
39             def cmHandleQueryParameters = new CmHandleQueryParameters()
40             cmHandleQueryParameters.conditions = oldConditionPropertiesArray
41             cmHandleQueryParameters.cmHandleQueryParameters = cmHandleQueryParametersArray
42         when: 'converted into the new format'
43             def result = deprecationHelper.mapOldConditionProperties(cmHandleQueryParameters)
44         then: 'result is the expected'
45             assert result == new CmHandleQueryApiParameters(cmHandleQueryParameters: expectedCmHandleQueryApiParametersArray)
46         where:
47             scenario                           | oldConditionPropertiesArray                                                                                                   | cmHandleQueryParametersArray                                                                           || expectedCmHandleQueryApiParametersArray
48             'mapping old query'                | [new OldConditionProperties(name: 'hasAllModule', conditionParameters: [new ModuleNameAsJsonObject(moduleName: 'module-1')])] | []                                                                                                     || [new ConditionApiProperties(conditionName: 'hasAllModule', conditionParameters: [[moduleName:'module-1']])]
49             'old condition is null'            | null                                                                                                                          | []                                                                                                     || []
50             'old condition parameters is null' | [new OldConditionProperties(name: 'hasAllModule', conditionParameters: null)]                                                 | []                                                                                                     || []
51             'old condition name is null'       | [new OldConditionProperties(name: null, conditionParameters: [new ModuleNameAsJsonObject(moduleName: 'module-1')])]           | []                                                                                                     || []
52             'new query parameters are filled'  | [new OldConditionProperties(name: 'hasAllModule', conditionParameters: [new ModuleNameAsJsonObject(moduleName: 'module-1')])] | [new ConditionProperties(conditionName: 'hasAllModule', conditionParameters: [[moduleName:'module-2']])] || [new ConditionApiProperties(conditionName: 'hasAllModule', conditionParameters: [[moduleName:'module-2']])]
53     }
54 }