2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Copyright (C) 2018 Nokia.
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.so.bpmn.infrastructure.adapter.network.tasks;
25 import java.util.HashMap;
27 import javax.xml.bind.JAXBException;
28 import org.camunda.bpm.engine.delegate.BpmnError;
29 import org.camunda.bpm.engine.delegate.DelegateExecution;
30 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
31 import org.junit.Before;
32 import org.junit.Test;
33 import org.mockito.InjectMocks;
34 import org.mockito.Mock;
35 import org.onap.so.adapters.nwrest.CreateNetworkRequest;
36 import org.onap.so.adapters.nwrest.CreateNetworkResponse;
37 import org.onap.so.adapters.nwrest.DeleteNetworkRequest;
38 import org.onap.so.adapters.nwrest.DeleteNetworkResponse;
39 import org.onap.so.adapters.nwrest.UpdateNetworkError;
40 import org.onap.so.adapters.nwrest.UpdateNetworkRequest;
41 import org.onap.so.adapters.nwrest.UpdateNetworkResponse;
42 import org.onap.so.bpmn.BaseTaskTest;
43 import org.onap.so.client.exception.ExceptionBuilder;
44 import org.onap.so.utils.Components;
45 import org.onap.logging.filter.base.ONAPComponents;
46 import static org.junit.Assert.assertTrue;
47 import static org.mockito.ArgumentMatchers.any;
48 import static org.mockito.ArgumentMatchers.anyInt;
49 import static org.mockito.ArgumentMatchers.eq;
50 import static org.junit.Assert.assertEquals;
51 import static org.junit.Assert.assertNull;
52 import static org.junit.Assert.assertThat;
53 import static org.mockito.Mockito.doThrow;
54 import static org.mockito.Mockito.times;
55 import static org.mockito.Mockito.verify;
56 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
58 public class NetworkAdapterRestV1Test extends BaseTaskTest {
61 NetworkAdapterRestV1 networkAdapterRestV1Tasks = new NetworkAdapterRestV1();
63 ExceptionBuilder exceptionBuilder = new ExceptionBuilder();
65 private static final String CREATE_NETWORK_RESPONSE = "createNetworkResponse";
66 private static final String DELETE_NETWORK_RESPONSE = "deleteNetworkResponse";
67 private static final String CREATE_NETWORK_ERROR = "createNetworkError";
68 private static final String DELETE_NETWORK_ERROR = "deleteNetworkError";
69 private static final String NET_ID_FOR_CREATE_NETWORK_RESPONSE = "netIdForCreateNetworkResponse";
70 private static final String NET_ID_FOR_DELETE_NETWORK_RESPONSE = "netIdForDeleteNetworkResponse";
71 private static final String CREATE_NETWORK_ERROR_MESSAGE = "createNetErrorMessage";
72 private static final String DELETE_NETWORK_ERROR_MESSAGE = "deleteNetErrorMessage";
76 delegateExecution = new DelegateExecutionFake();
80 public void testUnmarshalXml() throws JAXBException {
82 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><createNetworkResponse><messageId>ec37c121-e3ec-4697-8adf-2d7dca7044fc</messageId><networkCreated>true</networkCreated><networkFqdn>someNetworkFqdn</networkFqdn><networkId>991ec7bf-c9c4-4ac1-bb9c-4b61645bddb3</networkId><networkStackId>someStackId</networkStackId><neutronNetworkId>9c47521a-2916-4018-b2bc-71ab767497e3</neutronNetworkId><rollback><cloudId>someCloudId</cloudId><modelCustomizationUuid>b7171cdd-8b05-459b-80ef-2093150e8983</modelCustomizationUuid><msoRequest><requestId>90b32315-176e-4dab-bcf1-80eb97a1c4f4</requestId><serviceInstanceId>71e7db22-7907-4d78-8fcc-8d89d28e90be</serviceInstanceId></msoRequest><networkCreated>true</networkCreated><networkStackId>someStackId</networkStackId><networkType>SomeNetworkType</networkType><neutronNetworkId>9c47521a-2916-4018-b2bc-71ab767497e3</neutronNetworkId><tenantId>b60da4f71c1d4b35b8113d4eca6deaa1</tenantId></rollback><subnetMap><entry><key>6b381fa9-48ce-4e16-9978-d75309565bb6</key><value>bc1d5537-860b-4894-8eba-6faff41e648c</value></entry></subnetMap></createNetworkResponse>";
83 CreateNetworkResponse response =
84 (CreateNetworkResponse) new NetworkAdapterRestV1().unmarshalXml(xml, CreateNetworkResponse.class);
85 String returnedXml = response.toXmlString();
86 System.out.println(returnedXml);
90 public void testUnmarshalXmlUpdate() throws JAXBException {
91 UpdateNetworkResponse expectedResponse = new UpdateNetworkResponse();
92 expectedResponse.setMessageId("ec100bcc-2659-4aa4-b4d8-3255715c2a51");
93 expectedResponse.setNetworkId("80de31e3-cc78-4111-a9d3-5b92bf0a39eb");
94 Map<String, String> subnetMap = new HashMap<>();
95 subnetMap.put("95cd8437-25f1-4238-8720-cbfe7fa81476", "d8d16606-5d01-4822-b160-9a0d257303e0");
96 expectedResponse.setSubnetMap(subnetMap);
98 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><updateNetworkResponse><messageId>ec100bcc-2659-4aa4-b4d8-3255715c2a51</messageId><networkId>80de31e3-cc78-4111-a9d3-5b92bf0a39eb</networkId><subnetMap><entry><key>95cd8437-25f1-4238-8720-cbfe7fa81476</key><value>d8d16606-5d01-4822-b160-9a0d257303e0</value></entry></subnetMap></updateNetworkResponse>";
99 UpdateNetworkResponse response =
100 (UpdateNetworkResponse) new NetworkAdapterRestV1().unmarshalXml(xml, UpdateNetworkResponse.class);
101 assertThat(expectedResponse, sameBeanAs(response));
105 public void processCallbackTest() {
106 UpdateNetworkRequest updateNetworkRequest = new UpdateNetworkRequest();
107 UpdateNetworkResponse updateNetworkResponse = new UpdateNetworkResponse();
108 updateNetworkResponse.setMessageId("messageId");
109 updateNetworkResponse.setNetworkId("networkId");
110 delegateExecution.setVariable("networkAdapterRequest", updateNetworkRequest);
111 delegateExecution.setVariable("NetworkAResponse_MESSAGE", updateNetworkResponse.toXmlString());
113 networkAdapterRestV1Tasks.processCallback(delegateExecution);
115 assertThat(updateNetworkResponse, sameBeanAs(delegateExecution.getVariable("updateNetworkResponse")));
119 public void processCallbackErrorTest() {
120 UpdateNetworkRequest updateNetworkRequest = new UpdateNetworkRequest();
121 UpdateNetworkError updateNetworkResponse = new UpdateNetworkError();
122 updateNetworkResponse.setMessageId("messageId");
123 updateNetworkResponse.setMessage("test error message");
124 delegateExecution.setVariable("networkAdapterRequest", updateNetworkRequest);
125 delegateExecution.setVariable("NetworkAResponse_MESSAGE", updateNetworkResponse.toXmlString());
127 doThrow(new BpmnError("MSOWorkflowException")).when(exceptionBuilder).buildAndThrowWorkflowException(
128 any(DelegateExecution.class), anyInt(), any(String.class), any(ONAPComponents.class));
131 networkAdapterRestV1Tasks.processCallback(delegateExecution);
132 } catch (BpmnError be) {
133 assertEquals("MSOWorkflowException", be.getErrorCode());
135 assertNull(delegateExecution.getVariable("updateNetworkResponse"));
136 verify(exceptionBuilder, times(1)).buildAndThrowWorkflowException(any(DelegateExecution.class), eq(7000),
137 eq("test error message"), eq(Components.OPENSTACK));
141 public void processCallback_createNetworkResponse() {
142 delegateExecution.setVariable("networkAdapterRequest", new CreateNetworkRequest());
143 delegateExecution.setVariable("NetworkAResponse_MESSAGE",
144 createNetworkResponse(CREATE_NETWORK_RESPONSE, NET_ID_FOR_CREATE_NETWORK_RESPONSE));
145 networkAdapterRestV1Tasks.processCallback(delegateExecution);
147 Object result = delegateExecution.getVariable("createNetworkResponse");
148 assertTrue(result instanceof CreateNetworkResponse);
149 CreateNetworkResponse createNetworkResponse = (CreateNetworkResponse) result;
150 assertEquals(createNetworkResponse.getNetworkId(), NET_ID_FOR_CREATE_NETWORK_RESPONSE);
154 public void processCallback_deleteNetworkResponse() {
155 delegateExecution.setVariable("networkAdapterRequest", new DeleteNetworkRequest());
156 delegateExecution.setVariable("NetworkAResponse_MESSAGE",
157 createNetworkResponse(DELETE_NETWORK_RESPONSE, NET_ID_FOR_DELETE_NETWORK_RESPONSE));
158 networkAdapterRestV1Tasks.processCallback(delegateExecution);
160 Object result = delegateExecution.getVariable("deleteNetworkResponse");
161 assertTrue(result instanceof DeleteNetworkResponse);
162 DeleteNetworkResponse deleteNetworkResponse = (DeleteNetworkResponse) result;
163 assertEquals(deleteNetworkResponse.getNetworkId(), NET_ID_FOR_DELETE_NETWORK_RESPONSE);
167 public void processCallback_createNetworkError() {
169 delegateExecution.setVariable("networkAdapterRequest", new CreateNetworkRequest());
170 delegateExecution.setVariable("NetworkAResponse_MESSAGE",
171 createNetworkError(CREATE_NETWORK_ERROR, CREATE_NETWORK_ERROR_MESSAGE));
172 networkAdapterRestV1Tasks.processCallback(delegateExecution);
173 } catch (Exception e) {
174 assertEquals(e.getMessage(), CREATE_NETWORK_ERROR_MESSAGE);
179 public void processCallback_deleteNetworkError() {
181 delegateExecution.setVariable("networkAdapterRequest", new DeleteNetworkRequest());
182 delegateExecution.setVariable("NetworkAResponse_MESSAGE",
183 createNetworkError(DELETE_NETWORK_ERROR, DELETE_NETWORK_ERROR_MESSAGE));
184 networkAdapterRestV1Tasks.processCallback(delegateExecution);
185 } catch (Exception e) {
186 assertEquals(e.getMessage(), DELETE_NETWORK_ERROR_MESSAGE);
190 private String createNetworkResponse(String networkResponseType, String networkId) {
192 return "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><" + networkResponseType + "><networkId>"
193 + networkId + "</networkId></" + networkResponseType + ">";
196 private String createNetworkError(String networkErrorType, String message) {
198 return "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><" + networkErrorType + "><message>"
199 + message + "</message></" + networkErrorType + ">";