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 org.camunda.bpm.client.task.ExternalTask;
11 import org.camunda.bpm.client.task.ExternalTaskService;
12 import org.junit.Test;
13 import org.junit.runner.RunWith;
14 import org.mockito.InjectMocks;
15 import org.mockito.Mock;
16 import org.mockito.Mockito;
17 import org.mockito.junit.MockitoJUnitRunner;
18 import org.onap.so.adapters.vnf.MsoVnfAdapterImpl;
19 import org.onap.so.adapters.vnf.VnfAdapterUtils;
20 import org.onap.so.adapters.vnf.exceptions.VnfException;
21 import org.onap.so.logging.tasks.AuditMDCSetup;
22 import org.onap.so.openstack.exceptions.MsoException;
23 import org.onap.so.openstack.utils.MsoHeatUtils;
24 import com.woorea.openstack.heat.model.Stack;
26 @RunWith(MockitoJUnitRunner.class)
27 public class StackServiceTest {
29 private String RESOURCE_PATH = "src/test/resources/__files/";
32 private ExternalTask mockExternalTask;
35 private ExternalTaskService mockExternalTaskService;
38 private MsoVnfAdapterImpl vnfAdapterImpl;
41 private VnfAdapterUtils vnfAdapterUtils;
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(vnfAdapterUtils.isMulticloudMode(Mockito.any(), Mockito.any())).thenReturn(false);
68 Mockito.when(mockExternalTask.getVariable("openstackAdapterTaskRequest")).thenReturn(payload);
69 Mockito.doNothing().when(vnfAdapterImpl).createVfModule(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(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(),
72 Mockito.any(), Mockito.any(), Mockito.any());
73 Mockito.doNothing().when(mockExternalTaskService).complete(Mockito.any(), Mockito.any());
75 stackService.executeExternalTask(mockExternalTask, mockExternalTaskService);
77 Map<String, Object> paramsMap = new HashMap<String, Object>();
78 paramsMap.put("vf_module_id", "985a468b-328b-4c2b-ad0e-b8f1e19501c4");
79 paramsMap.put("vnf_id", "6640feba-55f6-4946-9694-4d9558c8870a");
80 paramsMap.put("vnf_name", "Robot_VNF_For_Volume_Group");
81 paramsMap.put("availability_zone_0", "AZ-MN02");
82 paramsMap.put("environment_context", "General_Revenue-Bearing");
83 paramsMap.put("user_directives", "{}");
84 paramsMap.put("workload_context", "");
85 paramsMap.put("vf_module_name", "dummy_id");
86 paramsMap.put("vf_module_index", "0");
87 paramsMap.put("sdnc_directives",
88 "{ \"attributes\": [ {\"attribute_name\": \"availability_zone_0\", \"attribute_value\": \"AZ-MN02\"}] }");
90 Map<String, Object> variables = new HashMap<>();
91 variables.put("backout", true);
92 variables.put("OpenstackInvokeSuccess", true);
93 variables.put("stackId", null);
94 variables.put("openstackAdapterErrorMessage", "");
95 variables.put("PollRollbackStatus", false);
96 variables.put("rollbackPerformed", false);
97 variables.put("OpenstackRollbackSuccess", false);
98 variables.put("OpenstackPollSuccess", false);
99 variables.put("os3Nw", false);
102 Mockito.verify(vnfAdapterImpl, Mockito.times(1)).createVfModule(Mockito.eq("regionOne"),
103 Mockito.eq("CloudOwner"), Mockito.eq("0422ffb57ba042c0800a29dc85ca70f8"),
105 "Vf zrdm5bpxmc02092017-Service/Vf zrdm5bpxmc02092017-VF 0::VfZrdm5bpxmc02092017Vf..pxmc_base..module-0"),
106 Mockito.eq("1.0"), Mockito.eq("6640feba-55f6-4946-9694-4d9558c8870a"), Mockito.eq("dummy_id"),
107 Mockito.eq("985a468b-328b-4c2b-ad0e-b8f1e19501c4"), Mockito.eq(null), Mockito.eq(null),
108 Mockito.eq(null), Mockito.eq("074c64d0-7e13-4bcc-8bdb-ea922331102d"), Mockito.eq(paramsMap),
109 Mockito.eq(false), Mockito.eq(false), Mockito.eq(null), Mockito.any(), Mockito.any(), Mockito.any(),
111 Mockito.verify(mockExternalTaskService).complete(Mockito.eq(mockExternalTask), Mockito.eq(variables));