2 * ============LICENSE_START=======================================================
\r
4 * ================================================================================
\r
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
\r
6 * ================================================================================
\r
7 * Licensed under the Apache License, Version 2.0 (the "License");
\r
8 * you may not use this file except in compliance with the License.
\r
9 * You may obtain a copy of the License at
\r
11 * http://www.apache.org/licenses/LICENSE-2.0
\r
13 * Unless required by applicable law or agreed to in writing, software
\r
14 * distributed under the License is distributed on an "AS IS" BASIS,
\r
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
16 * See the License for the specific language governing permissions and
\r
17 * limitations under the License.
\r
18 * ============LICENSE_END=========================================================
\r
21 package org.openecomp.mso.bpmn.infrastructure;
\r
23 import static org.junit.Assert.assertEquals;
\r
24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteServiceInstance;
\r
25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;
\r
26 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
\r
27 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
\r
28 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
\r
30 import java.io.IOException;
\r
31 import java.util.HashMap;
\r
32 import java.util.Map;
\r
33 import java.util.UUID;
\r
35 import org.camunda.bpm.engine.test.Deployment;
\r
36 import org.junit.Assert;
\r
37 import org.junit.Test;
\r
38 import org.openecomp.mso.bpmn.common.BPMNUtil;
\r
39 import org.openecomp.mso.bpmn.common.WorkflowTest;
\r
40 import org.openecomp.mso.bpmn.core.RollbackData;
\r
43 * Unit test cases for DoCreateServiceInstanceRollback.bpmn
\r
45 public class DoCreateSIRollbackTest extends WorkflowTest {
\r
46 private static final String EOL = "\n";
\r
47 private final CallbackSet callbacks = new CallbackSet();
\r
48 private final String sdncAdapterCallback =
\r
49 "<output xmlns=\"com:att:sdnctl:l3api\">" + EOL +
\r
50 " <svc-request-id>((REQUEST-ID))</svc-request-id>" + EOL +
\r
51 " <ack-final-indicator>Y</ack-final-indicator>" + EOL +
\r
54 public DoCreateSIRollbackTest() throws IOException {
\r
55 callbacks.put("deactivate", sdncAdapterCallback);
\r
56 callbacks.put("delete", sdncAdapterCallback);
\r
60 * Sunny day VID scenario.
\r
64 //@Ignore // File not found - unable to run the test. Also, Stubs need updating..
\r
66 @Deployment(resources = {
\r
67 "subprocess/DoCreateServiceInstanceRollback.bpmn",
\r
68 "subprocess/SDNCAdapterV1.bpmn",
\r
69 "subprocess/GenericDeleteService.bpmn",
\r
70 "subprocess/GenericGetService.bpmn",
\r
71 "subprocess/CompleteMsoProcess.bpmn",
\r
72 "subprocess/FalloutHandler.bpmn" })
\r
73 public void sunnyDay() throws Exception {
\r
78 MockDeleteServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "");
\r
79 MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getSINoRelations.xml");
\r
80 MockNodeQueryServiceInstanceById("MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getSIUrlById.xml");
\r
82 mockSDNCAdapter(200);
\r
84 mockUpdateRequestDB(200, "DBUpdateResponse.xml");
\r
85 String businessKey = UUID.randomUUID().toString();
\r
87 Map<String, Object> variables = new HashMap<>();
\r
88 setupVariables(variables);
\r
89 invokeSubProcess("DoCreateServiceInstanceRollback", businessKey, variables);
\r
90 injectSDNCCallbacks(callbacks, "deactivate");
\r
91 injectSDNCCallbacks(callbacks, "delete");
\r
92 waitForProcessEnd(businessKey, 10000);
\r
93 Assert.assertTrue(isProcessEnded(businessKey));
\r
94 String workflowException = BPMNUtil.getVariable(processEngineRule, "DoCreateServiceInstanceRollback", "WorkflowException");
\r
95 System.out.println("workflowException:\n" + workflowException);
\r
96 assertEquals(null, workflowException);
\r
101 // Success Scenario
\r
102 private void setupVariables(Map<String, Object> variables) {
\r
103 variables.put("isDebugLogEnabled", "true");
\r
104 variables.put("msoRequestId", "RaaTestRequestId-1");
\r
105 variables.put("mso-request-id", "RaaTestRequestId-1");
\r
106 variables.put("serviceInstanceId","MIS%252F1604%252F0026%252FSW_INTERNET");
\r
108 RollbackData rollbackData = new RollbackData();
\r
110 rollbackData.put("SERVICEINSTANCE", "serviceInstanceId", "MIS%252F1604%252F0026%252FSW_INTERNET");
\r
111 rollbackData.put("SERVICEINSTANCE", "globalCustomerId", "SDN-ETHERNET-INTERNET");
\r
112 rollbackData.put("SERVICEINSTANCE", "serviceSubscriptionType", "123456789");
\r
113 rollbackData.put("SERVICEINSTANCE", "disablerollback", "false");
\r
114 rollbackData.put("SERVICEINSTANCE", "rollbackAAI", "true");
\r
115 rollbackData.put("SERVICEINSTANCE", "rollbackSDNC", "true");
\r
117 String req = "<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5=\"http://org.openecomp/mso/request/types/v1\"" + EOL +
\r
118 "xmlns:sdncadapter=\"http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1\" " + EOL +
\r
119 "xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\">" + EOL +
\r
120 "<sdncadapter:RequestHeader>" + EOL +
\r
121 "<sdncadapter:RequestId>b043d290-140d-4a38-a9b6-95d3b8bd27d4</sdncadapter:RequestId>" + EOL +
\r
122 "<sdncadapter:SvcInstanceId>MIS%252F1604%252F0026%252FSW_INTERNET</sdncadapter:SvcInstanceId>" + EOL +
\r
123 "<sdncadapter:SvcAction>deactivate</sdncadapter:SvcAction>" + EOL +
\r
124 "<sdncadapter:SvcOperation>service-topology-operation</sdncadapter:SvcOperation>" + EOL +
\r
125 "<sdncadapter:CallbackUrl>http://localhost:8080/mso/SDNCAdapterCallbackService</sdncadapter:CallbackUrl>" + EOL +
\r
126 "</sdncadapter:RequestHeader>" + EOL +
\r
127 "<sdncadapterworkflow:SDNCRequestData>" + EOL +
\r
128 "<request-information>" + EOL +
\r
129 "<request-id>RaaTestRequestId-1</request-id>" + EOL +
\r
130 "<source>MSO</source>" + EOL +
\r
131 "<notification-url/>" + EOL +
\r
132 "<order-number/>" + EOL +
\r
133 "<order-version/>" + EOL +
\r
134 "<request-action>DeleteServiceInstance</request-action>" + EOL +
\r
135 "</request-information>" + EOL +
\r
136 "<service-information>" + EOL +
\r
137 "<service-id/>" + EOL +
\r
138 "<subscription-service-type>123456789</subscription-service-type>" + EOL +
\r
139 "<ecomp-model-information>" + EOL +
\r
140 "<model-invariant-uuid/>" + EOL +
\r
141 "<model-uuid/>" + EOL +
\r
142 "<model-version/>" + EOL +
\r
143 "<model-name/>" + EOL +
\r
144 "</ecomp-model-information>" + EOL +
\r
145 "<service-instance-id>MIS%252F1604%252F0026%252FSW_INTERNET</service-instance-id>" + EOL +
\r
146 "<subscriber-name/>" + EOL +
\r
147 "<global-customer-id>SDN-ETHERNET-INTERNET</global-customer-id>" + EOL +
\r
148 "</service-information>" + EOL +
\r
149 "<service-request-input>" + EOL +
\r
150 "<service-instance-name/>" + EOL +
\r
151 "</service-request-input>" + EOL +
\r
152 "</sdncadapterworkflow:SDNCRequestData>" + EOL +
\r
153 "</sdncadapterworkflow:SDNCAdapterWorkflowRequest>";
\r
155 String req1 = "<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5=\"http://org.openecomp/mso/request/types/v1\"" + EOL +
\r
156 "xmlns:sdncadapter=\"http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1\" " + EOL +
\r
157 "xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\">" + EOL +
\r
158 "<sdncadapter:RequestHeader>" + EOL +
\r
159 "<sdncadapter:RequestId>bca4fede-0804-4c13-af69-9e80b378150f</sdncadapter:RequestId>" + EOL +
\r
160 "<sdncadapter:SvcInstanceId>MIS%252F1604%252F0026%252FSW_INTERNET</sdncadapter:SvcInstanceId>" + EOL +
\r
161 "<sdncadapter:SvcAction>delete</sdncadapter:SvcAction>" + EOL +
\r
162 "<sdncadapter:SvcOperation>service-topology-operation</sdncadapter:SvcOperation>" + EOL +
\r
163 "<sdncadapter:CallbackUrl>http://localhost:8080/mso/SDNCAdapterCallbackService</sdncadapter:CallbackUrl>" + EOL +
\r
164 "</sdncadapter:RequestHeader>" + EOL +
\r
165 "<sdncadapterworkflow:SDNCRequestData>" + EOL +
\r
166 "<request-information>" + EOL +
\r
167 "<request-id>RaaTestRequestId-1</request-id>" + EOL +
\r
168 "<source>MSO</source>" + EOL +
\r
169 "<notification-url/>" + EOL +
\r
170 "<order-number/>" + EOL +
\r
171 "<order-version/>" + EOL +
\r
172 "<request-action>DeleteServiceInstance</request-action>" + EOL +
\r
173 "</request-information>" + EOL +
\r
174 "<service-information>" + EOL +
\r
175 "<service-id/>" + EOL +
\r
176 "<subscription-service-type>123456789</subscription-service-type>" + EOL +
\r
177 "<ecomp-model-information>" + EOL +
\r
178 "<model-invariant-uuid/>" + EOL +
\r
179 "<model-uuid/>" + EOL +
\r
180 "<model-version/>" + EOL +
\r
181 "<model-name/>" + EOL +
\r
182 "</ecomp-model-information>" + EOL +
\r
183 "<service-instance-id>MIS%252F1604%252F0026%252FSW_INTERNET</service-instance-id>" + EOL +
\r
184 "<subscriber-name/>" + EOL +
\r
185 "<global-customer-id>SDN-ETHERNET-INTERNET</global-customer-id>" + EOL +
\r
186 "</service-information>" + EOL +
\r
187 "<service-request-input>" + EOL +
\r
188 "<service-instance-name/>" + EOL +
\r
189 "</service-request-input>" + EOL +
\r
190 "</sdncadapterworkflow:SDNCRequestData>" + EOL +
\r
191 "</sdncadapterworkflow:SDNCAdapterWorkflowRequest>";
\r
193 rollbackData.put("SERVICEINSTANCE", "sdncDeactivate", req);
\r
195 rollbackData.put("SERVICEINSTANCE", "sdncDelete",req1);
\r
196 variables.put("rollbackData",rollbackData);
\r