Containerization feature of SO
[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 TEST_VFMODULE_HEATSTACK_ID = "slowburn";
50     private static final String TEST_VOLUME_HEATSTACK_ID = "testHeatStackId1";
51
52         @Before
53         public void before() {
54                 requestContext = setRequestContext();
55                 serviceInstance = setServiceInstance();
56                 vfModule = setVfModule();
57         volumeGroup = setVolumeGroup();
58                 vfModule.setHeatStackId(null);
59         }
60
61         @Test
62         public void preProcessVnfAdapterTest() {
63                 vnfAdapterImpl.preProcessVnfAdapter(execution);
64
65                 assertEquals("true", execution.getVariable("isDebugLogEnabled"));
66                 assertEquals(requestContext.getMsoRequestId(), execution.getVariable("mso-request-id"));
67                 assertEquals(serviceInstance.getServiceInstanceId(), execution.getVariable("mso-service-instance-id"));
68         }
69
70         @Test
71         public void postProcessVnfAdapter_CreateResponseTest() {
72                 execution.setVariable("vnfAdapterRestV1Response", VNF_ADAPTER_REST_CREATE_RESPONSE);
73                 vnfAdapterImpl.postProcessVnfAdapter(execution);
74                 assertEquals(TEST_VFMODULE_HEATSTACK_ID, vfModule.getHeatStackId());
75         }
76         
77
78         @Test
79         public void postProcessVnfAdapter_CreateResponseTest_EmptyCreateVfModuleResponseTag() {
80         expectedException.expect(BpmnError.class);
81                 execution.setVariable("vnfAdapterRestV1Response", "<vfModuleStackId></vfModuleStackId>");
82                 vnfAdapterImpl.postProcessVnfAdapter(execution);
83         }
84         
85         @Test
86         public void postProcessVnfAdapter_CreateResponseTest_EmptyVfModuleStackIdTag() {
87                 execution.setVariable("vnfAdapterRestV1Response", "<createVfModuleResponse></createVfModuleResponse>");
88                 vnfAdapterImpl.postProcessVnfAdapter(execution);
89                 assertNull(vfModule.getHeatStackId());
90         }
91         
92         @Test
93         public void postProcessVnfAdapter_CreateResponseTest_EmptyHeatStackId() {
94                 execution.setVariable("vnfAdapterRestV1Response", "<createVfModuleResponse><vfModuleStackId></vfModuleStackId></createVfModuleResponse>");
95                 vnfAdapterImpl.postProcessVnfAdapter(execution);
96                 assertNull(vfModule.getHeatStackId());
97         }
98
99         @Test
100         public void postProcessVnfAdapter_DeleteResponseTest() {
101                 execution.setVariable("vnfAdapterRestV1Response", VNF_ADAPTER_REST_DELETE_RESPONSE);
102                 vnfAdapterImpl.postProcessVnfAdapter(execution);
103                 assertNull(vfModule.getHeatStackId());
104         }
105         
106         @Test
107         public void postProcessVnfAdapter_ResponseNullTest() {
108                 execution.setVariable("vnfAdapterRestV1Response", null);
109                 vnfAdapterImpl.postProcessVnfAdapter(execution);
110                 assertNull(vfModule.getHeatStackId());
111         }
112         
113         @Test
114         public void postProcessVnfAdapter_ResponseEmptyTest() {
115         execution.setVariable("vnfAdapterRestV1Response", "");
116                 vnfAdapterImpl.postProcessVnfAdapter(execution);
117         assertNull(vfModule.getHeatStackId());
118         }
119         
120         @Test
121         public void postProcessVnfAdapter_DeleteResponseTest_VfModuleDeletedFalse() {
122                 execution.setVariable("vnfAdapterRestV1Response", "<deleteVfModuleResponse><vfModuleDeleted>false</vfModuleDeleted></deleteVfModuleResponse>");
123                 vnfAdapterImpl.postProcessVnfAdapter(execution);
124                 assertNull(vfModule.getHeatStackId());
125         }
126         
127         @Test
128         public void postProcessVnfAdapter_DeleteResponseTest_EmptyDeleteVfModuleResponseTag() {
129         expectedException.expect(BpmnError.class);
130                 execution.setVariable("vnfAdapterRestV1Response", "<vfModuleDeleted></vfModuleDeleted>");
131                 vnfAdapterImpl.postProcessVnfAdapter(execution);
132         }
133         
134         @Test
135         public void postProcessVnfAdapter_DeleteResponseTest_EmptyVfModuleDeletedTag() {
136                 execution.setVariable("vnfAdapterRestV1Response", "<deleteVfModuleResponse></deleteVfModuleResponse>");
137                 vnfAdapterImpl.postProcessVnfAdapter(execution);
138                 assertNull(vfModule.getHeatStackId());
139         }
140
141         @Test
142         public void preProcessVnfAdapterExceptionTest() {
143                 expectedException.expect(BpmnError.class);
144                 lookupKeyMap.clear();
145                 vnfAdapterImpl.preProcessVnfAdapter(execution);
146         }
147
148     @Test
149     public void postProcessVnfAdapter_CreateVolumeResponseTest() {
150         execution.setVariable("vnfAdapterRestV1Response", VNF_ADAPTER_VOLUME_CREATE_RESPONSE);
151         vnfAdapterImpl.postProcessVnfAdapter(execution);
152         assertEquals(TEST_VOLUME_HEATSTACK_ID, volumeGroup.getHeatStackId());
153     }
154
155     @Test
156     public void postProcessVnfAdapter_CreateVolumeEmptyResponseTest()  {
157         expectedException.expect(BpmnError.class);
158         execution.setVariable("vnfAdapterRestV1Response", "<createVolumeGroupResponse></createVolumeGroupResponse>");
159         vnfAdapterImpl.postProcessVnfAdapter(execution);
160     }
161
162         @Test
163         public void postProcessVnfAdapterExceptionTest() {
164                 execution.setVariable("vnfAdapterRestV1Response", VNF_ADAPTER_REST_CREATE_RESPONSE);
165                 expectedException.expect(BpmnError.class);
166                 lookupKeyMap.clear();
167                 vnfAdapterImpl.postProcessVnfAdapter(execution);
168         }
169 }