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.common.scripts
\r
23 import org.junit.runner.RunWith;
\r
24 import static org.mockito.Mockito.*
\r
25 import static org.junit.Assert.*;
\r
27 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
\r
28 import org.junit.Before
\r
29 import org.junit.Test
\r
30 import org.junit.runner.RunWith
\r
31 import org.mockito.ArgumentCaptor;
\r
32 import org.mockito.MockitoAnnotations
\r
33 import org.mockito.runners.MockitoJUnitRunner
\r
34 import org.openecomp.mso.bpmn.common.scripts.MsoUtils;
\r
35 import org.openecomp.mso.bpmn.common.scripts.FalloutHandler;
\r
37 @RunWith(MockitoJUnitRunner.class)
\r
38 class FalloutHandlerTest {
\r
40 public MsoUtils utils = new MsoUtils()
\r
43 public void init() {
\r
44 MockitoAnnotations.initMocks(this)
\r
47 private String falloutHandlerRequest = """
\r
48 <sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1" xmlns:ns7="http://org.openecomp/mso/request/types/v1">
\r
49 <ns7:request-information>
\r
50 <ns7:request-id>uCPE1020_STUW105_5002</ns7:request-id>
\r
51 <ns7:request-action>Layer3ServiceActivateRequest</ns7:request-action>
\r
52 <ns7:request-sub-action>CANCEL</ns7:request-sub-action>
\r
53 <ns7:source>OMX</ns7:source>
\r
54 <ns7:order-number>10205000</ns7:order-number>
\r
55 <ns7:order-version>1</ns7:order-version>
\r
56 </ns7:request-information>
\r
57 <sdncadapterworkflow:WorkflowException>
\r
58 <sdncadapterworkflow:ErrorMessage>Some Error Message - Fallout Handler</sdncadapterworkflow:ErrorMessage>
\r
59 <sdncadapterworkflow:ErrorCode>Some Error Code - Fallout Handler</sdncadapterworkflow:ErrorCode>
\r
60 <sdncadapterworkflow:SourceSystemErrorCode>Some Source System Error Code- Fallout Handler</sdncadapterworkflow:SourceSystemErrorCode>
\r
61 </sdncadapterworkflow:WorkflowException>
\r
62 </sdncadapterworkflow:FalloutHandlerRequest>
\r
65 private String falloutHandlerResponse = """<workflow:FalloutHandlerResponse xmlns:workflow="http://org.openecomp/mso/workflow/schema/v1">
\r
66 <workflow:out>Fallout Handler Failed</workflow:out>
\r
67 </workflow:FalloutHandlerResponse>"""
\r
70 public void testPreProcessRequest() {
\r
72 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
\r
74 when(mockExecution.getVariable("FalloutHandlerRequest")).thenReturn(falloutHandlerRequest)
\r
75 when(mockExecution.getVariable("URN_mso_adapters_db_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC");
\r
76 when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7");
\r
78 FalloutHandler falloutHandler = new FalloutHandler()
\r
79 falloutHandler.preProcessRequest(mockExecution)
\r
81 /* Initialize all the process request variables in this block */
\r
82 verify(mockExecution).setVariable("prefix","FH_")
\r
83 //verify(mockExecution).setVariable("getLayer3ServiceDetailsV1Response","")
\r
85 //These variables are form the input Message to the BPMN
\r
86 verify(mockExecution).setVariable("FH_request_id","")
\r
87 verify(mockExecution).setVariable("FH_request_action","")
\r
88 verify(mockExecution).setVariable("FH_notification-url","")
\r
89 verify(mockExecution).setVariable("FH_mso-bpel-name","")
\r
90 verify(mockExecution).setVariable("FH_ErrorCode", "")
\r
91 verify(mockExecution).setVariable("FH_ErrorMessage", "")
\r
93 verify(mockExecution).setVariable("FH_notification-url-Ok", false)
\r
94 verify(mockExecution).setVariable("FH_request_id-Ok", false)
\r
96 //These variables are for Get Mso Aai Password Adapter
\r
97 verify(mockExecution).setVariable("FH_deliveryStatus", true)
\r
99 //update Response Status to pending ...Adapter variables
\r
100 verify(mockExecution).setVariable("FH_updateResponseStatusPayload", null)
\r
101 verify(mockExecution).setVariable("FH_updateResponseStatusResponse", null)
\r
103 //update Request Gamma ...Adapter variables
\r
104 verify(mockExecution).setVariable("FH_updateRequestGammaPayload", "")
\r
105 verify(mockExecution).setVariable("FH_updateRequestGammaResponse", null)
\r
106 verify(mockExecution).setVariable("FH_updateRequestGammaResponseCode", null)
\r
108 //update Request Infra ...Adapter variables
\r
109 verify(mockExecution).setVariable("FH_updateRequestInfraPayload", "")
\r
110 verify(mockExecution).setVariable("FH_updateRequestInfraResponse", null)
\r
111 verify(mockExecution).setVariable("FH_updateRequestInfraResponseCode", null)
\r
113 //assign False to success variable
\r
114 verify(mockExecution).setVariable("FH_success", true)
\r
116 //Set notify status to Failed variable
\r
117 verify(mockExecution).setVariable("FH_NOTIFY_STATUS", "SUCCESS")
\r
119 //Set DB update variable
\r
120 verify(mockExecution).setVariable("FH_updateRequestPayload", "")
\r
121 verify(mockExecution).setVariable("FH_updateRequestResponse", null)
\r
122 verify(mockExecution).setVariable("FH_updateRequestResponseCode", null)
\r
125 verify(mockExecution).setVariable("BasicAuthHeaderValue","")
\r
127 //Response variables
\r
128 verify(mockExecution).setVariable("FalloutHandlerResponse","")
\r
129 verify(mockExecution).setVariable("FH_ErrorResponse", null)
\r
130 verify(mockExecution).setVariable("FH_ResponseCode", "")
\r
132 verify(mockExecution).setVariable("FH_request_id-Ok",true)
\r
133 verify(mockExecution).setVariable("FH_request_id","uCPE1020_STUW105_5002")
\r
134 verify(mockExecution).setVariable("FH_request_action","Layer3ServiceActivateRequest")
\r
135 verify(mockExecution).setVariable("FH_source","OMX")
\r
136 verify(mockExecution).setVariable("FH_ErrorCode","Some Error Code - Fallout Handler")
\r
137 verify(mockExecution).setVariable("FH_ErrorMessage","Some Error Message - Fallout Handler")
\r
142 public void testpostProcessResponse(){
\r
144 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
\r
146 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
\r
147 when(mockExecution.getVariable("FH_success")).thenReturn(false)
\r
149 FalloutHandler falloutHandler = new FalloutHandler()
\r
150 falloutHandler.postProcessResponse(mockExecution)
\r
152 // Capture the arguments to setVariable
\r
153 ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
\r
154 ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
\r
156 verify(mockExecution, times(4)).setVariable(captor1.capture(), captor2.capture())
\r
157 List<String> arg2List = captor2.getAllValues()
\r
158 String payloadResponseActual = arg2List.get(1)
\r
160 assertEquals(falloutHandlerResponse.replaceAll("\\s+", ""), payloadResponseActual.replaceAll("\\s+", ""))
\r
162 verify(mockExecution).setVariable("FH_ResponseCode","500")
\r
165 private String updateRequestPayload = """
\r
166 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">
\r
169 <req:updateRequest>
\r
170 <requestId>testReqId</requestId>
\r
171 <lastModifiedBy>BPEL</lastModifiedBy>
\r
172 <finalErrorMessage>ErrorMessage</finalErrorMessage>
\r
173 <finalErrorCode>ErrorCode</finalErrorCode>
\r
174 <status>FAILED</status>
\r
175 <responseStatus>NotifyStatus</responseStatus>
\r
176 </req:updateRequest>
\r
178 </soapenv:Envelope>
\r
182 public void testupdateRequestPayload(){
\r
184 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
\r
185 when(mockExecution.getVariable("FH_request_id")).thenReturn("testReqId")
\r
186 when(mockExecution.getVariable("FH_ErrorMessage")).thenReturn("ErrorMessage")
\r
187 when(mockExecution.getVariable("FH_ErrorCode")).thenReturn("ErrorCode")
\r
188 when(mockExecution.getVariable("FH_NOTIFY_STATUS")).thenReturn("NotifyStatus")
\r
190 FalloutHandler falloutHandler = new FalloutHandler()
\r
191 falloutHandler.updateRequestPayload(mockExecution)
\r
193 // Capture the arguments to setVariable
\r
194 ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
\r
195 ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
\r
197 verify(mockExecution, times(1)).setVariable(captor1.capture(), captor2.capture())
\r
198 List<String> arg2List = captor2.getAllValues()
\r
199 String payloadRequestActual = arg2List.get(0)
\r
201 assertEquals(updateRequestPayload.replaceAll("\\s+", ""), payloadRequestActual.replaceAll("\\s+", ""))
\r
204 private String updateRequestInfraPayload = """
\r
205 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">
\r
208 <req:updateInfraRequest>
\r
209 <requestId>testReqId</requestId>
\r
210 <lastModifiedBy>BPEL</lastModifiedBy>
\r
211 <statusMessage>ErrorMessage</statusMessage>
\r
212 <requestStatus>FAILED</requestStatus>
\r
213 <progress>100</progress>
\r
214 </req:updateInfraRequest>
\r
216 </soapenv:Envelope>
\r
220 public void testupdateRequestInfraPayload(){
\r
222 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
\r
223 when(mockExecution.getVariable("FH_request_id")).thenReturn("testReqId")
\r
224 when(mockExecution.getVariable("FH_ErrorMessage")).thenReturn("ErrorMessage")
\r
226 FalloutHandler falloutHandler = new FalloutHandler()
\r
227 falloutHandler.updateRequestInfraPayload(mockExecution)
\r
229 // Capture the arguments to setVariable
\r
230 ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
\r
231 ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
\r
233 verify(mockExecution, times(1)).setVariable(captor1.capture(), captor2.capture())
\r
234 List<String> arg2List = captor2.getAllValues()
\r
235 String payloadRequestActual = arg2List.get(0)
\r
237 assertEquals(updateRequestInfraPayload.replaceAll("\\s+", ""), payloadRequestActual.replaceAll("\\s+", ""))
\r
240 private String updateRequestGammaPayload = """
\r
241 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">
\r
244 <req:updateRequest>
\r
245 <requestId>testReqId</requestId>
\r
246 <lastModifiedBy>BPEL</lastModifiedBy>
\r
247 <finalErrorMessage>ErrorMessage</finalErrorMessage>
\r
248 <finalErrorCode>ErrorCode</finalErrorCode>
\r
249 <status>FAILED</status>
\r
250 </req:updateRequest>
\r
252 </soapenv:Envelope>
\r
256 public void testupdateRequestGammaPayload(){
\r
258 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
\r
259 when(mockExecution.getVariable("FH_request_id")).thenReturn("testReqId")
\r
260 when(mockExecution.getVariable("FH_ErrorMessage")).thenReturn("ErrorMessage")
\r
261 when(mockExecution.getVariable("FH_ErrorCode")).thenReturn("ErrorCode")
\r
262 when(mockExecution.getVariable("URN_mso_default_adapter_namespace")).thenReturn("http://org.openecomp.mso");
\r
264 FalloutHandler falloutHandler = new FalloutHandler()
\r
265 falloutHandler.updateRequestGammaPayload(mockExecution)
\r
267 // Capture the arguments to setVariable
\r
268 ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
\r
269 ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
\r
271 verify(mockExecution, times(1)).setVariable(captor1.capture(), captor2.capture())
\r
272 List<String> arg2List = captor2.getAllValues()
\r
273 String payloadRequestActual = arg2List.get(0)
\r
275 assertEquals(updateRequestGammaPayload.replaceAll("\\s+", ""), payloadRequestActual.replaceAll("\\s+", ""))
\r
279 String updateResponseStatusPayload = """
\r
280 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">
\r
283 <req:updateResponseStatus>
\r
284 <requestId>testReqId</requestId>
\r
285 <lastModifiedBy>BPEL</lastModifiedBy>
\r
286 <responseStatus>SENDING_FINAL_NOTIFY</responseStatus>
\r
287 </req:updateResponseStatus>
\r
289 </soapenv:Envelope>
\r
293 public void testupdateResponseStatusPayload(){
\r
295 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
\r
296 when(mockExecution.getVariable("FH_request_id")).thenReturn("testReqId")
\r
298 FalloutHandler falloutHandler = new FalloutHandler()
\r
299 falloutHandler.updateResponseStatusPayload(mockExecution)
\r
301 // Capture the arguments to setVariable
\r
302 ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
\r
303 ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
\r
305 verify(mockExecution, times(1)).setVariable(captor1.capture(), captor2.capture())
\r
306 List<String> arg2List = captor2.getAllValues()
\r
307 String payloadResponseActual = arg2List.get(0)
\r
309 assertEquals(updateResponseStatusPayload.replaceAll("\\s+", ""), payloadResponseActual.replaceAll("\\s+", ""))
\r