698ebb33f2a3d71b3510a412cc8f3210ac49091b
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / bpmn / infrastructure / adapter / vnf / tasks / VnfAdapterCreateTasksTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 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 org.camunda.bpm.engine.delegate.BpmnError;
24 import org.junit.Test;
25 import org.onap.so.adapters.vnfrest.CreateVfModuleRequest;
26 import org.onap.so.adapters.vnfrest.CreateVolumeGroupRequest;
27 import org.onap.so.bpmn.BaseTaskTest;
28 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
29 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
30 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
31 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
32 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
33 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
34 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
35 import org.onap.so.db.catalog.beans.OrchestrationStatus;
36 import org.springframework.beans.factory.annotation.Autowired;
37
38 import static org.junit.Assert.assertEquals;
39 import static org.mockito.Mockito.doReturn;
40 import static org.mockito.Mockito.times;
41 import static org.mockito.Mockito.verify;
42
43 public class VnfAdapterCreateTasksTest extends BaseTaskTest{
44         @Autowired
45         private VnfAdapterCreateTasks vnfAdapterCreateTasks;
46         
47         @Test
48         public void test_createVolumeGroupRequest() throws Exception {
49                 RequestContext requestContext = setRequestContext();
50                 
51                 ServiceInstance serviceInstance = setServiceInstance();
52                 
53                 GenericVnf genericVnf = setGenericVnf();
54
55                 VfModule vfModule = setVfModule();
56                 vfModule.setSelflink("vfModuleSelfLink");
57                 VolumeGroup volumeGroup = setVolumeGroup();
58                 volumeGroup.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
59                 
60                 CloudRegion cloudRegion = setCloudRegion();
61                 
62                 OrchestrationContext orchestrationContext = setOrchestrationContext();
63                 orchestrationContext.setIsRollbackEnabled(true);
64
65                 String sdncVnfQueryResponse = "SDNCVnfQueryResponse";
66         execution.setVariable("SDNCQueryResponse_" + vfModule.getVfModuleId(), sdncVnfQueryResponse);
67
68         CreateVolumeGroupRequest request = new CreateVolumeGroupRequest();
69         request.setVolumeGroupId("volumeGroupStackId");
70
71         doReturn(request).when(vnfAdapterVolumeGroupResources).createVolumeGroupRequest(requestContext, cloudRegion, orchestrationContext, serviceInstance, genericVnf, volumeGroup, sdncVnfQueryResponse);
72
73         vnfAdapterCreateTasks.createVolumeGroupRequest(execution);
74                 
75                 verify(vnfAdapterVolumeGroupResources, times(1)).createVolumeGroupRequest(requestContext, cloudRegion, orchestrationContext, serviceInstance, genericVnf,  volumeGroup, sdncVnfQueryResponse);
76                 
77                 assertEquals(request.toXmlString(), execution.getVariable("VNFREST_Request"));
78         }
79
80         @Test
81         public void test_createVolumeGroupRequest_for_alaCarte_flow() throws Exception {
82                 RequestContext requestContext = setRequestContext();
83                 ServiceInstance serviceInstance = setServiceInstance();
84                 GenericVnf genericVnf = setGenericVnf();
85                 VolumeGroup volumeGroup = setVolumeGroup();
86                 volumeGroup.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
87
88                 CloudRegion cloudRegion = setCloudRegion();
89
90                 OrchestrationContext orchestrationContext = setOrchestrationContext();
91                 orchestrationContext.setIsRollbackEnabled(true);
92
93         CreateVolumeGroupRequest request = new CreateVolumeGroupRequest();
94         request.setVolumeGroupId("volumeGroupStackId");
95
96                 doReturn(request).when(vnfAdapterVolumeGroupResources).createVolumeGroupRequest(requestContext, cloudRegion, orchestrationContext, serviceInstance, genericVnf,  volumeGroup, null);
97
98                 vnfAdapterCreateTasks.createVolumeGroupRequest(execution);
99
100                 verify(vnfAdapterVolumeGroupResources, times(1)).createVolumeGroupRequest(requestContext, cloudRegion, orchestrationContext, serviceInstance, genericVnf,  volumeGroup, null);
101
102                 assertEquals(request.toXmlString(),  execution.getVariable("VNFREST_Request"));
103         }
104         
105         @Test
106         public void test_createVolumeGroupRequest_exception() throws Exception {
107                 // run with no data setup, and it will throw a BBObjectNotFoundException
108                 expectedException.expect(BpmnError.class);
109                 
110                 vnfAdapterCreateTasks.createVolumeGroupRequest(execution);
111         }
112         
113         @Test
114         public void test_createVfModule() throws Exception {
115                 RequestContext requestContext = setRequestContext();
116                 
117                 ServiceInstance serviceInstance = setServiceInstance();
118                 
119                 GenericVnf genericVnf = setGenericVnf();
120
121                 VfModule vfModule = setVfModule();
122                 
123                 CloudRegion cloudRegion = setCloudRegion();
124                 
125                 OrchestrationContext orchestrationContext = setOrchestrationContext();
126                 orchestrationContext.setIsRollbackEnabled(true);
127                 
128                 CreateVfModuleRequest modRequest = new CreateVfModuleRequest();
129                 modRequest.setVfModuleId(vfModule.getVfModuleId());
130                 modRequest.setBaseVfModuleStackId("baseVfModuleStackId");
131                 modRequest.setVfModuleName(vfModule.getVfModuleName());
132                 CreateVfModuleRequest createVfModuleRequest = modRequest;
133                 
134                 String sdncVfModuleQueryResponse = "{someJson}";
135                 execution.setVariable("SDNCQueryResponse_" + vfModule.getVfModuleId(), sdncVfModuleQueryResponse);
136                 
137                 String sdncVnfQueryResponse = "{someJson}";
138                 execution.setVariable("SDNCQueryResponse_" + genericVnf.getVnfId(), sdncVnfQueryResponse);
139                 
140                 doReturn(createVfModuleRequest).when(vnfAdapterVfModuleResources).createVfModuleRequest(requestContext, cloudRegion, orchestrationContext, serviceInstance, 
141                                 genericVnf, vfModule, null, sdncVnfQueryResponse, sdncVfModuleQueryResponse);
142                 
143                 vnfAdapterCreateTasks.createVfModule(execution);
144                 
145                 verify(vnfAdapterVfModuleResources, times(1)).createVfModuleRequest(requestContext, cloudRegion, orchestrationContext, serviceInstance, 
146                                 genericVnf, vfModule, null, sdncVnfQueryResponse, sdncVfModuleQueryResponse);
147                 
148                 assertEquals(execution.getVariable("VNFREST_Request"), createVfModuleRequest.toXmlString());
149         }
150         
151         @Test
152         public void test_createVfModuleWithVolumeGroup() throws Exception {
153                 RequestContext requestContext = setRequestContext();
154                 
155                 ServiceInstance serviceInstance = setServiceInstance();
156                 
157                 GenericVnf genericVnf = setGenericVnf();
158
159                 VfModule vfModule = setVfModule();
160                 
161                 VolumeGroup volumeGroup = setVolumeGroup();
162                 
163                 CloudRegion cloudRegion = setCloudRegion();
164                 
165                 OrchestrationContext orchestrationContext = setOrchestrationContext();
166                 orchestrationContext.setIsRollbackEnabled(true);
167                 
168                 CreateVfModuleRequest modRequest = new CreateVfModuleRequest();
169                 modRequest.setVfModuleId(vfModule.getVfModuleId());
170                 modRequest.setBaseVfModuleStackId("baseVfModuleStackId");
171                 modRequest.setVfModuleName(vfModule.getVfModuleName());
172                 CreateVfModuleRequest createVfModuleRequest = modRequest;
173                 
174                 String sdncVfModuleQueryResponse = "{someJson}";
175                 execution.setVariable("SDNCQueryResponse_" + vfModule.getVfModuleId(), sdncVfModuleQueryResponse);
176                 
177                 String sdncVnfQueryResponse = "{someJson}";
178                 execution.setVariable("SDNCQueryResponse_" + genericVnf.getVnfId(), sdncVnfQueryResponse);
179                 
180                 doReturn(createVfModuleRequest).when(vnfAdapterVfModuleResources).createVfModuleRequest(requestContext, cloudRegion, orchestrationContext, serviceInstance, 
181                                 genericVnf, vfModule, volumeGroup, sdncVnfQueryResponse, sdncVfModuleQueryResponse);
182                 
183                 vnfAdapterCreateTasks.createVfModule(execution);
184                 
185                 verify(vnfAdapterVfModuleResources, times(1)).createVfModuleRequest(requestContext, cloudRegion, orchestrationContext, serviceInstance, 
186                                 genericVnf, vfModule, volumeGroup, sdncVnfQueryResponse, sdncVfModuleQueryResponse);
187                 
188                 assertEquals(execution.getVariable("VNFREST_Request"), createVfModuleRequest.toXmlString());
189         }
190         
191         @Test
192         public void createVfModuleExceptionTest() throws Exception {
193                 // run with no data setup, and it will throw a BBObjectNotFoundException
194                 expectedException.expect(BpmnError.class);
195                 vnfAdapterCreateTasks.createVolumeGroupRequest(execution);
196         }
197 }