d5b529288f7000825ee71e414f8db7eadb934ed9
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / client / aai / mapper / AAIObjectMapperTest.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.aai.mapper;
22
23 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertNotNull;
26 import static org.junit.Assert.assertThat;
27
28 import java.io.IOException;
29 import java.nio.file.Files;
30 import java.nio.file.Paths;
31 import java.util.ArrayList;
32 import java.util.List;
33
34 import org.junit.Test;
35 import org.onap.aai.domain.yang.RouteTargets;
36 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
37 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
38 import org.onap.so.bpmn.servicedecomposition.bbobjects.CtagAssignment;
39 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
40 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
41 import org.onap.so.bpmn.servicedecomposition.bbobjects.HostRoute;
42 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
43 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
44 import org.onap.so.bpmn.servicedecomposition.bbobjects.NetworkPolicy;
45 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
46 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
47 import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTarget;
48 import org.onap.so.bpmn.servicedecomposition.bbobjects.SegmentationAssignment;
49 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
50 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
51 import org.onap.so.bpmn.servicedecomposition.bbobjects.Subnet;
52 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
53 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
54 import org.onap.so.bpmn.servicedecomposition.bbobjects.VpnBinding;
55 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
56 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoConfiguration;
57 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
58 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
59 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
60 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
61 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
62 import org.onap.so.db.catalog.beans.OrchestrationStatus;
63
64 import com.fasterxml.jackson.databind.ObjectMapper;
65 import com.fasterxml.jackson.databind.ObjectWriter;
66
67 public class AAIObjectMapperTest {
68         private AAIObjectMapper aaiObjectMapper = new AAIObjectMapper();
69         private final static String JSON_FILE_LOCATION = "src/test/resources/__files/BuildingBlocks/";
70
71
72         @Test
73         public void mapConfigurationTest() {
74                 Configuration configuration = new Configuration();
75                 configuration.setConfigurationId("configId");
76                 configuration.setConfigurationName("VNR");
77                 configuration.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
78                 configuration.setManagementOption("managementOption");
79                 ModelInfoConfiguration modelInfoConfiguration = new ModelInfoConfiguration();
80                 modelInfoConfiguration.setModelCustomizationId("modelCustId");
81                 modelInfoConfiguration.setModelInvariantId("modelInvariantId");
82                 modelInfoConfiguration.setModelVersionId("modelVersionId");
83                 modelInfoConfiguration.setConfigurationType("5G");
84                 modelInfoConfiguration.setConfigurationRole("ConfigurationRole");
85                 configuration.setModelInfoConfiguration(modelInfoConfiguration);
86
87                 org.onap.aai.domain.yang.Configuration expectedConfiguration = new org.onap.aai.domain.yang.Configuration();
88                 expectedConfiguration.setConfigurationId(configuration.getConfigurationId());
89                 expectedConfiguration.setConfigurationName(configuration.getConfigurationName());
90                 expectedConfiguration.setConfigurationType(configuration.getModelInfoConfiguration().getConfigurationType());
91                 expectedConfiguration.setOrchestrationStatus(configuration.getOrchestrationStatus().toString());
92                 expectedConfiguration.setManagementOption(configuration.getManagementOption());
93                 expectedConfiguration.setModelInvariantId(configuration.getModelInfoConfiguration().getModelInvariantId());
94                 expectedConfiguration.setModelVersionId(configuration.getModelInfoConfiguration().getModelVersionId());
95                 expectedConfiguration.setModelCustomizationId(configuration.getModelInfoConfiguration().getModelCustomizationId());
96                 expectedConfiguration.setConfigurationSubType(configuration.getModelInfoConfiguration().getConfigurationRole());
97                 expectedConfiguration.setConfigPolicyName(configuration.getModelInfoConfiguration().getPolicyName());
98
99                 org.onap.aai.domain.yang.Configuration actualConfiguration = aaiObjectMapper.mapConfiguration(configuration);
100
101                 assertThat(actualConfiguration, sameBeanAs(expectedConfiguration));
102         }
103
104         @Test
105         public void mapVolumeGroupTest() throws Exception {
106                 VolumeGroup volumeGroup = new VolumeGroup();
107                 volumeGroup.setHeatStackId("heatStackId");
108                 volumeGroup.setModelInfoVfModule(new ModelInfoVfModule());
109                 volumeGroup.getModelInfoVfModule().setModelCustomizationUUID("modelCustomizationId");
110                 volumeGroup.setOrchestrationStatus(OrchestrationStatus.ACTIVE);
111                 volumeGroup.setVnfType("vnfType");
112                 volumeGroup.setVolumeGroupId("volumeGroupId");
113                 volumeGroup.setVolumeGroupName("volumeGroupName");
114
115                 org.onap.aai.domain.yang.VolumeGroup expectedVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
116                 expectedVolumeGroup.setHeatStackId(volumeGroup.getHeatStackId());
117                 expectedVolumeGroup.setModelCustomizationId(volumeGroup.getModelInfoVfModule().getModelCustomizationUUID());
118                 expectedVolumeGroup.setOrchestrationStatus(volumeGroup.getOrchestrationStatus().toString());
119                 expectedVolumeGroup.setVfModuleModelCustomizationId(volumeGroup.getModelInfoVfModule().getModelCustomizationUUID());
120                 expectedVolumeGroup.setVnfType(volumeGroup.getVnfType());
121                 expectedVolumeGroup.setVolumeGroupId(volumeGroup.getVolumeGroupId());
122                 expectedVolumeGroup.setVolumeGroupName(volumeGroup.getVolumeGroupName());
123
124                 org.onap.aai.domain.yang.VolumeGroup actualVolumeGroup = aaiObjectMapper.mapVolumeGroup(volumeGroup);
125
126                 assertThat(actualVolumeGroup, sameBeanAs(expectedVolumeGroup));
127         }
128
129         @Test
130         public void serviceInstanceMap() {
131                 ServiceInstance serviceInstance = new ServiceInstance();
132                 serviceInstance.setServiceInstanceId("SIID");
133                 serviceInstance.setServiceInstanceName("SINAME");
134                 serviceInstance.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
135                 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
136                 modelInfoServiceInstance.setServiceType("SITYPE");
137                 modelInfoServiceInstance.setServiceRole("SIROLE");
138                 modelInfoServiceInstance.setModelInvariantUuid("MIUUID");
139                 modelInfoServiceInstance.setModelUuid("MUUID");
140                 modelInfoServiceInstance.setEnvironmentContext("EC");
141                 modelInfoServiceInstance.setWorkloadContext("WC");
142                 serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
143
144                 org.onap.aai.domain.yang.ServiceInstance AAIServiceInstance = aaiObjectMapper.mapServiceInstance(serviceInstance);
145
146                 assertEquals(AAIServiceInstance.getServiceInstanceId(),serviceInstance.getServiceInstanceId());
147                 assertEquals(AAIServiceInstance.getServiceInstanceName(),serviceInstance.getServiceInstanceName());
148                 assertEquals(AAIServiceInstance.getOrchestrationStatus().toString(),serviceInstance.getOrchestrationStatus().toString());
149                 assertEquals(AAIServiceInstance.getServiceType(),serviceInstance.getModelInfoServiceInstance().getServiceType());
150                 assertEquals(AAIServiceInstance.getServiceRole(),serviceInstance.getModelInfoServiceInstance().getServiceRole());
151                 assertEquals(AAIServiceInstance.getModelInvariantId(),serviceInstance.getModelInfoServiceInstance().getModelInvariantUuid());
152                 assertEquals(AAIServiceInstance.getModelVersionId(),serviceInstance.getModelInfoServiceInstance().getModelUuid());
153                 assertEquals(AAIServiceInstance.getEnvironmentContext(),serviceInstance.getModelInfoServiceInstance().getEnvironmentContext());
154                 assertEquals(AAIServiceInstance.getWorkloadContext(),serviceInstance.getModelInfoServiceInstance().getWorkloadContext());
155         }
156
157         @Test
158         public void projectMap(){
159                 Project project = new Project();
160                 project.setProjectName("abc");
161
162                 org.onap.aai.domain.yang.Project AAIProject = aaiObjectMapper.mapProject(project);
163
164                 assertEquals(AAIProject.getProjectName(),project.getProjectName());
165         }
166
167         @Test
168     public void serviceSubscriptionMap(){
169         ServiceSubscription serviceSubscription = new ServiceSubscription();
170         serviceSubscription.setServiceType("IP-FLEX");
171         serviceSubscription.setTempUbSubAccountId("Account-ID");
172         org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionMapped = aaiObjectMapper.mapServiceSubscription(serviceSubscription);
173         assertNotNull(serviceSubscriptionMapped);
174         assertEquals(serviceSubscription.getTempUbSubAccountId(),serviceSubscriptionMapped.getTempUbSubAccountId());
175         assertEquals(serviceSubscription.getServiceType(),serviceSubscriptionMapped.getServiceType());
176     }
177
178         @Test
179         public void owningEntityMap(){
180                 OwningEntity oe = new OwningEntity();
181                 oe.setOwningEntityId("abc");
182                 oe.setOwningEntityName("bbb");
183
184                 org.onap.aai.domain.yang.OwningEntity AAIOwningEntity = aaiObjectMapper.mapOwningEntity(oe);
185
186                 assertEquals(AAIOwningEntity.getOwningEntityId(),oe.getOwningEntityId());
187                 assertEquals(AAIOwningEntity.getOwningEntityName(),oe.getOwningEntityName());
188
189         }
190
191         @Test
192         public void vnfMap(){
193                 GenericVnf vnf = new GenericVnf();
194                 vnf.setVnfId("a");
195                 vnf.setVnfName("b");
196                 vnf.setServiceId("c");
197                 vnf.setVnfType("d");
198                 vnf.setProvStatus("e");
199                 vnf.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
200                 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
201                 modelInfoGenericVnf.setModelCustomizationUuid("f");
202                 modelInfoGenericVnf.setModelInvariantUuid("g");
203                 modelInfoGenericVnf.setModelUuid("h");
204                 modelInfoGenericVnf.setNfRole("i");
205                 modelInfoGenericVnf.setNfType("j");
206                 modelInfoGenericVnf.setNfFunction("k");
207                 modelInfoGenericVnf.setNfNamingCode("l");
208                 vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
209
210                 org.onap.aai.domain.yang.GenericVnf AAIVnf = aaiObjectMapper.mapVnf(vnf);
211
212                 assertEquals(AAIVnf.getVnfId(),vnf.getVnfId());
213                 assertEquals(AAIVnf.getVnfName(),vnf.getVnfName());
214                 assertEquals(AAIVnf.getServiceId(),vnf.getServiceId());
215                 assertEquals(AAIVnf.getVnfType(),vnf.getVnfType());
216                 assertEquals(AAIVnf.getProvStatus(),vnf.getProvStatus());
217                 assertEquals(AAIVnf.getOrchestrationStatus().toString(),vnf.getOrchestrationStatus().toString());
218                 assertEquals(AAIVnf.getModelCustomizationId(),vnf.getModelInfoGenericVnf().getModelCustomizationUuid());
219                 assertEquals(AAIVnf.getModelInvariantId(),vnf.getModelInfoGenericVnf().getModelInvariantUuid());
220                 assertEquals(AAIVnf.getModelVersionId(),vnf.getModelInfoGenericVnf().getModelUuid());
221                 assertEquals(AAIVnf.getModelVersionId(),vnf.getModelInfoGenericVnf().getModelUuid());
222                 assertEquals(AAIVnf.getNfType(),vnf.getModelInfoGenericVnf().getNfType());
223                 assertEquals(AAIVnf.getNfFunction(),vnf.getModelInfoGenericVnf().getNfFunction());
224                 assertEquals(AAIVnf.getNfNamingCode(),vnf.getModelInfoGenericVnf().getNfNamingCode());
225         }
226
227         @Test
228         public void vfModuleMap() throws Exception {
229                 VfModule vfModule = new VfModule();
230                 vfModule.setVfModuleId("a");
231                 vfModule.setVfModuleName("b");
232                 vfModule.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
233                 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
234                 modelInfoVfModule.setModelCustomizationUUID("f");
235                 modelInfoVfModule.setModelInvariantUUID("g");
236                 modelInfoVfModule.setModelUUID("h");
237                 modelInfoVfModule.setIsBaseBoolean(false);
238                 vfModule.setModelInfoVfModule(modelInfoVfModule);
239
240                 org.onap.aai.domain.yang.VfModule AAIVfModule = aaiObjectMapper.mapVfModule(vfModule);
241
242                 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiVfModuleMap.json")));
243
244                 ObjectMapper omapper = new ObjectMapper();
245                 org.onap.aai.domain.yang.VfModule reqMapper1 = omapper.readValue(
246                                 jsonToCompare,
247                                 org.onap.aai.domain.yang.VfModule.class);
248
249                 assertThat(reqMapper1, sameBeanAs(AAIVfModule));
250
251         }
252         
253         @Test
254         public void vfModuleBaseMap() throws Exception {
255                 VfModule vfModule = new VfModule();
256                 vfModule.setVfModuleId("a");
257                 vfModule.setVfModuleName("b");
258                 vfModule.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
259                 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
260                 modelInfoVfModule.setModelCustomizationUUID("f");
261                 modelInfoVfModule.setModelInvariantUUID("g");
262                 modelInfoVfModule.setModelUUID("h");
263                 modelInfoVfModule.setIsBaseBoolean(true);
264                 vfModule.setModelInfoVfModule(modelInfoVfModule);
265
266                 org.onap.aai.domain.yang.VfModule AAIVfModule = aaiObjectMapper.mapVfModule(vfModule);
267
268                 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiVfModuleBaseMap.json")));
269
270                 ObjectMapper omapper = new ObjectMapper();
271                 org.onap.aai.domain.yang.VfModule reqMapper1 = omapper.readValue(
272                                 jsonToCompare,
273                                 org.onap.aai.domain.yang.VfModule.class);
274
275                 assertThat(reqMapper1, sameBeanAs(AAIVfModule));
276
277         }
278
279         @Test
280         public void testMapInstanceGroup() {
281                 InstanceGroup instanceGroup = new InstanceGroup();
282                 instanceGroup.setId("test-id");
283                 instanceGroup.setDescription("test-description");
284                 instanceGroup.setInstanceGroupName("test-instanceGroupName");
285                 instanceGroup.setResourceVersion("test-resourceVersion");
286
287                 ModelInfoInstanceGroup model = new ModelInfoInstanceGroup();
288                 model.setFunction("test-function");
289                 model.setInstanceGroupRole("SUB-INTERFACE");
290                 model.setType("VNFC");
291                 model.setModelInvariantUUID("modelInvariantUUID-000");
292                 model.setModelUUID("modelUUID-000");
293                 model.setDescription("test-description");
294                 model.setInstanceGroupRole("SUB-INTERFACE");
295
296                 instanceGroup.setModelInfoInstanceGroup(model);
297
298
299                 org.onap.aai.domain.yang.InstanceGroup aaiInstanceGroup = aaiObjectMapper.mapInstanceGroup(instanceGroup);
300
301                 try {
302                         com.fasterxml.jackson.databind.ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper();
303                         String json = mapper.writeValueAsString(aaiInstanceGroup);
304                         System.out.println("GGG - json:\n" + json);
305
306                 }
307                 catch(Exception e) {
308                         e.printStackTrace();
309                 }
310
311                 assertEquals(aaiInstanceGroup.getId(), instanceGroup.getId());
312                 assertEquals(aaiInstanceGroup.getDescription(), instanceGroup.getDescription());
313                 assertEquals(aaiInstanceGroup.getInstanceGroupRole(), instanceGroup.getModelInfoInstanceGroup().getInstanceGroupRole());
314                 assertEquals(aaiInstanceGroup.getModelInvariantId(), instanceGroup.getModelInfoInstanceGroup().getModelInvariantUUID());
315                 assertEquals(aaiInstanceGroup.getModelVersionId(), instanceGroup.getModelInfoInstanceGroup().getModelUUID());
316                 assertEquals(aaiInstanceGroup.getResourceVersion(), instanceGroup.getResourceVersion());
317                 assertEquals(aaiInstanceGroup.getInstanceGroupType(), instanceGroup.getModelInfoInstanceGroup().getType());
318                 assertEquals(aaiInstanceGroup.getInstanceGroupRole(), instanceGroup.getModelInfoInstanceGroup().getInstanceGroupRole());
319         }
320
321         @Test
322         public void mapCustomerTest() {
323                 Customer customer = new Customer();
324                 customer.setGlobalCustomerId("globalCustomerId");
325                 customer.setSubscriberName("subscriberName");
326                 customer.setSubscriberType("subscriberType");
327
328                 org.onap.aai.domain.yang.Customer expectedCustomer = new org.onap.aai.domain.yang.Customer();
329                 expectedCustomer.setGlobalCustomerId("globalCustomerId");
330                 expectedCustomer.setSubscriberName("subscriberName");
331                 expectedCustomer.setSubscriberType("subscriberType");
332
333                 org.onap.aai.domain.yang.Customer actualCustomer = aaiObjectMapper.mapCustomer(customer);
334
335                 assertThat(actualCustomer, sameBeanAs(expectedCustomer));
336         }
337
338         @Test
339         public void networkMap() throws Exception {
340                 L3Network l3Network = new L3Network();
341                 l3Network.setNetworkId("networkId");
342                 l3Network.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
343                 l3Network.setNetworkName("networkName");
344                 l3Network.setNetworkRole("networkRole");
345                 l3Network.setNetworkTechnology("networkTechnology");
346                 l3Network.setNeutronNetworkId("neutronNetworkId");
347                 l3Network.setNetworkRoleInstance(0L);
348                 l3Network.setContrailNetworkFqdn("contrailNetworkFqdn");
349                 l3Network.setIsBoundToVpn(false);
350                 l3Network.setIsCascaded(false);
351                 l3Network.setIsSharedNetwork(false);
352                 l3Network.setHeatStackId("heatStackId");
353                 l3Network.setOperationalStatus("operationalStatus");
354                 l3Network.setPhysicalNetworkName("physicalNetworkName");
355                 l3Network.setIsProviderNetwork(false);
356                 l3Network.setSelflink("selflink");
357                 l3Network.setServiceId("serviceId");
358
359                 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
360                 modelInfoNetwork.setModelCustomizationUUID("modelCustomizationUUID");
361                 modelInfoNetwork.setModelInvariantUUID("modelInvariantUUID");
362                 modelInfoNetwork.setModelUUID("modelUUID");
363
364                 l3Network.setModelInfoNetwork(modelInfoNetwork);
365
366                 org.onap.aai.domain.yang.L3Network aaiL3Network = aaiObjectMapper.mapNetwork(l3Network);
367
368                 ObjectMapper omapper = new ObjectMapper();
369                 org.onap.aai.domain.yang.L3Network network = omapper.readValue(
370                                 getJson("aaiL3NetworkMapped.json"),
371                                 org.onap.aai.domain.yang.L3Network.class);
372
373                 com.shazam.shazamcrest.MatcherAssert.assertThat(aaiL3Network, sameBeanAs(network));
374
375         }
376
377         @Test
378         public void mapCollectionTest() {
379                 Collection networkCollection = new Collection();
380                 networkCollection.setId("networkCollectionId");
381                 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
382                 modelInfoCollection.setCollectionFunction("networkCollectionFunction");
383                 modelInfoCollection.setCollectionRole("networkCollectionRole");
384                 modelInfoCollection.setCollectionType("networkCollectionType");
385                 modelInfoCollection.setModelCustomizationUUID("modelCustomizationUUID");
386                 modelInfoCollection.setModelVersionId("modelVersionId");
387                 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
388                 networkCollection.setModelInfoCollection(modelInfoCollection);
389                 networkCollection.setName("networkCollectionName");
390
391                 org.onap.aai.domain.yang.Collection expectedCollection = new org.onap.aai.domain.yang.Collection();
392                 expectedCollection.setCollectionId("networkCollectionId");
393                 expectedCollection.setCollectionType("networkCollectionType");
394                 expectedCollection.setCollectionCustomizationId("modelCustomizationUUID");
395                 expectedCollection.setModelVersionId("modelVersionId");
396                 expectedCollection.setModelInvariantId("modelInvariantUUID");
397                 expectedCollection.setCollectionFunction("networkCollectionFunction");
398                 expectedCollection.setCollectionRole("networkCollectionRole");
399                 expectedCollection.setCollectionName("networkCollectionName");
400
401                 org.onap.aai.domain.yang.Collection actualCollection = aaiObjectMapper.mapCollection(networkCollection);
402
403                 assertThat(actualCollection, sameBeanAs(expectedCollection));
404         }
405
406         /*
407          * Helper method to load JSON data
408          */
409         private String getJson(String filename) throws IOException {
410                 return new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + filename)));
411         }
412
413         @Test
414         public void mapNetworkTest() throws Exception {
415                 L3Network l3Network = new L3Network();
416                 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
417                 modelInfoNetwork.setModelCustomizationUUID("modelCustomization_id");
418                 modelInfoNetwork.setModelInvariantUUID("modelInvariant_id");
419                 modelInfoNetwork.setModelUUID("modelCustomization_id");
420                 modelInfoNetwork.setNetworkType("CONTRAIL_EXTERNAL");
421                 modelInfoNetwork.setNetworkRole("dmz_direct");
422                 modelInfoNetwork.setNetworkTechnology("contrail");
423                 l3Network.setModelInfoNetwork(modelInfoNetwork);
424                 l3Network.setNetworkId("TESTING_ID");
425                 l3Network.setNetworkName("TESTING_NAME");
426                 l3Network.setIsBoundToVpn(true);
427                 l3Network.setServiceId("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
428                 l3Network.setNetworkRoleInstance(1L);
429                 l3Network.setOrchestrationStatus(OrchestrationStatus.CREATED);
430                 l3Network.setHeatStackId("heatStack_id");
431                 l3Network.setContrailNetworkFqdn("contrailNetwork_fqdn");
432                 l3Network.setWidgetModelId("widgetModel_id");
433                 l3Network.setWidgetModelVersion("widgetModel_version");
434                 l3Network.setPhysicalNetworkName("physicalNetwork_name");
435                 l3Network.setIsProviderNetwork(true);
436                 l3Network.setIsSharedNetwork(false);
437                 l3Network.setIsExternalNetwork(true);
438                 l3Network.setSelflink("self_link");
439                 l3Network.setOperationalStatus("operationalStatus");
440
441                 List<Subnet> subnets = new ArrayList<Subnet>();
442                 Subnet subnet1 = new Subnet();
443                 subnet1.setSubnetId("57e9a1ff-d14f-4071-a828-b19ae98eb2fc");
444                 subnet1.setSubnetName("subnetName");
445                 subnet1.setGatewayAddress("192.168.52.1");
446                 subnet1.setNetworkStartAddress("192.168.52.0");
447                 subnet1.setCidrMask("24");
448                 subnet1.setIpVersion("4");
449                 subnet1.setOrchestrationStatus(OrchestrationStatus.CREATED);
450                 subnet1.setIpAssignmentDirection("true");
451                 subnet1.setDhcpEnabled(true);
452                 subnet1.setDhcpStart("dhcpStart");
453                 subnet1.setDhcpEnd("dhcpEnd");
454                 subnet1.setSubnetRole("subnetRole");
455                 subnet1.setIpAssignmentDirection("true");
456                 subnet1.setSubnetSequence(new Integer(3));
457
458                 List<HostRoute> hostRoutes = new ArrayList<HostRoute>();
459                 HostRoute hostRoute1 = new HostRoute();
460                 hostRoute1.setHostRouteId("string");
461                 hostRoute1.setRoutePrefix("192.10.16.0/24");
462                 hostRoute1.setNextHop("192.10.16.100/24");
463                 hostRoute1.setNextHopType("ip-address");
464                 HostRoute hostRoute2 = new HostRoute();
465                 hostRoute2.setHostRouteId("string");
466                 hostRoute2.setRoutePrefix("192.110.17.0/24");
467                 hostRoute2.setNextHop("192.110.17.110/24");
468                 hostRoute2.setNextHopType("ip-address");
469                 hostRoutes.add(hostRoute1);
470                 hostRoutes.add(hostRoute2);
471                 subnet1.getHostRoutes().addAll(hostRoutes);
472
473                 subnets.add(subnet1);
474                 subnets.add(subnet1);
475                 l3Network.getSubnets().addAll(subnets);
476
477                 List<CtagAssignment> ctagAssignments = new ArrayList<CtagAssignment>();
478                 CtagAssignment ctagAssignment1 = new CtagAssignment();
479                 ctagAssignment1.setVlanIdInner(1L);
480                 ctagAssignments.add(ctagAssignment1);
481                 l3Network.getCtagAssignments().addAll(ctagAssignments);
482
483                 List<SegmentationAssignment> segmentationAssignments = new ArrayList<SegmentationAssignment>();
484                 SegmentationAssignment segmentationAssignment1 = new SegmentationAssignment();
485                 segmentationAssignment1.setSegmentationId("segmentationId1");
486                 SegmentationAssignment segmentationAssignment2 = new SegmentationAssignment();
487                 segmentationAssignment2.setSegmentationId("segmentationId2");
488                 segmentationAssignments.add(segmentationAssignment1);
489                 segmentationAssignments.add(segmentationAssignment2);
490                 l3Network.getSegmentationAssignments().addAll(segmentationAssignments);
491
492                 AAIObjectMapper l3NetworkMapper = new AAIObjectMapper();
493                 org.onap.aai.domain.yang.L3Network v12L3Network = l3NetworkMapper.mapNetwork(l3Network);
494
495                 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiL3NetworkMapped_to_aai.json")));
496                 ObjectMapper omapper = new ObjectMapper();
497                 org.onap.aai.domain.yang.L3Network network = omapper.readValue(jsonToCompare,
498                                 org.onap.aai.domain.yang.L3Network.class);
499
500                 ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
501                 String jsonGenerated = ow.writeValueAsString(v12L3Network);
502                 String jsonExpected = ow.writeValueAsString(network);
503                 assertEquals(jsonExpected, jsonGenerated);
504
505         }
506
507         @Test
508         public void mapToAAISubNetsTest() throws Exception {
509                 List<Subnet> subnets = new ArrayList<Subnet>();
510                 Subnet subnet1 = new Subnet();
511                 subnet1.setSubnetId("57e9a1ff-d14f-4071-a828-b19ae98eb2fc");
512                 subnet1.setSubnetName("subnetName");
513                 subnet1.setGatewayAddress("192.168.52.1");
514                 subnet1.setNetworkStartAddress("192.168.52.0");
515                 subnet1.setCidrMask("24");
516                 subnet1.setIpVersion("4");
517                 subnet1.setOrchestrationStatus(OrchestrationStatus.CREATED);
518                 subnet1.setIpAssignmentDirection("true");
519                 subnet1.setDhcpEnabled(true);
520                 subnet1.setDhcpStart("dhcpStart");
521                 subnet1.setDhcpEnd("dhcpEnd");
522                 subnet1.setSubnetRole("subnetRole");
523                 subnet1.setIpAssignmentDirection("true");
524                 subnet1.setSubnetSequence(new Integer(3));
525
526                 List<HostRoute> hostRoutes = new ArrayList<HostRoute>();
527                 HostRoute hostRoute1 = new HostRoute();
528                 hostRoute1.setHostRouteId("string");
529                 hostRoute1.setRoutePrefix("192.10.16.0/24");
530                 hostRoute1.setNextHop("192.10.16.100/24");
531                 hostRoute1.setNextHopType("ip-address");
532                 HostRoute hostRoute2 = new HostRoute();
533                 hostRoute2.setHostRouteId("string");
534                 hostRoute2.setRoutePrefix("192.110.17.0/24");
535                 hostRoute2.setNextHop("192.110.17.110/24");
536                 hostRoute2.setNextHopType("ip-address");
537                 hostRoutes.add(hostRoute1);
538                 hostRoutes.add(hostRoute2);
539                 subnet1.getHostRoutes().addAll(hostRoutes);
540
541                 subnets.add(subnet1);
542                 subnets.add(subnet1);
543
544                 AAIObjectMapper aaiObjectMapper = new AAIObjectMapper();
545                 org.onap.aai.domain.yang.Subnets v12Subnets = aaiObjectMapper.mapToAAISubNets(subnets);
546
547                 assertEquals(subnets.get(0).getDhcpEnd(), v12Subnets.getSubnet().get(0).getDhcpEnd());
548                 assertEquals(subnets.get(0).getCidrMask(), v12Subnets.getSubnet().get(0).getCidrMask());
549
550                 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiSubnetsMapped_to_aai.json")));
551                 ObjectMapper omapper = new ObjectMapper();
552                 org.onap.aai.domain.yang.Subnets subnet = omapper.readValue(jsonToCompare,
553                                 org.onap.aai.domain.yang.Subnets.class);
554                 ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
555                 String jsonGenerated = ow.writeValueAsString(v12Subnets);
556                 String jsonExpected = ow.writeValueAsString(subnet);
557                 assertEquals(jsonExpected, jsonGenerated);
558         }
559
560         @Test
561         public void mapToAAICtagAssignmentListTest() throws Exception {
562                 List<CtagAssignment> ctagAssignments = new ArrayList<CtagAssignment>();
563                 CtagAssignment ctagAssignment1 = new CtagAssignment();
564                 ctagAssignment1.setVlanIdInner(1L);
565                 ctagAssignments.add(ctagAssignment1);
566
567                 AAIObjectMapper aaiObjectMapper = new AAIObjectMapper();
568                 org.onap.aai.domain.yang.CtagAssignments v12CtagAssingments = aaiObjectMapper.mapToAAICtagAssignmentList(ctagAssignments);
569
570                 assertEquals(new Long(ctagAssignments.get(0).getVlanIdInner().longValue()), new Long(v12CtagAssingments.getCtagAssignment().get(0).getVlanIdInner()));
571
572                 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiCtagAssingmentsMapped_to_aai.json")));
573                 ObjectMapper omapper = new ObjectMapper();
574                 org.onap.aai.domain.yang.CtagAssignments ctagAssignment = omapper.readValue(jsonToCompare,
575                                 org.onap.aai.domain.yang.CtagAssignments.class);
576                 ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
577                 String jsonGenerated = ow.writeValueAsString(v12CtagAssingments);
578                 String jsonExpected = ow.writeValueAsString(ctagAssignment);
579                 assertEquals(jsonExpected, jsonGenerated);
580         }
581
582         @Test
583         public void mapToAAISegmentationAssignmentListTest() throws Exception {
584                 List<SegmentationAssignment> segmentationAssignments = new ArrayList<SegmentationAssignment>();
585                 SegmentationAssignment segmentationAssignment1 = new SegmentationAssignment();
586                 segmentationAssignment1.setSegmentationId("segmentationId1");
587                 SegmentationAssignment segmentationAssignment2 = new SegmentationAssignment();
588                 segmentationAssignment2.setSegmentationId("segmentationId2");
589                 segmentationAssignments.add(segmentationAssignment1);
590                 segmentationAssignments.add(segmentationAssignment2);
591
592                 AAIObjectMapper aaiObjectMapper = new AAIObjectMapper();
593                 org.onap.aai.domain.yang.SegmentationAssignments v12SegmentationAssignments = aaiObjectMapper.mapToAAISegmentationAssignmentList(segmentationAssignments);
594
595                 assertEquals(segmentationAssignments.get(0).getSegmentationId(), v12SegmentationAssignments.getSegmentationAssignment().get(0).getSegmentationId());
596                 assertEquals(segmentationAssignments.get(1).getSegmentationId(), v12SegmentationAssignments.getSegmentationAssignment().get(1).getSegmentationId());
597
598                 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiSegmentationAssignmentsMapped_to_aai.json")));
599                 ObjectMapper omapper = new ObjectMapper();
600                 org.onap.aai.domain.yang.SegmentationAssignments segmentationAssignment = omapper.readValue(jsonToCompare,
601                                 org.onap.aai.domain.yang.SegmentationAssignments.class);
602                 ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
603                 String jsonGenerated = ow.writeValueAsString(v12SegmentationAssignments);
604                 String jsonExpected = ow.writeValueAsString(segmentationAssignment);
605                 assertEquals(jsonExpected, jsonGenerated);
606
607         }
608
609     @Test
610     public void mapVpnBindingTest() {
611             VpnBinding vpnBinding = new VpnBinding();
612             vpnBinding.setVpnId("testVpnId");
613             vpnBinding.setVpnName("testVpn");
614             vpnBinding.setVpnPlatform("AVPN");
615             vpnBinding.setCustomerVpnId("testCustomerVpnId");
616             vpnBinding.setVpnType("testVpnType");
617             vpnBinding.setVpnRegion("testVpnRegion");
618             vpnBinding.setRouteDistinguisher("testRD");
619         RouteTarget routeTarget = new RouteTarget();
620         routeTarget.setRouteTargetRole("testRtRole");
621         routeTarget.setGlobalRouteTarget("testGrt");
622         vpnBinding.getRouteTargets().add(routeTarget);
623
624
625         org.onap.aai.domain.yang.VpnBinding expectedVpnBinding = new org.onap.aai.domain.yang.VpnBinding();
626         expectedVpnBinding.setVpnId("testVpnId");
627         expectedVpnBinding.setVpnName("testVpn");
628         expectedVpnBinding.setVpnPlatform("AVPN");
629         expectedVpnBinding.setCustomerVpnId("testCustomerVpnId");
630         expectedVpnBinding.setVpnType("testVpnType");
631         expectedVpnBinding.setVpnRegion("testVpnRegion");
632         expectedVpnBinding.setRouteDistinguisher("testRD");
633
634         org.onap.aai.domain.yang.RouteTarget expectedRouteTarget = new org.onap.aai.domain.yang.RouteTarget();
635         expectedRouteTarget.setRouteTargetRole("testRtRole");
636         expectedRouteTarget.setGlobalRouteTarget("testGrt");
637
638         RouteTargets expectedRouteTargets = new RouteTargets();
639         expectedRouteTargets.getRouteTarget().add(expectedRouteTarget);
640
641         expectedVpnBinding.setRouteTargets(expectedRouteTargets);
642
643         org.onap.aai.domain.yang.VpnBinding actualVpnBinding = aaiObjectMapper.mapVpnBinding(vpnBinding);
644
645         assertThat(actualVpnBinding, sameBeanAs(expectedVpnBinding));
646     }
647
648     @Test
649     public void mapRouteTargetTest() {
650         RouteTarget routeTarget = new RouteTarget();
651         routeTarget.setRouteTargetRole("testRtRole");
652         routeTarget.setGlobalRouteTarget("testGrt");
653
654         org.onap.aai.domain.yang.RouteTarget expectedRouteTarget = new org.onap.aai.domain.yang.RouteTarget();
655         expectedRouteTarget.setRouteTargetRole("testRtRole");
656         expectedRouteTarget.setGlobalRouteTarget("testGrt");
657
658         org.onap.aai.domain.yang.RouteTarget actualRouteTarget = aaiObjectMapper.mapRouteTarget(routeTarget);
659
660         assertThat(actualRouteTarget, sameBeanAs(expectedRouteTarget));
661     }
662     
663     @Test
664     public void mapSubnetTest() {
665         Subnet subnet = new Subnet();
666         subnet.setSubnetId("testSubnetId");
667         subnet.setOrchestrationStatus(OrchestrationStatus.PENDING);
668         subnet.setNeutronSubnetId("testNeutronSubnetId");
669
670         org.onap.aai.domain.yang.Subnet expectedSubnet = new org.onap.aai.domain.yang.Subnet();
671         expectedSubnet.setSubnetId("testSubnetId");
672         expectedSubnet.setOrchestrationStatus("Pending");
673         expectedSubnet.setNeutronSubnetId("testNeutronSubnetId");
674         
675         org.onap.aai.domain.yang.Subnet actualSubnet = aaiObjectMapper.mapSubnet(subnet);
676
677         assertThat(actualSubnet, sameBeanAs(expectedSubnet));
678     }
679     
680     @Test
681     public void mapNetworkPolicyTest() {
682         NetworkPolicy networkPolicy = new NetworkPolicy();
683         networkPolicy.setNetworkPolicyId("testNetworkPolicyId");
684         networkPolicy.setNetworkPolicyFqdn("testNetworkPolicyFqdn");
685         networkPolicy.setHeatStackId("testHeatStackId");        
686
687         org.onap.aai.domain.yang.NetworkPolicy expectedNetworkPolicy = new org.onap.aai.domain.yang.NetworkPolicy();
688         expectedNetworkPolicy.setNetworkPolicyId("testNetworkPolicyId");
689         expectedNetworkPolicy.setNetworkPolicyFqdn("testNetworkPolicyFqdn");
690         expectedNetworkPolicy.setHeatStackId("testHeatStackId");        
691         
692         org.onap.aai.domain.yang.NetworkPolicy actualNetworkPolicy = aaiObjectMapper.mapNetworkPolicy(networkPolicy);
693
694         assertThat(actualNetworkPolicy, sameBeanAs(expectedNetworkPolicy));
695     }
696 }