1 package org.onap.so.adapters.tasks.orchestration;
3 import static org.junit.Assert.assertEquals;
4 import java.io.IOException;
5 import java.nio.file.Files;
6 import java.nio.file.Paths;
7 import java.util.HashMap;
9 import java.util.Optional;
10 import javax.xml.ws.Holder;
11 import org.camunda.bpm.client.task.ExternalTask;
12 import org.camunda.bpm.client.task.ExternalTaskService;
13 import org.junit.Test;
14 import org.junit.runner.RunWith;
15 import org.mockito.InjectMocks;
16 import org.mockito.Mock;
17 import org.mockito.Mockito;
18 import org.mockito.junit.MockitoJUnitRunner;
19 import org.onap.so.adapters.tasks.orchestration.StackService;
20 import org.onap.so.adapters.vnf.MsoVnfAdapterImpl;
21 import org.onap.so.entity.MsoRequest;
22 import org.onap.so.logging.tasks.AuditMDCSetup;
23 import org.onap.so.openstack.beans.VnfRollback;
24 import org.onap.so.openstack.exceptions.MsoException;
25 import org.onap.so.openstack.utils.MsoHeatUtils;
26 import com.woorea.openstack.heat.model.Stack;
27 import org.onap.so.adapters.vnf.exceptions.VnfException;
29 @RunWith(MockitoJUnitRunner.class)
30 public class StackServiceTest {
32 private String RESOURCE_PATH = "src/test/resources/__files/";
35 private ExternalTask mockExternalTask;
38 private ExternalTaskService mockExternalTaskService;
41 private MsoVnfAdapterImpl vnfAdapterImpl;
44 private MsoHeatUtils msoHeatUtils;
47 private AuditMDCSetup mdcSetup;
50 private StackService stackService;
53 public void findRequestTypeTest() throws IOException {
54 String payload = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/vnfAdapterTaskRequestCreate.xml")));
56 Optional<String> actual = stackService.findRequestType(payload);
58 assertEquals("createVfModuleRequest", actual.get());
62 public void testExecuteExternalTask() throws VnfException, MsoException, IOException {
63 String payload = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/vnfAdapterTaskRequestCreate.xml")));
65 Stack stack = new Stack();
66 stack.setId("heatId");
67 Mockito.when(mockExternalTask.getVariable("openstackAdapterTaskRequest")).thenReturn(payload);
68 Mockito.doNothing().when(vnfAdapterImpl).createVfModule(Mockito.any(), Mockito.any(), Mockito.any(),
69 Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(),
70 Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(),
71 Mockito.any(), Mockito.any(), Mockito.any());
72 Mockito.doNothing().when(mockExternalTaskService).complete(Mockito.any(), Mockito.any());
74 stackService.executeExternalTask(mockExternalTask, mockExternalTaskService);
76 Map<String, Object> paramsMap = new HashMap<String, Object>();
77 paramsMap.put("vf_module_id", "985a468b-328b-4c2b-ad0e-b8f1e19501c4");
78 paramsMap.put("vnf_id", "6640feba-55f6-4946-9694-4d9558c8870a");
79 paramsMap.put("vnf_name", "Robot_VNF_For_Volume_Group");
80 paramsMap.put("availability_zone_0", "AZ-MN02");
81 paramsMap.put("environment_context", "General_Revenue-Bearing");
82 paramsMap.put("user_directives", "{}");
83 paramsMap.put("workload_context", "");
84 paramsMap.put("vf_module_name", "dummy_id");
85 paramsMap.put("vf_module_index", "0");
86 paramsMap.put("sdnc_directives",
87 "{ \"attributes\": [ {\"attribute_name\": \"availability_zone_0\", \"attribute_value\": \"AZ-MN02\"}] }");
89 Map<String, Object> variables = new HashMap<>();
90 variables.put("backout", true);
91 variables.put("WorkflowResponse", "");
92 variables.put("OpenstackInvokeSuccess", true);
93 variables.put("stackId", null);
94 variables.put("openstackAdapterErrorMessage", null);
95 variables.put("PollRollbackStatus", false);
96 variables.put("rollbackPerformed", false);
97 variables.put("OpenstackRollbackSuccess", false);
98 variables.put("OpenstackPollSuccess", false);
100 Mockito.verify(vnfAdapterImpl, Mockito.times(1)).createVfModule(Mockito.eq("regionOne"),
101 Mockito.eq("CloudOwner"), Mockito.eq("0422ffb57ba042c0800a29dc85ca70f8"),
103 "Vf zrdm5bpxmc02092017-Service/Vf zrdm5bpxmc02092017-VF 0::VfZrdm5bpxmc02092017Vf..pxmc_base..module-0"),
104 Mockito.eq("1.0"), Mockito.eq("6640feba-55f6-4946-9694-4d9558c8870a"), Mockito.eq("dummy_id"),
105 Mockito.eq("985a468b-328b-4c2b-ad0e-b8f1e19501c4"), Mockito.eq(null), Mockito.eq(null),
106 Mockito.eq(null), Mockito.eq("074c64d0-7e13-4bcc-8bdb-ea922331102d"), Mockito.eq(paramsMap),
107 Mockito.eq(false), Mockito.eq(false), Mockito.eq(null), Mockito.any(), Mockito.any(), Mockito.any(),
109 Mockito.verify(mockExternalTaskService).complete(Mockito.eq(mockExternalTask), Mockito.eq(variables));