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