2 * ============LICENSE_START=======================================================
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
13 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
23 package org.onap.so.bpmn.common.scripts
25 import joptsimple.internal.Strings
26 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake
27 import org.junit.Before
29 import org.onap.so.bpmn.core.UrnPropertiesReader
30 import org.springframework.core.env.Environment
32 import static org.assertj.core.api.Assertions.assertThat
33 import static org.mockito.Mockito.mock
34 import static org.mockito.Mockito.when
36 class CreateAAIVfModuleTest {
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"
52 private CreateAAIVfModule testedObject
53 private DelegateExecutionFake executionFake
57 testedObject = new CreateAAIVfModule()
58 executionFake = new DelegateExecutionFake()
62 void preProcessRequest_successful() {
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)
78 testedObject.preProcessRequest(executionFake)
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)
97 void processAAIGenericVnfQuery_setVnfResponse() {
98 executionFake.setVariable("CAAIVfMod_queryGenericVnfResponseCode", 200)
99 executionFake.setVariable("CAAIVfMod_vnfId", Strings.EMPTY)
100 executionFake.setVariable("CAAIVfMod_vnfName", VNF_NAME)
102 testedObject.processAAIGenericVnfQuery(executionFake)
104 assertThat(executionFake.getVariable("CAAIVfMod_queryGenericVnfResponse"))
105 .isEqualTo("Invalid request for new Generic VNF which already exists, Vnf Name=" + VNF_NAME)
109 void processAAIGenericVnfQuery_setVfModuleResponse() {
110 executionFake.setVariable("CAAIVfMod_queryGenericVnfResponseCode", 500)
111 executionFake.setVariable("CAAIVfMod_vnfId", VNF_ID)
113 testedObject.processAAIGenericVnfQuery(executionFake)
115 assertThat(executionFake.getVariable("CAAIVfMod_createVfModuleResponse"))
116 .isEqualTo("Invalid request for Add-on Module requested for non-existant Generic VNF, VNF Id=" + VNF_ID)
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)
126 testedObject.parseForAddOnModule(executionFake)
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)
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)
142 testedObject.parseForAddOnModule(executionFake)
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)
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)
157 testedObject.parseForBaseModule(executionFake)
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)
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)
173 testedObject.parseForBaseModule(executionFake)
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)
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)
189 testedObject.parseForBaseModule(executionFake)
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)
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)