2f583b30a2388d86bea6fce3b07a2e05f62b1898
[so.git] /
1 package org.onap.so.adapters.tasks.orchestration;
2
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;
8 import java.util.Map;
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;
28
29 @RunWith(MockitoJUnitRunner.class)
30 public class StackServiceTest {
31
32     private String RESOURCE_PATH = "src/test/resources/__files/";
33
34     @Mock
35     private ExternalTask mockExternalTask;
36
37     @Mock
38     private ExternalTaskService mockExternalTaskService;
39
40     @Mock
41     private MsoVnfAdapterImpl vnfAdapterImpl;
42
43     @Mock
44     private MsoHeatUtils msoHeatUtils;
45
46     @Mock
47     private AuditMDCSetup mdcSetup;
48
49     @InjectMocks
50     private StackService stackService;
51
52     @Test
53     public void findRequestTypeTest() throws IOException {
54         String payload = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/vnfAdapterTaskRequestCreate.xml")));
55
56         Optional<String> actual = stackService.findRequestType(payload);
57
58         assertEquals("createVfModuleRequest", actual.get());
59     }
60
61     @Test
62     public void testExecuteExternalTask() throws VnfException, MsoException, IOException {
63         String payload = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "/vnfAdapterTaskRequestCreate.xml")));
64
65         Stack stack = new Stack();
66         stack.setId("heatId");
67         Mockito.when(mockExternalTask.getVariable("vnfAdapterTaskRequest")).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());
73
74         stackService.executeExternalTask(mockExternalTask, mockExternalTaskService);
75
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\"}] }");
88
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);
99
100         Mockito.verify(vnfAdapterImpl, Mockito.times(1)).createVfModule(Mockito.eq("regionOne"),
101                 Mockito.eq("CloudOwner"), Mockito.eq("0422ffb57ba042c0800a29dc85ca70f8"),
102                 Mockito.eq(
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(),
108                 Mockito.any());
109         Mockito.verify(mockExternalTaskService).complete(Mockito.eq(mockExternalTask), Mockito.eq(variables));
110
111     }
112
113 }