2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017-2019 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.adapters.audit;
23 import static org.junit.Assert.assertEquals;
24 import static org.mockito.Mockito.doReturn;
25 import static org.mockito.Mockito.times;
26 import static org.mockito.Mockito.verify;
29 import java.io.IOException;
30 import java.util.HashSet;
31 import java.util.List;
32 import java.util.Optional;
34 import java.util.stream.Stream;
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.aai.domain.yang.LInterface;
43 import org.onap.aai.domain.yang.LInterfaces;
44 import org.onap.aai.domain.yang.Vserver;
45 import org.onap.so.client.aai.AAIObjectPlurals;
46 import org.onap.so.client.aai.AAIObjectType;
47 import org.onap.so.client.aai.AAIResourcesClient;
48 import org.onap.so.client.aai.entities.AAIResultWrapper;
49 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
50 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
52 import com.fasterxml.jackson.core.JsonParseException;
53 import com.fasterxml.jackson.databind.JsonMappingException;
54 import com.fasterxml.jackson.databind.ObjectMapper;
55 import com.woorea.openstack.heat.model.Resource;
56 import com.woorea.openstack.heat.model.Resources;
58 @RunWith(MockitoJUnitRunner.Silent.class)
59 public class AuditVServerTest extends AuditVServer {
61 private ObjectMapper objectMapper = new ObjectMapper();
64 private AuditVServer auditNova = new AuditVServer();
67 private AAIResourcesClient aaiResourcesMock;
69 private String cloudOwner = "cloudOwner";
70 private String cloudRegion = "cloudRegion";
71 private String tenantId = "tenantId";
73 private AAIResourceUri vserverURI = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER,cloudOwner, cloudRegion,
74 tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db");
76 private AAIResourceUri vserverURI2 = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion,
77 tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz");
79 private AAIResourceUri ssc_1_trusted_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
80 cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c");
82 private AAIResourceUri ssc_1_avpn_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
83 cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "1c56a24b-5f03-435a-850d-31cd4252de56");
85 private AAIResourceUri ssc_1_mgmt_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
86 cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "12afcd28-929f-4d80-8a5a-0833bfd5e20b");
88 private AAIResourceUri ssc_1_mgmt_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
89 cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "80baec42-ffae-425f-ad8c-3f7b2c24bfff");
91 private AAIResourceUri ssc_1_mis_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
92 cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "13eddf95-4cf3-45f2-823a-2d890a6549b4");
94 private AAIResourceUri ssc_1_int_ha_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
95 cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "9cab2903-70f7-44fd-b681-491d6ae2adb8");
97 private AAIResourceUri test_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
98 cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz").queryParam("interface-id", "9cab2903-70f7-44fd-b681-491d6ae2adz1");
101 private AAIResourceUri test_port_2_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
102 cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz").queryParam("interface-id", "9cab2903-70f7-44fd-b681-491d6ae2adz2");
106 private AAIResourceUri mis_sub_1_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.SUB_L_INTERFACE,
107 cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","interface-name").queryParam("interface-id", "f711be16-2654-4a09-b89d-0511fda20e81");
109 private AAIResourceUri avpn_sub_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.SUB_L_INTERFACE,
110 cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","interface-name").queryParam("interface-id", "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb");
112 private AAIResourceUri avpn_sub_1_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.SUB_L_INTERFACE,
113 cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","interface-name").queryParam("interface-id", "b7019dd0-2ee9-4447-bdef-ac25676b205a");
117 private Set<Vserver> vserversToAudit = new HashSet<>();
120 LInterface test_port_1 = new LInterface();
121 LInterface test_port_2 = new LInterface();
122 LInterface ssc_1_int_ha_port_0 = new LInterface();
123 LInterface mis_sub_interface_1 = new LInterface();
124 LInterface ssc_1_mis_port_0 = new LInterface();
125 LInterface ssc_1_mgmt_port_0 = new LInterface();
126 LInterface ssc_1_mgmt_port_1 = new LInterface();
127 LInterface avpn_sub_interface_2 = new LInterface();
128 LInterface avpn_sub_interface_1 = new LInterface();
129 LInterface ssc_1_avpn_port_0 = new LInterface();
130 LInterface ssc_1_trusted_port_0 = new LInterface();
132 LInterfaces test_port_1_plural = new LInterfaces();
133 LInterfaces test_port_2_plural = new LInterfaces();
134 LInterfaces ssc_1_int_ha_port_0_plural = new LInterfaces();
135 LInterfaces mis_sub_interface_1_plural = new LInterfaces();
136 LInterfaces ssc_1_mis_port_0_plural = new LInterfaces();
137 LInterfaces ssc_1_mgmt_port_0_plural = new LInterfaces();
138 LInterfaces ssc_1_mgmt_port_1_plural = new LInterfaces();
139 LInterfaces avpn_sub_interface_2_plural = new LInterfaces();
140 LInterfaces avpn_sub_interface_1_plural = new LInterfaces();
141 LInterfaces ssc_1_avpn_port_0_plural = new LInterfaces();
142 LInterfaces ssc_1_trusted_port_0_plural = new LInterfaces();
146 public void setup() {
147 auditNova.setAaiClient(aaiResourcesMock);
149 Vserver vServer1= new Vserver();
150 vServer1.setVserverId("3a4c2ca5-27b3-4ecc-98c5-06804867c4db");
151 LInterfaces vServer1Linterfaces = new LInterfaces();
152 vServer1.setLInterfaces(vServer1Linterfaces);
154 ssc_1_trusted_port_0.setInterfaceId("dec8bdc7-5718-41dc-bfbb-561ff6eeb81c");
155 ssc_1_trusted_port_0.setInterfaceName("interface-name");
156 vServer1.getLInterfaces().getLInterface().add(ssc_1_trusted_port_0);
159 ssc_1_avpn_port_0.setInterfaceId("1c56a24b-5f03-435a-850d-31cd4252de56");
160 ssc_1_avpn_port_0.setInterfaceName("interface-name");
161 vServer1.getLInterfaces().getLInterface().add(ssc_1_avpn_port_0);
162 ssc_1_avpn_port_0.setLInterfaces(new LInterfaces());
165 avpn_sub_interface_1.setInterfaceId("0d9cd813-2ae1-46c0-9ebb-48081f6cffbb");
166 ssc_1_avpn_port_0.getLInterfaces().getLInterface().add(avpn_sub_interface_1);
169 avpn_sub_interface_2.setInterfaceId("b7019dd0-2ee9-4447-bdef-ac25676b205a");
170 ssc_1_avpn_port_0.getLInterfaces().getLInterface().add(avpn_sub_interface_2);
173 ssc_1_mgmt_port_1.setInterfaceId("12afcd28-929f-4d80-8a5a-0833bfd5e20b");
174 ssc_1_mgmt_port_1.setInterfaceName("interface-name");
175 vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_1);
177 ssc_1_mgmt_port_0.setInterfaceId("80baec42-ffae-425f-ad8c-3f7b2c24bfff");
178 ssc_1_mgmt_port_0.setInterfaceName("interface-name");
179 vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_0);
182 ssc_1_mis_port_0.setLInterfaces(new LInterfaces());
183 ssc_1_mis_port_0.setInterfaceId("13eddf95-4cf3-45f2-823a-2d890a6549b4");
184 ssc_1_mis_port_0.setInterfaceName("interface-name");
185 vServer1.getLInterfaces().getLInterface().add(ssc_1_mis_port_0);
188 mis_sub_interface_1.setInterfaceId("f711be16-2654-4a09-b89d-0511fda20e81");
189 ssc_1_mis_port_0.getLInterfaces().getLInterface().add(mis_sub_interface_1);
192 ssc_1_int_ha_port_0.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adb8");
193 vServer1.getLInterfaces().getLInterface().add(ssc_1_int_ha_port_0);
196 Vserver vServer2= new Vserver();
197 vServer2.setVserverId("3a4c2ca5-27b3-4ecc-98c5-06804867c4dz");
198 LInterfaces vServer2Linterfaces = new LInterfaces();
199 vServer2.setLInterfaces(vServer2Linterfaces);
201 test_port_1.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adz1");
202 test_port_1.setInterfaceName("interface-name");
205 test_port_2.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adz2");
206 test_port_2.setInterfaceName("interface-name");
208 vServer2.getLInterfaces().getLInterface().add(test_port_1);
209 vServer2.getLInterfaces().getLInterface().add(test_port_2);
211 vserversToAudit.add(vServer1);
212 vserversToAudit.add(vServer2);
215 test_port_1_plural.getLInterface().add(test_port_1);
216 test_port_2_plural.getLInterface().add(test_port_2);
217 ssc_1_int_ha_port_0_plural.getLInterface().add(ssc_1_int_ha_port_0);
218 ssc_1_mis_port_0_plural.getLInterface().add(ssc_1_mis_port_0);
219 ssc_1_mgmt_port_0_plural.getLInterface().add(ssc_1_mgmt_port_0);
220 ssc_1_mgmt_port_1_plural.getLInterface().add(ssc_1_mgmt_port_1);
221 ssc_1_avpn_port_0_plural.getLInterface().add(ssc_1_avpn_port_0);
222 ssc_1_trusted_port_0_plural.getLInterface().add(ssc_1_trusted_port_0);
227 public void audit_Vserver_Empty_HashSet() throws JsonParseException, JsonMappingException, IOException {
228 boolean exists = auditNova.auditVservers(new HashSet<Vserver>(), tenantId, cloudOwner, cloudRegion);
229 assertEquals(false, exists);
233 public void audit_Vserver_Found_Test() throws JsonParseException, JsonMappingException, IOException {
234 doReturn(true).when(aaiResourcesMock).exists(vserverURI);
235 doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
236 doReturn(Optional.of(ssc_1_trusted_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_trusted_port_0_uri);
237 doReturn(Optional.of(ssc_1_avpn_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_avpn_port_0_uri);
238 doReturn(Optional.of(ssc_1_mgmt_port_1_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mgmt_port_1_uri);
239 doReturn(Optional.of(ssc_1_mgmt_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mgmt_port_0_uri);
240 doReturn(Optional.of(ssc_1_mis_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mis_port_0_uri);
241 doReturn(Optional.of(ssc_1_int_ha_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_int_ha_port_0_uri);
242 doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterfaces.class,test_port_1_uri);
243 doReturn(Optional.of(test_port_2_plural)).when(aaiResourcesMock).get(LInterfaces.class,test_port_2_uri);
245 doReturn(true).when(aaiResourcesMock).exists(mis_sub_1_uri);
246 doReturn(true).when(aaiResourcesMock).exists(avpn_sub_0_uri);
247 doReturn(true).when(aaiResourcesMock).exists(avpn_sub_1_uri);
249 boolean exists = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
250 assertEquals(true, exists);
254 public void audit_Vserver_Found_Test_Network_Not_Found()
255 throws JsonParseException, JsonMappingException, IOException {
256 doReturn(true).when(aaiResourcesMock).exists(vserverURI);
257 doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
258 doReturn(Optional.of(ssc_1_trusted_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_trusted_port_0_uri);
259 doReturn(Optional.of(ssc_1_avpn_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_avpn_port_0_uri);
260 doReturn(Optional.of(ssc_1_mgmt_port_1_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mgmt_port_1_uri);
261 doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mgmt_port_0_uri);
262 doReturn(Optional.of(ssc_1_mis_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mis_port_0_uri);
263 doReturn(Optional.of(ssc_1_int_ha_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_int_ha_port_0_uri);
264 doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterfaces.class,test_port_1_uri);
265 doReturn(Optional.of(test_port_2_plural)).when(aaiResourcesMock).get(LInterfaces.class,test_port_2_uri);
267 doReturn(true).when(aaiResourcesMock).exists(mis_sub_1_uri);
268 doReturn(true).when(aaiResourcesMock).exists(avpn_sub_0_uri);
269 doReturn(true).when(aaiResourcesMock).exists(avpn_sub_1_uri);
271 boolean exists = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
272 assertEquals(false, exists);
276 public void audit_Vserver_Found_Test_Network_Not_Found_Second_Server()
277 throws JsonParseException, JsonMappingException, IOException {
278 doReturn(true).when(aaiResourcesMock).exists(vserverURI);
279 doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
280 doReturn(Optional.of(ssc_1_trusted_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
281 doReturn(Optional.of(ssc_1_avpn_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_avpn_port_0_uri);
282 doReturn(Optional.of(ssc_1_mgmt_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
283 doReturn(Optional.of(ssc_1_mgmt_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
284 doReturn(Optional.of(ssc_1_mis_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mis_port_0_uri);
285 doReturn(Optional.of(ssc_1_int_ha_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
286 doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
287 doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
288 doReturn(true).when(aaiResourcesMock).exists(mis_sub_1_uri);
289 doReturn(true).when(aaiResourcesMock).exists(avpn_sub_0_uri);
290 doReturn(true).when(aaiResourcesMock).exists(avpn_sub_1_uri);
291 boolean exists = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
292 assertEquals(false, exists);
296 public void audit_Vserver_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
297 doReturn(false).when(aaiResourcesMock).exists(vserverURI);
298 doReturn(false).when(aaiResourcesMock).exists(vserverURI2);
299 boolean exists = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
300 assertEquals(false, exists);
304 public void audit_Vserver_first_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
305 doReturn(false).when(aaiResourcesMock).exists(vserverURI);
306 doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
307 doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
308 doReturn(Optional.of(test_port_2_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
309 boolean exists = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
310 assertEquals(false, exists);
314 public void audit_Vserver_Second_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
315 doReturn(true).when(aaiResourcesMock).exists(vserverURI);
316 doReturn(Optional.of(ssc_1_trusted_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
317 doReturn(Optional.of(ssc_1_avpn_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_avpn_port_0_uri);
318 doReturn(Optional.of(ssc_1_mgmt_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
319 doReturn(Optional.of(ssc_1_mgmt_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
320 doReturn(Optional.of(ssc_1_mis_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mis_port_0_uri);
321 doReturn(Optional.of(ssc_1_int_ha_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
322 doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
323 doReturn(Optional.of(test_port_2_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
324 doReturn(true).when(aaiResourcesMock).exists(mis_sub_1_uri);
325 doReturn(true).when(aaiResourcesMock).exists(avpn_sub_0_uri);
326 doReturn(true).when(aaiResourcesMock).exists(avpn_sub_1_uri);
327 doReturn(false).when(aaiResourcesMock).exists(vserverURI2);
328 boolean exists = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
329 assertEquals(false, exists);