1 package org.openecomp.mso.bpmn.infrastructure;
\r
3 import static org.junit.Assert.assertEquals;
\r
4 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteServiceInstance;
\r
5 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;
\r
6 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
\r
7 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
\r
8 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
\r
10 import java.io.IOException;
\r
11 import java.util.HashMap;
\r
12 import java.util.Map;
\r
13 import java.util.UUID;
\r
15 import org.camunda.bpm.engine.test.Deployment;
\r
16 import org.junit.Assert;
\r
17 import org.junit.Test;
\r
18 import org.openecomp.mso.bpmn.common.BPMNUtil;
\r
19 import org.openecomp.mso.bpmn.common.WorkflowTest;
\r
20 import org.openecomp.mso.bpmn.core.RollbackData;
\r
23 * Unit test cases for DoCreateServiceInstanceRollback.bpmn
\r
25 public class DoCreateSIRollbackTest extends WorkflowTest {
\r
26 private static final String EOL = "\n";
\r
27 private final CallbackSet callbacks = new CallbackSet();
\r
28 private final String sdncAdapterCallback =
\r
29 "<output xmlns=\"com:att:sdnctl:l3api\">" + EOL +
\r
30 " <svc-request-id>((REQUEST-ID))</svc-request-id>" + EOL +
\r
31 " <ack-final-indicator>Y</ack-final-indicator>" + EOL +
\r
34 public DoCreateSIRollbackTest() throws IOException {
\r
35 callbacks.put("deactivate", sdncAdapterCallback);
\r
36 callbacks.put("delete", sdncAdapterCallback);
\r
40 * Sunny day VID scenario.
\r
44 //@Ignore // File not found - unable to run the test. Also, Stubs need updating..
\r
46 @Deployment(resources = {
\r
47 "subprocess/DoCreateServiceInstanceRollback.bpmn",
\r
48 "subprocess/SDNCAdapterV1.bpmn",
\r
49 "subprocess/GenericDeleteService.bpmn",
\r
50 "subprocess/GenericGetService.bpmn",
\r
51 "subprocess/CompleteMsoProcess.bpmn",
\r
52 "subprocess/FalloutHandler.bpmn" })
\r
53 public void sunnyDay() throws Exception {
\r
58 MockDeleteServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "");
\r
59 MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getSINoRelations.xml");
\r
60 MockNodeQueryServiceInstanceById("MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getSIUrlById.xml");
\r
62 mockSDNCAdapter(200);
\r
64 mockUpdateRequestDB(200, "DBUpdateResponse.xml");
\r
65 String businessKey = UUID.randomUUID().toString();
\r
67 Map<String, Object> variables = new HashMap<String, Object>();
\r
68 setupVariables(variables);
\r
69 invokeSubProcess("DoCreateServiceInstanceRollback", businessKey, variables);
\r
70 injectSDNCCallbacks(callbacks, "deactivate");
\r
71 injectSDNCCallbacks(callbacks, "delete");
\r
72 waitForProcessEnd(businessKey, 10000);
\r
73 Assert.assertTrue(isProcessEnded(businessKey));
\r
74 String workflowException = BPMNUtil.getVariable(processEngineRule, "DoCreateServiceInstanceRollback", "WorkflowException");
\r
75 System.out.println("workflowException:\n" + workflowException);
\r
76 assertEquals(null, workflowException);
\r
82 private void setupVariables(Map<String, Object> variables) {
\r
83 variables.put("isDebugLogEnabled", "true");
\r
84 variables.put("msoRequestId", "RaaTestRequestId-1");
\r
85 variables.put("mso-request-id", "RaaTestRequestId-1");
\r
86 variables.put("serviceInstanceId","MIS%252F1604%252F0026%252FSW_INTERNET");
\r
88 RollbackData rollbackData = new RollbackData();
\r
90 rollbackData.put("SERVICEINSTANCE", "serviceInstanceId", "MIS%252F1604%252F0026%252FSW_INTERNET");
\r
91 rollbackData.put("SERVICEINSTANCE", "globalCustomerId", "SDN-ETHERNET-INTERNET");
\r
92 rollbackData.put("SERVICEINSTANCE", "serviceSubscriptionType", "123456789");
\r
93 rollbackData.put("SERVICEINSTANCE", "disablerollback", "false");
\r
94 rollbackData.put("SERVICEINSTANCE", "rollbackAAI", "true");
\r
95 rollbackData.put("SERVICEINSTANCE", "rollbackSDNC", "true");
\r
97 String req = "<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5=\"http://org.openecomp/mso/request/types/v1\"" + EOL +
\r
98 "xmlns:sdncadapter=\"http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1\" " + EOL +
\r
99 "xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\">" + EOL +
\r
100 "<sdncadapter:RequestHeader>" + EOL +
\r
101 "<sdncadapter:RequestId>b043d290-140d-4a38-a9b6-95d3b8bd27d4</sdncadapter:RequestId>" + EOL +
\r
102 "<sdncadapter:SvcInstanceId>MIS%252F1604%252F0026%252FSW_INTERNET</sdncadapter:SvcInstanceId>" + EOL +
\r
103 "<sdncadapter:SvcAction>deactivate</sdncadapter:SvcAction>" + EOL +
\r
104 "<sdncadapter:SvcOperation>service-topology-operation</sdncadapter:SvcOperation>" + EOL +
\r
105 "<sdncadapter:CallbackUrl>http://localhost:8080/mso/SDNCAdapterCallbackService</sdncadapter:CallbackUrl>" + EOL +
\r
106 "</sdncadapter:RequestHeader>" + EOL +
\r
107 "<sdncadapterworkflow:SDNCRequestData>" + EOL +
\r
108 "<request-information>" + EOL +
\r
109 "<request-id>RaaTestRequestId-1</request-id>" + EOL +
\r
110 "<source>MSO</source>" + EOL +
\r
111 "<notification-url/>" + EOL +
\r
112 "<order-number/>" + EOL +
\r
113 "<order-version/>" + EOL +
\r
114 "<request-action>DeleteServiceInstance</request-action>" + EOL +
\r
115 "</request-information>" + EOL +
\r
116 "<service-information>" + EOL +
\r
117 "<service-id/>" + EOL +
\r
118 "<subscription-service-type>123456789</subscription-service-type>" + EOL +
\r
119 "<ecomp-model-information>" + EOL +
\r
120 "<model-invariant-uuid/>" + EOL +
\r
121 "<model-uuid/>" + EOL +
\r
122 "<model-version/>" + EOL +
\r
123 "<model-name/>" + EOL +
\r
124 "</ecomp-model-information>" + EOL +
\r
125 "<service-instance-id>MIS%252F1604%252F0026%252FSW_INTERNET</service-instance-id>" + EOL +
\r
126 "<subscriber-name/>" + EOL +
\r
127 "<global-customer-id>SDN-ETHERNET-INTERNET</global-customer-id>" + EOL +
\r
128 "</service-information>" + EOL +
\r
129 "<service-request-input>" + EOL +
\r
130 "<service-instance-name/>" + EOL +
\r
131 "</service-request-input>" + EOL +
\r
132 "</sdncadapterworkflow:SDNCRequestData>" + EOL +
\r
133 "</sdncadapterworkflow:SDNCAdapterWorkflowRequest>";
\r
135 String req1 = "<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5=\"http://org.openecomp/mso/request/types/v1\"" + EOL +
\r
136 "xmlns:sdncadapter=\"http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1\" " + EOL +
\r
137 "xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\">" + EOL +
\r
138 "<sdncadapter:RequestHeader>" + EOL +
\r
139 "<sdncadapter:RequestId>bca4fede-0804-4c13-af69-9e80b378150f</sdncadapter:RequestId>" + EOL +
\r
140 "<sdncadapter:SvcInstanceId>MIS%252F1604%252F0026%252FSW_INTERNET</sdncadapter:SvcInstanceId>" + EOL +
\r
141 "<sdncadapter:SvcAction>delete</sdncadapter:SvcAction>" + EOL +
\r
142 "<sdncadapter:SvcOperation>service-topology-operation</sdncadapter:SvcOperation>" + EOL +
\r
143 "<sdncadapter:CallbackUrl>http://localhost:8080/mso/SDNCAdapterCallbackService</sdncadapter:CallbackUrl>" + EOL +
\r
144 "</sdncadapter:RequestHeader>" + EOL +
\r
145 "<sdncadapterworkflow:SDNCRequestData>" + EOL +
\r
146 "<request-information>" + EOL +
\r
147 "<request-id>RaaTestRequestId-1</request-id>" + EOL +
\r
148 "<source>MSO</source>" + EOL +
\r
149 "<notification-url/>" + EOL +
\r
150 "<order-number/>" + EOL +
\r
151 "<order-version/>" + EOL +
\r
152 "<request-action>DeleteServiceInstance</request-action>" + EOL +
\r
153 "</request-information>" + EOL +
\r
154 "<service-information>" + EOL +
\r
155 "<service-id/>" + EOL +
\r
156 "<subscription-service-type>123456789</subscription-service-type>" + EOL +
\r
157 "<ecomp-model-information>" + EOL +
\r
158 "<model-invariant-uuid/>" + EOL +
\r
159 "<model-uuid/>" + EOL +
\r
160 "<model-version/>" + EOL +
\r
161 "<model-name/>" + EOL +
\r
162 "</ecomp-model-information>" + EOL +
\r
163 "<service-instance-id>MIS%252F1604%252F0026%252FSW_INTERNET</service-instance-id>" + EOL +
\r
164 "<subscriber-name/>" + EOL +
\r
165 "<global-customer-id>SDN-ETHERNET-INTERNET</global-customer-id>" + EOL +
\r
166 "</service-information>" + EOL +
\r
167 "<service-request-input>" + EOL +
\r
168 "<service-instance-name/>" + EOL +
\r
169 "</service-request-input>" + EOL +
\r
170 "</sdncadapterworkflow:SDNCRequestData>" + EOL +
\r
171 "</sdncadapterworkflow:SDNCAdapterWorkflowRequest>";
\r
173 rollbackData.put("SERVICEINSTANCE", "sdncDeactivate", req);
\r
175 rollbackData.put("SERVICEINSTANCE", "sdncDelete",req1);
\r
176 variables.put("rollbackData",rollbackData);
\r