2a8046b1be487839915dbec3c275f5cc18107bf2
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / bpmn / infrastructure / adapter / vnf / tasks / VnfAdapterImplTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.bpmn.infrastructure.adapter.vnf.tasks;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNull;
25
26 import org.camunda.bpm.engine.delegate.BpmnError;
27 import org.junit.Before;
28 import org.junit.Test;
29 import org.onap.so.FileUtil;
30 import org.onap.so.bpmn.BaseTaskTest;
31 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
32 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
33 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
34 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
35 import org.springframework.beans.factory.annotation.Autowired;
36
37 public class VnfAdapterImplTest extends BaseTaskTest {
38         @Autowired
39         private VnfAdapterImpl vnfAdapterImpl;
40
41         private RequestContext requestContext;
42         private ServiceInstance serviceInstance;
43         private VfModule vfModule;
44     private VolumeGroup volumeGroup;
45         
46         private static final String VNF_ADAPTER_REST_DELETE_RESPONSE = FileUtil.readResourceFile("__files/VfModularity/VNFAdapterRestDeleteResponse.xml");
47         private static final String VNF_ADAPTER_REST_CREATE_RESPONSE =  FileUtil.readResourceFile("__files/VfModularity/VNFAdapterRestCreateCallback.xml");
48     private static final String VNF_ADAPTER_VOLUME_CREATE_RESPONSE =  FileUtil.readResourceFile("__files/VfModularity/CreateVfModuleVolumeCallbackResponse.xml");
49     private static final String VNF_ADAPTER_VOLUME_DELETE_RESPONSE =  FileUtil.readResourceFile("__files/VfModularity/DeleteVfModuleVolumeCallbackResponse.xml");
50         private static final String TEST_VFMODULE_HEATSTACK_ID = "slowburn";
51     private static final String TEST_VOLUME_HEATSTACK_ID = "testHeatStackId1";   
52
53         @Before
54         public void before() {
55                 requestContext = setRequestContext();
56                 serviceInstance = setServiceInstance();
57                 vfModule = setVfModule();
58         volumeGroup = setVolumeGroup();
59                 vfModule.setHeatStackId(null);
60                 volumeGroup.setHeatStackId(null);
61         }
62
63         @Test
64         public void preProcessVnfAdapterTest() {
65                 vnfAdapterImpl.preProcessVnfAdapter(execution);
66
67                 assertEquals("true", execution.getVariable("isDebugLogEnabled"));
68                 assertEquals(requestContext.getMsoRequestId(), execution.getVariable("mso-request-id"));
69                 assertEquals(serviceInstance.getServiceInstanceId(), execution.getVariable("mso-service-instance-id"));
70         }
71
72         @Test
73         public void postProcessVnfAdapter_CreateResponseTest() {
74                 execution.setVariable("vnfAdapterRestV1Response", VNF_ADAPTER_REST_CREATE_RESPONSE);
75                 vnfAdapterImpl.postProcessVnfAdapter(execution);
76                 assertEquals(TEST_VFMODULE_HEATSTACK_ID, vfModule.getHeatStackId());
77         }
78         
79
80         @Test
81         public void postProcessVnfAdapter_CreateResponseTest_EmptyCreateVfModuleResponseTag() {
82         expectedException.expect(BpmnError.class);
83                 execution.setVariable("vnfAdapterRestV1Response", "<vfModuleStackId></vfModuleStackId>");
84                 vnfAdapterImpl.postProcessVnfAdapter(execution);
85         }
86         
87         @Test
88         public void postProcessVnfAdapter_CreateResponseTest_EmptyVfModuleStackIdTag() {
89                 execution.setVariable("vnfAdapterRestV1Response", "<createVfModuleResponse></createVfModuleResponse>");
90                 vnfAdapterImpl.postProcessVnfAdapter(execution);
91                 assertNull(vfModule.getHeatStackId());
92         }
93         
94         @Test
95         public void postProcessVnfAdapter_CreateResponseTest_EmptyHeatStackId() {
96                 execution.setVariable("vnfAdapterRestV1Response", "<createVfModuleResponse><vfModuleStackId></vfModuleStackId></createVfModuleResponse>");
97                 vnfAdapterImpl.postProcessVnfAdapter(execution);
98                 assertNull(vfModule.getHeatStackId());
99         }
100
101         @Test
102         public void postProcessVnfAdapter_DeleteResponseTest() {
103                 vfModule.setHeatStackId(TEST_VFMODULE_HEATSTACK_ID);
104                 execution.setVariable("vnfAdapterRestV1Response", VNF_ADAPTER_REST_DELETE_RESPONSE);
105                 vnfAdapterImpl.postProcessVnfAdapter(execution);
106                 assertNull(vfModule.getHeatStackId());
107         }
108         
109         @Test
110         public void postProcessVnfAdapter_ResponseNullTest() {          
111                 execution.setVariable("vnfAdapterRestV1Response", null);
112                 vnfAdapterImpl.postProcessVnfAdapter(execution);
113                 assertNull(vfModule.getHeatStackId());
114         }
115         
116         @Test
117         public void postProcessVnfAdapter_ResponseEmptyTest() {
118         execution.setVariable("vnfAdapterRestV1Response", "");
119                 vnfAdapterImpl.postProcessVnfAdapter(execution);
120         assertNull(vfModule.getHeatStackId());
121         }
122         
123         @Test
124         public void postProcessVnfAdapter_DeleteResponseTest_VfModuleDeletedFalse() {
125                 vfModule.setHeatStackId(TEST_VFMODULE_HEATSTACK_ID);
126                 execution.setVariable("vnfAdapterRestV1Response", "<deleteVfModuleResponse><vfModuleDeleted>false</vfModuleDeleted></deleteVfModuleResponse>");
127                 vnfAdapterImpl.postProcessVnfAdapter(execution);
128                 assertEquals(TEST_VFMODULE_HEATSTACK_ID, vfModule.getHeatStackId());
129         }
130         
131         @Test
132         public void postProcessVnfAdapter_DeleteResponseTest_EmptyDeleteVfModuleResponseTag() {
133         expectedException.expect(BpmnError.class);
134                 execution.setVariable("vnfAdapterRestV1Response", "<vfModuleDeleted></vfModuleDeleted>");
135                 vnfAdapterImpl.postProcessVnfAdapter(execution);
136         }
137         
138         @Test
139         public void postProcessVnfAdapter_DeleteResponseTest_EmptyVfModuleDeletedTag() {
140                 vfModule.setHeatStackId(TEST_VFMODULE_HEATSTACK_ID);
141                 execution.setVariable("vnfAdapterRestV1Response", "<deleteVfModuleResponse></deleteVfModuleResponse>");
142                 vnfAdapterImpl.postProcessVnfAdapter(execution);
143                 assertEquals(TEST_VFMODULE_HEATSTACK_ID, vfModule.getHeatStackId());
144         }
145
146         @Test
147         public void preProcessVnfAdapterExceptionTest() {
148                 expectedException.expect(BpmnError.class);
149                 lookupKeyMap.clear();
150                 vnfAdapterImpl.preProcessVnfAdapter(execution);
151         }
152
153     @Test
154     public void postProcessVnfAdapter_CreateVolumeResponseTest() {
155         execution.setVariable("vnfAdapterRestV1Response", VNF_ADAPTER_VOLUME_CREATE_RESPONSE);
156         vnfAdapterImpl.postProcessVnfAdapter(execution);
157         assertEquals(TEST_VOLUME_HEATSTACK_ID, volumeGroup.getHeatStackId());
158     }
159
160     @Test
161     public void postProcessVnfAdapter_CreateVolumeEmptyResponseTest()  {
162         expectedException.expect(BpmnError.class);
163         execution.setVariable("vnfAdapterRestV1Response", "<createVolumeGroupResponse></createVolumeGroupResponse>");
164         vnfAdapterImpl.postProcessVnfAdapter(execution);
165         assertNull(volumeGroup.getHeatStackId());
166     }
167     
168     @Test
169         public void postProcessVnfAdapter_DeleteResponseTest_DeleteVolumeGroup() {
170         volumeGroup.setHeatStackId(TEST_VOLUME_HEATSTACK_ID);
171                 execution.setVariable("vnfAdapterRestV1Response", VNF_ADAPTER_VOLUME_DELETE_RESPONSE);
172                 vnfAdapterImpl.postProcessVnfAdapter(execution);
173                 assertNull(volumeGroup.getHeatStackId());
174         }
175         
176     
177     @Test
178         public void postProcessVnfAdapter_DeleteResponseTest_VolumeGroupDeletedFalse() {
179         volumeGroup.setHeatStackId(TEST_VOLUME_HEATSTACK_ID);
180                 execution.setVariable("vnfAdapterRestV1Response", "<deleteVolumeGroupResponse><volumeGroupDeleted>false</volumeGroupDeleted></deleteVolumeGroupResponse>");
181                 vnfAdapterImpl.postProcessVnfAdapter(execution);
182                 assertEquals(TEST_VOLUME_HEATSTACK_ID, volumeGroup.getHeatStackId());           
183         }
184         
185         @Test
186         public void postProcessVnfAdapter_DeleteResponseTest_EmptyDeleteVolumeGroupResponseTag() {
187         expectedException.expect(BpmnError.class);
188                 execution.setVariable("vnfAdapterRestV1Response", "<volumeGroupDeleted></volumeGroupDeleted>");
189                 vnfAdapterImpl.postProcessVnfAdapter(execution);        
190         }
191         
192         @Test
193         public void postProcessVnfAdapter_DeleteResponseTest_EmptyVolumeGroupDeletedTag() {
194                 volumeGroup.setHeatStackId(TEST_VOLUME_HEATSTACK_ID);
195                 execution.setVariable("vnfAdapterRestV1Response", "<deleteVolumeGroupResponse></deleteVolumeGroupResponse>");
196                 vnfAdapterImpl.postProcessVnfAdapter(execution);
197                 assertEquals(TEST_VOLUME_HEATSTACK_ID, volumeGroup.getHeatStackId());
198         }
199
200         @Test
201         public void postProcessVnfAdapterExceptionTest() {              
202                 execution.setVariable("vnfAdapterRestV1Response", VNF_ADAPTER_REST_CREATE_RESPONSE);
203                 expectedException.expect(BpmnError.class);
204                 lookupKeyMap.clear();
205                 vnfAdapterImpl.postProcessVnfAdapter(execution);
206         }
207 }