999a12c869d377016fde7573a97f9eb7b21b5dfe
[so.git] / bpmn / MSOCommonBPMN / src / test / groovy / org / onap / so / bpmn / common / scripts / CreateAAIVfModuleTest.groovy
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Copyright (C) 2018 Nokia.
8  * ================================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * ============LICENSE_END=========================================================
21  */
22
23 package org.onap.so.bpmn.common.scripts
24
25 import joptsimple.internal.Strings
26 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake
27 import org.junit.Before
28 import org.junit.Test
29 import org.onap.so.bpmn.core.UrnPropertiesReader
30 import org.springframework.core.env.Environment
31
32 import static org.assertj.core.api.Assertions.assertThat
33 import static org.mockito.Mockito.mock
34 import static org.mockito.Mockito.when
35
36 class CreateAAIVfModuleTest {
37
38     private static final String VNF_ID = "vnfIdTest"
39     private static final String VNF_TYPE = "vnfTypeTest"
40     private static final String VNF_NAME = "testVnf"
41     private static final String SERVICE_ID = "123"
42     private static final String PERSONAL_MODEL_ID = "modelTest"
43     private static final String PERSONAL_MODEL_VERSION = "12"
44     private static final String MODEL_CUST_ID = "modelCustIdTest"
45     private static final String VNF_PERSONAL_MODEL_ID = "perModIdTest"
46     private static final String VNF_PERSONAL_MODEL_VER = "14"
47     private static final String VF_MODULE_NAME = "modTestName"
48     private static final String VF_MODULE_MODEL_NAME = "modModelNameTest"
49     private static final String DEFAULT_AAI_VERSION = "9"
50     private static final String DEFAULT_AAI_NAMESPACE = "defaultTestNamespace"
51
52     private CreateAAIVfModule testedObject
53     private DelegateExecutionFake executionFake
54
55     @Before
56     void setupTest() {
57         testedObject = new CreateAAIVfModule()
58         executionFake = new DelegateExecutionFake()
59     }
60
61     @Test
62     void preProcessRequest_successful() {
63         //given
64         prepareUrnPropertiesReader()
65         executionFake.setVariable("vnfId", VNF_ID)
66         executionFake.setVariable("vnfType", VNF_TYPE)
67         executionFake.setVariable("vnfName", VNF_NAME)
68         executionFake.setVariable("serviceId", SERVICE_ID)
69         executionFake.setVariable("personaModelId", PERSONAL_MODEL_ID)
70         executionFake.setVariable("personaModelVersion", PERSONAL_MODEL_VERSION)
71         executionFake.setVariable("modelCustomizationId", MODEL_CUST_ID)
72         executionFake.setVariable("vnfPersonaModelId", VNF_PERSONAL_MODEL_ID)
73         executionFake.setVariable("vnfPersonaModelVersion", VNF_PERSONAL_MODEL_VER)
74         executionFake.setVariable("isBaseVfModule", "true")
75         executionFake.setVariable("vfModuleName", VF_MODULE_NAME)
76         executionFake.setVariable("vfModuleModelName", VF_MODULE_MODEL_NAME)
77         //when
78         testedObject.preProcessRequest(executionFake)
79         //then
80         assertThat(executionFake.getVariable("CAAIVfMod_vnfId")).isEqualTo(VNF_ID)
81         assertThat(executionFake.getVariable("CAAIVfMod_vnfName")).isEqualTo(VNF_NAME)
82         assertThat(executionFake.getVariable("CAAIVfMod_vnfType")).isEqualTo(VNF_TYPE)
83         assertThat(executionFake.getVariable("CAAIVfMod_serviceId")).isEqualTo(SERVICE_ID)
84         assertThat(executionFake.getVariable("CAAIVfMod_personaId")).isEqualTo(PERSONAL_MODEL_ID)
85         assertThat(executionFake.getVariable("CAAIVfMod_personaVer")).isEqualTo(PERSONAL_MODEL_VERSION)
86         assertThat(executionFake.getVariable("CAAIVfMod_modelCustomizationId")).isEqualTo(MODEL_CUST_ID)
87         assertThat(executionFake.getVariable("CAAIVfMod_vnfPersonaId")).isEqualTo(VNF_PERSONAL_MODEL_ID)
88         assertThat(executionFake.getVariable("CAAIVfMod_vnfPersonaVer")).isEqualTo(VNF_PERSONAL_MODEL_VER)
89         assertThat(executionFake.getVariable("CAAIVfMod_isBaseVfModule")).isEqualTo(true)
90         assertThat(executionFake.getVariable("CAAIVfMod_moduleName")).isEqualTo(VF_MODULE_NAME)
91         assertThat(executionFake.getVariable("CAAIVfMod_moduleModelName")).isEqualTo(VF_MODULE_MODEL_NAME)
92         assertThat(executionFake.getVariable("CAAIVfMod_aaiNamespace"))
93                 .isEqualTo(DEFAULT_AAI_NAMESPACE + "v" + DEFAULT_AAI_VERSION)
94     }
95
96     @Test
97     void processAAIGenericVnfQuery_setVnfResponse() {
98         executionFake.setVariable("CAAIVfMod_queryGenericVnfResponseCode", 200)
99         executionFake.setVariable("CAAIVfMod_vnfId", Strings.EMPTY)
100         executionFake.setVariable("CAAIVfMod_vnfName", VNF_NAME)
101
102         testedObject.processAAIGenericVnfQuery(executionFake)
103
104         assertThat(executionFake.getVariable("CAAIVfMod_queryGenericVnfResponse"))
105                 .isEqualTo("Invalid request for new Generic VNF which already exists, Vnf Name=" + VNF_NAME)
106     }
107
108     @Test
109     void processAAIGenericVnfQuery_setVfModuleResponse() {
110         executionFake.setVariable("CAAIVfMod_queryGenericVnfResponseCode", 500)
111         executionFake.setVariable("CAAIVfMod_vnfId", VNF_ID)
112
113         testedObject.processAAIGenericVnfQuery(executionFake)
114
115         assertThat(executionFake.getVariable("CAAIVfMod_createVfModuleResponse"))
116                 .isEqualTo("Invalid request for Add-on Module requested for non-existant Generic VNF, VNF Id=" + VNF_ID)
117     }
118
119     @Test
120     void parseForAddOnModule_moduleNameFound() {
121         String xml = "<CAAIVfMod_queryGenericVnfResponse><vnf-name>" + VNF_NAME + "</vnf-name>" +
122                 "<vf-module-name>" + VF_MODULE_NAME + "</vf-module-name></CAAIVfMod_queryGenericVnfResponse>"
123         executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml)
124         executionFake.setVariable("CAAIVfMod_moduleName", VF_MODULE_NAME)
125
126         testedObject.parseForAddOnModule(executionFake)
127
128         assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME)
129         assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(true)
130         assertThat(executionFake.getVariable("CAAIVfMod_parseModuleResponse"))
131                 .isEqualTo("VF Module " + VF_MODULE_NAME + " already exists for Generic VNF " + VNF_NAME)
132     }
133
134     @Test
135     void parseForAddOnModule_moduleNameNotFound() {
136         String xml = "<CAAIVfMod_queryGenericVnfResponse><vnf-name>" + VNF_NAME + "</vnf-name>" +
137                 "</CAAIVfMod_queryGenericVnfResponse>"
138         executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml)
139         executionFake.setVariable("CAAIVfMod_moduleName", VF_MODULE_NAME)
140         executionFake.setVariable("CAAIVfMod_moduleExists", false)
141
142         testedObject.parseForAddOnModule(executionFake)
143
144         assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME)
145         assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(false)
146         assertThat(executionFake.getVariable("CAAIVfMod_parseModuleResponse"))
147                 .isEqualTo("VF Module " + VF_MODULE_NAME + " does not exist for Generic VNF " + VNF_NAME)
148     }
149
150     @Test
151     void parseForBaseModule_moduleNameFound() {
152         String xml = "<CAAIVfMod_queryGenericVnfResponse><vnf-name>" + VNF_NAME + "</vnf-name>" +
153                 "<vf-module-name>" + VF_MODULE_NAME + "</vf-module-name></CAAIVfMod_queryGenericVnfResponse>"
154         executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml)
155         executionFake.setVariable("CAAIVfMod_moduleName", VF_MODULE_NAME)
156
157         testedObject.parseForBaseModule(executionFake)
158
159         assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME)
160         assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(false)
161         assertThat(executionFake.getVariable("CAAIVfMod_baseModuleConflict")).isEqualTo(true)
162         assertThat(executionFake.getVariable("CAAIVfMod_parseModuleResponse"))
163                 .isEqualTo("VF Module " + VF_MODULE_NAME + " already exists for Generic VNF " + VNF_NAME)
164     }
165
166     @Test
167     void parseForBaseModule_isBaseVfModule() {
168         String xml = "<CAAIVfMod_queryGenericVnfResponse><vnf-name>" + VNF_NAME + "</vnf-name>" +
169                 "<is-base-vf-module>true</is-base-vf-module></CAAIVfMod_queryGenericVnfResponse>"
170         executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml)
171         executionFake.setVariable("CAAIVfMod_baseModuleConflict", false)
172
173         testedObject.parseForBaseModule(executionFake)
174
175         assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME)
176         assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(false)
177         assertThat(executionFake.getVariable("CAAIVfMod_baseModuleConflict")).isEqualTo(true)
178         assertThat(executionFake.getVariable("CAAIVfMod_parseModuleResponse"))
179                 .isEqualTo("Base VF Module already exists for Generic VNF " + VNF_NAME)
180     }
181
182     @Test
183     void parseForBaseModule_baseModuleConflictIsFalse() {
184         String xml = "<CAAIVfMod_queryGenericVnfResponse><vnf-name>" + VNF_NAME + "</vnf-name></CAAIVfMod_queryGenericVnfResponse>"
185         executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml)
186         executionFake.setVariable("CAAIVfMod_baseModuleConflict", false)
187         executionFake.setVariable("CAAIVfMod_moduleName", VF_MODULE_NAME)
188
189         testedObject.parseForBaseModule(executionFake)
190
191         assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME)
192         assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(false)
193         assertThat(executionFake.getVariable("CAAIVfMod_parseModuleResponse"))
194                 .isEqualTo("VF Module " + VF_MODULE_NAME + " does not exist for Generic VNF " + VNF_NAME)
195     }
196
197     private void prepareUrnPropertiesReader() {
198         Environment mockEnvironment = mock(Environment.class)
199         when(mockEnvironment.getProperty("mso.workflow.global.default.aai.version")).thenReturn(DEFAULT_AAI_VERSION)
200         when(mockEnvironment.getProperty("mso.workflow.global.default.aai.namespace")).thenReturn(DEFAULT_AAI_NAMESPACE)
201         UrnPropertiesReader urnPropertiesReader = new UrnPropertiesReader()
202         urnPropertiesReader.setEnvironment(mockEnvironment)
203     }
204
205 }