Replaced all tabs with spaces in java and pom.xml
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / client / orchestration / NetworkAdapterResourcesTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.onap.so.client.orchestration;
22
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;
32 import java.util.Map;
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;
63
64
65 @RunWith(MockitoJUnitRunner.Silent.class)
66 public class NetworkAdapterResourcesTest extends TestDataSetup {
67
68     @InjectMocks
69     private NetworkAdapterResources networkAdapterResources = new NetworkAdapterResources();
70
71     @Mock
72     protected NetworkAdapterClientImpl MOCK_networkAdapterClient;
73
74     @Mock
75     protected NetworkAdapterObjectMapper MOCK_networkAdapterObjectMapper;
76
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;
84
85     @Before
86     public void before() {
87         requestContext = buildRequestContext();
88
89         customer = buildCustomer();
90
91         serviceInstance = buildServiceInstance();
92
93         cloudRegion = buildCloudRegion();
94
95         orchestrationContext = buildOrchestrationContext();
96         orchestrationContext.setIsRollbackEnabled(true);
97
98         userInput = buildUserInput();
99
100         l3Network = buildL3Network();
101     }
102
103     @Test
104     public void createNetworTest() throws Exception {
105         String cloudRegionPo = "cloudRegionPo";
106         CreateNetworkRequest expectedCreateNetworkRequest = new CreateNetworkRequest();
107
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);
114
115         MsoRequest msoRequest = new MsoRequest();
116         msoRequest.setRequestId(requestContext.getMsoRequestId());
117         msoRequest.setServiceInstanceId(serviceInstance.getServiceInstanceId());
118         expectedCreateNetworkRequest.setMsoRequest(msoRequest);
119         expectedCreateNetworkRequest.setSkipAAI(true);
120
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);
130
131         l3Network.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
132
133         CreateNetworkRequest createNetworkRequest = new CreateNetworkRequest();
134         createNetworkRequest.setCloudSiteId("cloudSiteId");
135
136         CreateNetworkResponse expectedCreateNetworkResponse = new CreateNetworkResponse();
137         expectedCreateNetworkResponse.setNetworkStackId("networkStackId");
138         expectedCreateNetworkResponse.setNetworkCreated(true);
139
140
141         doReturn(expectedCreateNetworkResponse).when(MOCK_networkAdapterClient)
142                 .createNetwork(isA(CreateNetworkRequest.class));
143
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));
148
149         CreateNetworkResponse actualCreateNetwrokResponse =
150                 (networkAdapterResources.createNetwork(requestContext, cloudRegion, orchestrationContext,
151                         serviceInstance, l3Network, userInput, cloudRegionPo, customer)).get();
152
153         verify(MOCK_networkAdapterClient, times(1)).createNetwork(createNetworkRequest);
154
155         verify(MOCK_networkAdapterObjectMapper, times(1)).createNetworkRequestMapper(requestContext, cloudRegion,
156                 orchestrationContext, serviceInstance, l3Network, userInput, cloudRegionPo, customer);
157
158         assertThat(expectedCreateNetworkResponse, Matchers.sameBeanAs(actualCreateNetwrokResponse));
159     }
160
161     @Test
162     public void rollbackCreateNetworkTest() throws Exception {
163         String cloudRegionPo = "cloudRegionPo";
164         RollbackNetworkResponse expectedRollbackNetworkResponse = new RollbackNetworkResponse();
165         expectedRollbackNetworkResponse.setMessageId("messageId");
166         expectedRollbackNetworkResponse.setNetworkRolledBack(true);
167
168         RollbackNetworkRequest rollbackNetworkRequest = new RollbackNetworkRequest();
169         rollbackNetworkRequest.setMessageId("messageId");
170
171         RollbackNetworkResponse rollbackNetworkResponse = new RollbackNetworkResponse();
172         rollbackNetworkResponse.setMessageId("messageId");
173         rollbackNetworkResponse.setNetworkRolledBack(true);
174
175         CreateNetworkResponse createNetworkResponse = new CreateNetworkResponse();
176         createNetworkResponse.setMessageId("messageId");
177
178         doReturn(rollbackNetworkResponse).when(MOCK_networkAdapterClient).rollbackNetwork(isA(String.class),
179                 isA(RollbackNetworkRequest.class));
180
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));
185
186         RollbackNetworkResponse actualRollbackCreateNetwrokResponse =
187                 (networkAdapterResources.rollbackCreateNetwork(requestContext, cloudRegion, orchestrationContext,
188                         serviceInstance, l3Network, userInput, cloudRegionPo, createNetworkResponse)).get();
189
190         verify(MOCK_networkAdapterClient, times(1)).rollbackNetwork(l3Network.getNetworkId(), rollbackNetworkRequest);
191
192         verify(MOCK_networkAdapterObjectMapper, times(1)).createNetworkRollbackRequestMapper(requestContext,
193                 cloudRegion, orchestrationContext, serviceInstance, l3Network, userInput, cloudRegionPo,
194                 createNetworkResponse);
195
196         assertThat(expectedRollbackNetworkResponse, Matchers.sameBeanAs(actualRollbackCreateNetwrokResponse));
197     }
198
199     @Test
200     public void updateNetworkTest() throws UnsupportedEncodingException, NetworkAdapterClientException {
201
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));
205
206         doReturn(new UpdateNetworkResponse()).when(MOCK_networkAdapterClient).updateNetwork(isA(String.class),
207                 isA(UpdateNetworkRequest.class));
208
209         Optional<UpdateNetworkResponse> actualUpdateNetworkResponse = networkAdapterResources.updateNetwork(
210                 requestContext, cloudRegion, orchestrationContext, serviceInstance, l3Network, userInput, customer);
211
212
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);
217     }
218
219     @Test
220     public void deleteNetwork_DeleteAction_Test() throws UnsupportedEncodingException, NetworkAdapterClientException {
221
222         DeleteNetworkRequest deleteNetworkRequest = new DeleteNetworkRequest();
223         doReturn(deleteNetworkRequest).when(MOCK_networkAdapterObjectMapper).deleteNetworkRequestMapper(requestContext,
224                 cloudRegion, serviceInstance, l3Network);
225
226         DeleteNetworkResponse expectedDeleteNetworkResponse = new DeleteNetworkResponse();
227
228         doReturn(expectedDeleteNetworkResponse).when(MOCK_networkAdapterClient).deleteNetwork(l3Network.getNetworkId(),
229                 deleteNetworkRequest);
230
231         Optional<DeleteNetworkResponse> actualODeleteNetworkResponse =
232                 networkAdapterResources.deleteNetwork(requestContext, cloudRegion, serviceInstance, l3Network);
233         DeleteNetworkResponse actualDeleteNetworkResponse = actualODeleteNetworkResponse.get();
234
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));
239     }
240 }