2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.client.orchestration;
23 import static org.junit.Assert.assertNotNull;
24 import static org.junit.Assert.assertThat;
25 import static org.mockito.ArgumentMatchers.isA;
26 import static org.mockito.Mockito.doReturn;
27 import static org.mockito.Mockito.times;
28 import static org.mockito.Mockito.verify;
29 import java.io.UnsupportedEncodingException;
30 import java.util.ArrayList;
31 import java.util.List;
33 import java.util.Optional;
34 import org.junit.Before;
35 import org.junit.Test;
36 import org.junit.runner.RunWith;
37 import org.mockito.InjectMocks;
38 import org.mockito.Mock;
39 import org.mockito.junit.MockitoJUnitRunner;
40 import org.onap.so.bpmn.common.data.TestDataSetup;
41 import org.onap.so.adapters.nwrest.CreateNetworkRequest;
42 import org.onap.so.adapters.nwrest.CreateNetworkResponse;
43 import org.onap.so.adapters.nwrest.DeleteNetworkRequest;
44 import org.onap.so.adapters.nwrest.DeleteNetworkResponse;
45 import org.onap.so.adapters.nwrest.RollbackNetworkRequest;
46 import org.onap.so.adapters.nwrest.RollbackNetworkResponse;
47 import org.onap.so.adapters.nwrest.UpdateNetworkRequest;
48 import org.onap.so.adapters.nwrest.UpdateNetworkResponse;
49 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
50 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
51 import org.onap.so.bpmn.servicedecomposition.bbobjects.HostRoute;
52 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
53 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
54 import org.onap.so.bpmn.servicedecomposition.bbobjects.Subnet;
55 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
56 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
57 import org.onap.so.client.adapter.network.NetworkAdapterClientException;
58 import org.onap.so.client.adapter.network.NetworkAdapterClientImpl;
59 import org.onap.so.client.adapter.network.mapper.NetworkAdapterObjectMapper;
60 import org.onap.so.db.catalog.beans.OrchestrationStatus;
61 import org.onap.so.entity.MsoRequest;
62 import com.shazam.shazamcrest.matcher.Matchers;
65 @RunWith(MockitoJUnitRunner.Silent.class)
66 public class NetworkAdapterResourcesTest extends TestDataSetup {
69 private NetworkAdapterResources networkAdapterResources = new NetworkAdapterResources();
72 protected NetworkAdapterClientImpl MOCK_networkAdapterClient;
75 protected NetworkAdapterObjectMapper MOCK_networkAdapterObjectMapper;
77 private L3Network l3Network;
78 private RequestContext requestContext;
79 private ServiceInstance serviceInstance;
80 private CloudRegion cloudRegion;
81 private OrchestrationContext orchestrationContext;
82 private Customer customer;
83 Map<String, String> userInput;
86 public void before() {
87 requestContext = buildRequestContext();
89 customer = buildCustomer();
91 serviceInstance = buildServiceInstance();
93 cloudRegion = buildCloudRegion();
95 orchestrationContext = buildOrchestrationContext();
96 orchestrationContext.setIsRollbackEnabled(true);
98 userInput = buildUserInput();
100 l3Network = buildL3Network();
104 public void createNetworTest() throws Exception {
105 String cloudRegionPo = "cloudRegionPo";
106 CreateNetworkRequest expectedCreateNetworkRequest = new CreateNetworkRequest();
108 expectedCreateNetworkRequest.setCloudSiteId(cloudRegionPo);
109 expectedCreateNetworkRequest.setTenantId(cloudRegion.getTenantId());
110 expectedCreateNetworkRequest.setNetworkId(l3Network.getNetworkId());
111 expectedCreateNetworkRequest.setNetworkName(l3Network.getNetworkName());
112 expectedCreateNetworkRequest.setBackout(false);
113 expectedCreateNetworkRequest.setFailIfExists(true);
115 MsoRequest msoRequest = new MsoRequest();
116 msoRequest.setRequestId(requestContext.getMsoRequestId());
117 msoRequest.setServiceInstanceId(serviceInstance.getServiceInstanceId());
118 expectedCreateNetworkRequest.setMsoRequest(msoRequest);
119 expectedCreateNetworkRequest.setSkipAAI(true);
121 Subnet openstackSubnet = new Subnet();
122 HostRoute hostRoute = new HostRoute();
123 hostRoute.setHostRouteId("hostRouteId");
124 hostRoute.setNextHop("nextHop");
125 hostRoute.setRoutePrefix("routePrefix");
126 openstackSubnet.getHostRoutes().add(hostRoute);
127 List<Subnet> subnetList = new ArrayList<Subnet>();
128 subnetList.add(openstackSubnet);
129 l3Network.getSubnets().add(openstackSubnet);
131 l3Network.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
133 CreateNetworkRequest createNetworkRequest = new CreateNetworkRequest();
134 createNetworkRequest.setCloudSiteId("cloudSiteId");
136 CreateNetworkResponse expectedCreateNetworkResponse = new CreateNetworkResponse();
137 expectedCreateNetworkResponse.setNetworkStackId("networkStackId");
138 expectedCreateNetworkResponse.setNetworkCreated(true);
141 doReturn(expectedCreateNetworkResponse).when(MOCK_networkAdapterClient)
142 .createNetwork(isA(CreateNetworkRequest.class));
144 doReturn(createNetworkRequest).when(MOCK_networkAdapterObjectMapper).createNetworkRequestMapper(
145 isA(RequestContext.class), isA(CloudRegion.class), isA(OrchestrationContext.class),
146 isA(ServiceInstance.class), isA(L3Network.class), isA(Map.class), isA(String.class),
147 isA(Customer.class));
149 CreateNetworkResponse actualCreateNetwrokResponse =
150 (networkAdapterResources.createNetwork(requestContext, cloudRegion, orchestrationContext,
151 serviceInstance, l3Network, userInput, cloudRegionPo, customer)).get();
153 verify(MOCK_networkAdapterClient, times(1)).createNetwork(createNetworkRequest);
155 verify(MOCK_networkAdapterObjectMapper, times(1)).createNetworkRequestMapper(requestContext, cloudRegion,
156 orchestrationContext, serviceInstance, l3Network, userInput, cloudRegionPo, customer);
158 assertThat(expectedCreateNetworkResponse, Matchers.sameBeanAs(actualCreateNetwrokResponse));
162 public void rollbackCreateNetworkTest() throws Exception {
163 String cloudRegionPo = "cloudRegionPo";
164 RollbackNetworkResponse expectedRollbackNetworkResponse = new RollbackNetworkResponse();
165 expectedRollbackNetworkResponse.setMessageId("messageId");
166 expectedRollbackNetworkResponse.setNetworkRolledBack(true);
168 RollbackNetworkRequest rollbackNetworkRequest = new RollbackNetworkRequest();
169 rollbackNetworkRequest.setMessageId("messageId");
171 RollbackNetworkResponse rollbackNetworkResponse = new RollbackNetworkResponse();
172 rollbackNetworkResponse.setMessageId("messageId");
173 rollbackNetworkResponse.setNetworkRolledBack(true);
175 CreateNetworkResponse createNetworkResponse = new CreateNetworkResponse();
176 createNetworkResponse.setMessageId("messageId");
178 doReturn(rollbackNetworkResponse).when(MOCK_networkAdapterClient).rollbackNetwork(isA(String.class),
179 isA(RollbackNetworkRequest.class));
181 doReturn(rollbackNetworkRequest).when(MOCK_networkAdapterObjectMapper).createNetworkRollbackRequestMapper(
182 isA(RequestContext.class), isA(CloudRegion.class), isA(OrchestrationContext.class),
183 isA(ServiceInstance.class), isA(L3Network.class), isA(Map.class), isA(String.class),
184 isA(CreateNetworkResponse.class));
186 RollbackNetworkResponse actualRollbackCreateNetwrokResponse =
187 (networkAdapterResources.rollbackCreateNetwork(requestContext, cloudRegion, orchestrationContext,
188 serviceInstance, l3Network, userInput, cloudRegionPo, createNetworkResponse)).get();
190 verify(MOCK_networkAdapterClient, times(1)).rollbackNetwork(l3Network.getNetworkId(), rollbackNetworkRequest);
192 verify(MOCK_networkAdapterObjectMapper, times(1)).createNetworkRollbackRequestMapper(requestContext,
193 cloudRegion, orchestrationContext, serviceInstance, l3Network, userInput, cloudRegionPo,
194 createNetworkResponse);
196 assertThat(expectedRollbackNetworkResponse, Matchers.sameBeanAs(actualRollbackCreateNetwrokResponse));
200 public void updateNetworkTest() throws UnsupportedEncodingException, NetworkAdapterClientException {
202 doReturn(new UpdateNetworkRequest()).when(MOCK_networkAdapterObjectMapper).createNetworkUpdateRequestMapper(
203 isA(RequestContext.class), isA(CloudRegion.class), isA(OrchestrationContext.class),
204 isA(ServiceInstance.class), isA(L3Network.class), isA(Map.class), isA(Customer.class));
206 doReturn(new UpdateNetworkResponse()).when(MOCK_networkAdapterClient).updateNetwork(isA(String.class),
207 isA(UpdateNetworkRequest.class));
209 Optional<UpdateNetworkResponse> actualUpdateNetworkResponse = networkAdapterResources.updateNetwork(
210 requestContext, cloudRegion, orchestrationContext, serviceInstance, l3Network, userInput, customer);
213 verify(MOCK_networkAdapterObjectMapper, times(1)).createNetworkUpdateRequestMapper(requestContext, cloudRegion,
214 orchestrationContext, serviceInstance, l3Network, userInput, customer);
215 verify(MOCK_networkAdapterClient, times(1)).updateNetwork(isA(String.class), isA(UpdateNetworkRequest.class));
216 assertNotNull(actualUpdateNetworkResponse);
220 public void deleteNetwork_DeleteAction_Test() throws UnsupportedEncodingException, NetworkAdapterClientException {
222 DeleteNetworkRequest deleteNetworkRequest = new DeleteNetworkRequest();
223 doReturn(deleteNetworkRequest).when(MOCK_networkAdapterObjectMapper).deleteNetworkRequestMapper(requestContext,
224 cloudRegion, serviceInstance, l3Network);
226 DeleteNetworkResponse expectedDeleteNetworkResponse = new DeleteNetworkResponse();
228 doReturn(expectedDeleteNetworkResponse).when(MOCK_networkAdapterClient).deleteNetwork(l3Network.getNetworkId(),
229 deleteNetworkRequest);
231 Optional<DeleteNetworkResponse> actualODeleteNetworkResponse =
232 networkAdapterResources.deleteNetwork(requestContext, cloudRegion, serviceInstance, l3Network);
233 DeleteNetworkResponse actualDeleteNetworkResponse = actualODeleteNetworkResponse.get();
235 verify(MOCK_networkAdapterObjectMapper, times(1)).deleteNetworkRequestMapper(requestContext, cloudRegion,
236 serviceInstance, l3Network);
237 verify(MOCK_networkAdapterClient, times(1)).deleteNetwork(l3Network.getNetworkId(), deleteNetworkRequest);
238 assertThat(expectedDeleteNetworkResponse, Matchers.sameBeanAs(actualDeleteNetworkResponse));