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;
30 import java.io.UnsupportedEncodingException;
31 import java.util.ArrayList;
32 import java.util.List;
34 import java.util.Optional;
36 import org.junit.Before;
37 import org.junit.Test;
38 import org.junit.runner.RunWith;
39 import org.mockito.InjectMocks;
40 import org.mockito.Mock;
41 import org.mockito.junit.MockitoJUnitRunner;
42 import org.onap.so.bpmn.common.data.TestDataSetup;
43 import org.onap.so.adapters.nwrest.CreateNetworkRequest;
44 import org.onap.so.adapters.nwrest.CreateNetworkResponse;
45 import org.onap.so.adapters.nwrest.DeleteNetworkRequest;
46 import org.onap.so.adapters.nwrest.DeleteNetworkResponse;
47 import org.onap.so.adapters.nwrest.RollbackNetworkRequest;
48 import org.onap.so.adapters.nwrest.RollbackNetworkResponse;
49 import org.onap.so.adapters.nwrest.UpdateNetworkRequest;
50 import org.onap.so.adapters.nwrest.UpdateNetworkResponse;
51 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
52 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
53 import org.onap.so.bpmn.servicedecomposition.bbobjects.HostRoute;
54 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
55 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
56 import org.onap.so.bpmn.servicedecomposition.bbobjects.Subnet;
57 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
58 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
59 import org.onap.so.client.adapter.network.NetworkAdapterClientException;
60 import org.onap.so.client.adapter.network.NetworkAdapterClientImpl;
61 import org.onap.so.client.adapter.network.mapper.NetworkAdapterObjectMapper;
62 import org.onap.so.db.catalog.beans.OrchestrationStatus;
63 import org.onap.so.entity.MsoRequest;
65 import com.shazam.shazamcrest.matcher.Matchers;
68 @RunWith(MockitoJUnitRunner.Silent.class)
69 public class NetworkAdapterResourcesTest extends TestDataSetup{
72 private NetworkAdapterResources networkAdapterResources = new NetworkAdapterResources();
75 protected NetworkAdapterClientImpl MOCK_networkAdapterClient;
78 protected NetworkAdapterObjectMapper MOCK_networkAdapterObjectMapper;
80 private L3Network l3Network;
81 private RequestContext requestContext;
82 private ServiceInstance serviceInstance;
83 private CloudRegion cloudRegion;
84 private OrchestrationContext orchestrationContext;
85 private Customer customer;
86 Map<String, String> userInput;
89 public void before() {
90 requestContext = buildRequestContext();
92 customer = buildCustomer();
94 serviceInstance = buildServiceInstance();
96 cloudRegion = buildCloudRegion();
98 orchestrationContext = buildOrchestrationContext();
99 orchestrationContext.setIsRollbackEnabled(true);
101 userInput = buildUserInput();
103 l3Network = buildL3Network();
107 public void createNetworTest() throws Exception {
108 String cloudRegionPo = "cloudRegionPo";
109 CreateNetworkRequest expectedCreateNetworkRequest = new CreateNetworkRequest();
111 expectedCreateNetworkRequest.setCloudSiteId(cloudRegionPo);
112 expectedCreateNetworkRequest.setTenantId(cloudRegion.getTenantId());
113 expectedCreateNetworkRequest.setNetworkId(l3Network.getNetworkId());
114 expectedCreateNetworkRequest.setNetworkName(l3Network.getNetworkName());
115 expectedCreateNetworkRequest.setBackout(false);
116 expectedCreateNetworkRequest.setFailIfExists(true);
118 MsoRequest msoRequest = new MsoRequest();
119 msoRequest.setRequestId(requestContext.getMsoRequestId());
120 msoRequest.setServiceInstanceId(serviceInstance.getServiceInstanceId());
121 expectedCreateNetworkRequest.setMsoRequest(msoRequest);
122 expectedCreateNetworkRequest.setSkipAAI(true);
124 Subnet openstackSubnet = new Subnet();
125 HostRoute hostRoute = new HostRoute();
126 hostRoute.setHostRouteId("hostRouteId");
127 hostRoute.setNextHop("nextHop");
128 hostRoute.setRoutePrefix("routePrefix");
129 openstackSubnet.getHostRoutes().add(hostRoute);
130 List<Subnet> subnetList = new ArrayList<Subnet>();
131 subnetList.add(openstackSubnet);
132 l3Network.getSubnets().add(openstackSubnet);
134 l3Network.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
136 CreateNetworkRequest createNetworkRequest = new CreateNetworkRequest();
137 createNetworkRequest.setCloudSiteId("cloudSiteId");
139 CreateNetworkResponse expectedCreateNetworkResponse = new CreateNetworkResponse();
140 expectedCreateNetworkResponse.setNetworkStackId("networkStackId");
141 expectedCreateNetworkResponse.setNetworkCreated(true);
144 doReturn(expectedCreateNetworkResponse).when(MOCK_networkAdapterClient).createNetwork(isA(CreateNetworkRequest.class));
146 doReturn(createNetworkRequest).when(MOCK_networkAdapterObjectMapper).createNetworkRequestMapper(isA(RequestContext.class), isA(CloudRegion.class), isA(OrchestrationContext.class), isA(ServiceInstance.class), isA(L3Network.class), isA(Map.class), isA(String.class), isA(Customer.class));
148 CreateNetworkResponse actualCreateNetwrokResponse = (networkAdapterResources.createNetwork(requestContext, cloudRegion, orchestrationContext, serviceInstance, l3Network, userInput, cloudRegionPo, customer)).get();
150 verify(MOCK_networkAdapterClient, times(1)).createNetwork(createNetworkRequest);
152 verify(MOCK_networkAdapterObjectMapper, times(1)).createNetworkRequestMapper(requestContext, cloudRegion, orchestrationContext, serviceInstance, l3Network, userInput, cloudRegionPo, customer);
154 assertThat(expectedCreateNetworkResponse, Matchers.sameBeanAs(actualCreateNetwrokResponse));
158 public void rollbackCreateNetworkTest() throws Exception {
159 String cloudRegionPo = "cloudRegionPo";
160 RollbackNetworkResponse expectedRollbackNetworkResponse = new RollbackNetworkResponse();
161 expectedRollbackNetworkResponse.setMessageId("messageId");
162 expectedRollbackNetworkResponse.setNetworkRolledBack(true);
164 RollbackNetworkRequest rollbackNetworkRequest = new RollbackNetworkRequest();
165 rollbackNetworkRequest.setMessageId("messageId");
167 RollbackNetworkResponse rollbackNetworkResponse = new RollbackNetworkResponse();
168 rollbackNetworkResponse.setMessageId("messageId");
169 rollbackNetworkResponse.setNetworkRolledBack(true);
171 CreateNetworkResponse createNetworkResponse = new CreateNetworkResponse();
172 createNetworkResponse.setMessageId("messageId");
174 doReturn(rollbackNetworkResponse).when(MOCK_networkAdapterClient).rollbackNetwork(isA(String.class), isA(RollbackNetworkRequest.class));
176 doReturn(rollbackNetworkRequest).when(MOCK_networkAdapterObjectMapper).createNetworkRollbackRequestMapper(isA(RequestContext.class), isA(CloudRegion.class), isA(OrchestrationContext.class), isA(ServiceInstance.class), isA(L3Network.class), isA(Map.class), isA(String.class), isA(CreateNetworkResponse.class));
178 RollbackNetworkResponse actualRollbackCreateNetwrokResponse = (networkAdapterResources.rollbackCreateNetwork(requestContext, cloudRegion, orchestrationContext, serviceInstance, l3Network, userInput, cloudRegionPo, createNetworkResponse)).get();
180 verify(MOCK_networkAdapterClient, times(1)).rollbackNetwork(l3Network.getNetworkId(), rollbackNetworkRequest);
182 verify(MOCK_networkAdapterObjectMapper, times(1)).createNetworkRollbackRequestMapper(requestContext, cloudRegion, orchestrationContext, serviceInstance, l3Network, userInput, cloudRegionPo, createNetworkResponse);
184 assertThat(expectedRollbackNetworkResponse, Matchers.sameBeanAs(actualRollbackCreateNetwrokResponse));
188 public void updateNetworkTest() throws UnsupportedEncodingException, NetworkAdapterClientException {
190 doReturn(new UpdateNetworkRequest()).when(MOCK_networkAdapterObjectMapper).createNetworkUpdateRequestMapper(isA(RequestContext.class), isA(CloudRegion.class), isA(OrchestrationContext.class), isA(ServiceInstance.class), isA(L3Network.class), isA(Map.class), isA(Customer.class));
192 doReturn(new UpdateNetworkResponse()).when(MOCK_networkAdapterClient).updateNetwork(isA(String.class), isA(UpdateNetworkRequest.class));
194 Optional<UpdateNetworkResponse> actualUpdateNetworkResponse = networkAdapterResources.updateNetwork(requestContext, cloudRegion, orchestrationContext, serviceInstance, l3Network, userInput, customer);
197 verify(MOCK_networkAdapterObjectMapper, times(1)).createNetworkUpdateRequestMapper(requestContext, cloudRegion, orchestrationContext, serviceInstance, l3Network, userInput, customer);
198 verify(MOCK_networkAdapterClient, times(1)).updateNetwork(isA(String.class), isA(UpdateNetworkRequest.class));
199 assertNotNull(actualUpdateNetworkResponse);
203 public void deleteNetwork_DeleteAction_Test() throws UnsupportedEncodingException, NetworkAdapterClientException {
205 DeleteNetworkRequest deleteNetworkRequest = new DeleteNetworkRequest();
206 doReturn(deleteNetworkRequest).when(MOCK_networkAdapterObjectMapper).deleteNetworkRequestMapper(requestContext, cloudRegion, serviceInstance, l3Network);
208 DeleteNetworkResponse expectedDeleteNetworkResponse = new DeleteNetworkResponse();
210 doReturn(expectedDeleteNetworkResponse).when(MOCK_networkAdapterClient).deleteNetwork(l3Network.getNetworkId(), deleteNetworkRequest);
212 Optional<DeleteNetworkResponse> actualODeleteNetworkResponse = networkAdapterResources.deleteNetwork(requestContext, cloudRegion, serviceInstance, l3Network);
213 DeleteNetworkResponse actualDeleteNetworkResponse = actualODeleteNetworkResponse.get();
215 verify(MOCK_networkAdapterObjectMapper, times(1)).deleteNetworkRequestMapper(requestContext, cloudRegion, serviceInstance, l3Network);
216 verify(MOCK_networkAdapterClient, times(1)).deleteNetwork(l3Network.getNetworkId(), deleteNetworkRequest);
217 assertThat(expectedDeleteNetworkResponse, Matchers.sameBeanAs(actualDeleteNetworkResponse));