7a00cfe1459951420c42ff1d72b7d4f918d97b16
[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 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;
25
26 @RunWith(MockitoJUnitRunner.class)
27 public class StackServiceTest {
28
29     private String RESOURCE_PATH = "src/test/resources/__files/";
30
31     @Mock
32     private ExternalTask mockExternalTask;
33
34     @Mock
35     private ExternalTaskService mockExternalTaskService;
36
37     @Mock
38     private MsoVnfAdapterImpl vnfAdapterImpl;
39
40     @Mock
41     private VnfAdapterUtils vnfAdapterUtils;
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(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());
74
75         stackService.executeExternalTask(mockExternalTask, mockExternalTaskService);
76
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\"}] }");
89
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);
100
101
102         Mockito.verify(vnfAdapterImpl, Mockito.times(1)).createVfModule(Mockito.eq("regionOne"),
103                 Mockito.eq("CloudOwner"), Mockito.eq("0422ffb57ba042c0800a29dc85ca70f8"),
104                 Mockito.eq(
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(),
110                 Mockito.any());
111         Mockito.verify(mockExternalTaskService).complete(Mockito.eq(mockExternalTask), Mockito.eq(variables));
112
113     }
114
115 }