Springboot 2.0 upgrade
[so.git] / bpmn / MSOCommonBPMN / src / test / java / org / onap / so / BuildingBlockTestDataSetup.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 package org.onap.so;
21
22 import static org.mockito.Mockito.doReturn;
23 import static org.mockito.Mockito.mock;
24
25 import java.util.ArrayList;
26 import java.util.HashMap;
27 import java.util.List;
28 import java.util.Map;
29 import java.util.UUID;
30
31 import org.assertj.core.util.Arrays;
32 import org.camunda.bpm.engine.delegate.DelegateExecution;
33 import org.camunda.bpm.engine.impl.pvm.runtime.ExecutionImpl;
34 import org.junit.Before;
35 import org.junit.Rule;
36 import org.junit.rules.ExpectedException;
37 import org.onap.so.bpmn.common.BuildingBlockExecution;
38 import org.onap.so.bpmn.common.DelegateExecutionImpl;
39 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
40 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
41 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
42 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
43 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
44 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
45 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
46 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
47 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
48 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
49 import org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf;
50 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
51 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
52 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceProxy;
53 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
54 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
55 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
56 import org.onap.so.bpmn.servicedecomposition.bbobjects.VpnBinding;
57 import org.onap.so.bpmn.servicedecomposition.bbobjects.VpnBondingLink;
58 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
59 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
60 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
61 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
62 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestParameters;
63 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoConfiguration;
64 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
65 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
66 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
67 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
68 import org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB;
69 import org.onap.so.client.exception.BBObjectNotFoundException;
70 import org.onap.so.bpmn.servicedecomposition.bbobjects.AllottedResource;
71 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoAllottedResource;
72 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceProxy;
73
74 public class BuildingBlockTestDataSetup{
75         private int collectionCounter;
76         private int configurationCounter;
77         private int customerCounter;
78         private int genericVnfCounter;
79         private int instanceGroupCounter;
80         private int l3NetworkCounter;
81         private int owningEntityCounter;
82         private int pnfCounter;
83         private int projectCounter;
84         private int serviceInstanceCounter;
85         private int serviceProxyCounter;
86         private int serviceSubscriptionCounter;
87         private int vfModuleCounter;
88         private int volumeGroupCounter;
89         private int vpnBindingCounter;
90         private int vpnBondingLinkCounter;
91
92         protected BuildingBlockExecution execution;
93
94         protected GeneralBuildingBlock gBBInput;
95
96         protected HashMap<ResourceKey, String> lookupKeyMap;
97
98         protected ExtractPojosForBB extractPojosForBB = new ExtractPojosForBB();
99
100         @Rule
101         public ExpectedException expectedException = ExpectedException.none();
102
103         protected DelegateExecution delegateExecution;
104
105         @Before
106         public void buildingBlockTestDataSetupBefore() {
107                 collectionCounter = 0;
108                 configurationCounter = 0;
109                 customerCounter = 0;
110                 genericVnfCounter = 0;
111                 instanceGroupCounter = 0;
112                 l3NetworkCounter = 0;
113                 owningEntityCounter = 0;
114                 pnfCounter = 0;
115                 projectCounter = 0;
116                 serviceInstanceCounter = 0;
117                 serviceProxyCounter = 0;
118                 serviceSubscriptionCounter = 0;
119                 vfModuleCounter = 0;
120                 volumeGroupCounter = 0;
121                 vpnBindingCounter = 0;
122                 vpnBondingLinkCounter = 0;
123
124                 execution = new DelegateExecutionImpl(new ExecutionImpl());
125                 execution.setVariable("testProcessKey", "testProcessKeyValue");
126
127                 gBBInput = new GeneralBuildingBlock();
128                 execution.setVariable("gBBInput", gBBInput);
129
130                 lookupKeyMap = new HashMap<ResourceKey, String>();
131                 execution.setVariable("lookupKeyMap", lookupKeyMap);
132
133             ExecutionImpl mockExecutionImpl = mock(ExecutionImpl.class);
134         doReturn("test").when(mockExecutionImpl).getProcessInstanceId();
135
136         ExecutionImpl executionImpl = new ExecutionImpl();
137         executionImpl.setProcessInstance(mockExecutionImpl);
138
139         delegateExecution = (DelegateExecution) executionImpl;
140         delegateExecution.setVariable("testProcessKey", "testProcessKeyValue");
141         }
142
143         public Map<String, String> buildUserInput() {
144                 Map<String, String> userInput = new HashMap<>();
145                 userInput.put("testUserInputKey", "testUserInputValue");
146
147                 return userInput;
148         }
149
150         public Map<String, String> setUserInput() {
151                 Map<String, String> userInput = buildUserInput();
152
153                 gBBInput.setUserInput(userInput);
154
155                 return userInput;
156         }
157
158         public RequestContext buildRequestContext() {
159                 RequestContext requestContext = new RequestContext();
160                 requestContext.setMsoRequestId(UUID.randomUUID().toString());
161                 requestContext.setProductFamilyId("testProductFamilyId");
162                 requestContext.setRequestorId("testRequestorId");
163
164                 requestContext.setUserParams(new HashMap<>());
165
166         Map<String,Object> dataMap = new HashMap<>();
167         dataMap.put("vpnId","testVpnId");
168         dataMap.put("vpnRegion","testVpnRegion");
169         dataMap.put("vpnRt","testVpnRt");
170         dataMap.put("vpnName","vpnName");
171         ArrayList<String> vpnRegions = new ArrayList<String>();
172         vpnRegions.add("USA");
173         vpnRegions.add("EMEA");
174         vpnRegions.add("APAC");
175         dataMap.put("vpnRegion", vpnRegions);
176
177         HashMap<String,Object> userParams = new HashMap<>();
178         userParams.put("vpnData",dataMap);
179
180                 List<Map<String,Object>> userParamsList = new ArrayList<>();
181                 userParamsList.add(userParams);
182
183                 RequestParameters requestParameters = new RequestParameters();
184                 requestParameters.setUserParams(userParamsList);
185                 requestContext.setRequestParameters(requestParameters);
186
187                 return requestContext;
188         }
189
190         public RequestContext setRequestContext() {
191                 RequestContext requestContext = buildRequestContext();
192
193                 gBBInput.setRequestContext(requestContext);
194
195                 return requestContext;
196         }
197
198         public CloudRegion buildCloudRegion() {
199                 CloudRegion cloudRegion = new CloudRegion();
200                 cloudRegion.setLcpCloudRegionId("testLcpCloudRegionId");
201                 cloudRegion.setTenantId("testTenantId");
202                 cloudRegion.setCloudOwner("testCloudOwner");
203
204                 return cloudRegion;
205         }
206
207         public CloudRegion setCloudRegion() {
208                 CloudRegion cloudRegion = buildCloudRegion();
209
210                 gBBInput.setCloudRegion(cloudRegion);
211
212                 return cloudRegion;
213         }
214
215         public OrchestrationContext buildOrchestrationContext() {
216                 OrchestrationContext orchestrationContext = new OrchestrationContext();
217
218                 return orchestrationContext;
219         }
220
221         public OrchestrationContext setOrchestrationContext() {
222                 OrchestrationContext orchestrationContext = buildOrchestrationContext();
223
224                 gBBInput.setOrchContext(orchestrationContext);
225
226                 return orchestrationContext;
227         }
228
229         public Collection buildCollection() {
230                 collectionCounter++;
231
232                 Collection collection = new Collection();
233                 collection.setId("testId" + collectionCounter);
234                 collection.setInstanceGroup(buildInstanceGroup());
235
236                 return collection;
237         }
238
239         public Configuration buildConfiguration() {
240                 configurationCounter++;
241
242                 Configuration configuration = new Configuration();
243                 configuration.setConfigurationId("testConfigurationId" + configurationCounter);
244                 configuration.setConfigurationName("testConfigurationName" + configurationCounter);
245
246                 ModelInfoConfiguration modelInfoConfiguration = new ModelInfoConfiguration();
247                 modelInfoConfiguration.setModelVersionId("testModelVersionId" + configurationCounter);
248                 modelInfoConfiguration.setModelInvariantId("testModelInvariantId" + configurationCounter);
249                 modelInfoConfiguration.setModelCustomizationId("testModelCustomizationId" + configurationCounter);
250
251                 configuration.setModelInfoConfiguration(modelInfoConfiguration);
252
253                 return configuration;
254         }
255
256         public OwningEntity buildOwningEntity() {
257                 owningEntityCounter++;
258
259                 OwningEntity owningEntity = new OwningEntity();
260                 owningEntity.setOwningEntityId("testOwningEntityId" + owningEntityCounter);
261                 owningEntity.setOwningEntityName("testOwningEntityName" + owningEntityCounter);
262
263                 return owningEntity;
264         }
265
266         public Project buildProject() {
267                 projectCounter++;
268
269                 Project project = new Project();
270                 project.setProjectName("testProjectName" + projectCounter);
271
272                 return project;
273         }
274
275         public ServiceSubscription buildServiceSubscription() {
276                 serviceSubscriptionCounter++;
277
278                 ServiceSubscription serviceSubscription = new ServiceSubscription();
279                 serviceSubscription.setTempUbSubAccountId("testTempUbSubAccountId" + serviceSubscriptionCounter);
280                 serviceSubscription.setServiceType("testServiceType" + serviceSubscriptionCounter);
281
282                 return serviceSubscription;
283         }
284
285         public Customer buildCustomer() {
286                 customerCounter++;
287
288                 Customer customer = new Customer();
289                 customer.setGlobalCustomerId("testGlobalCustomerId" + customerCounter);
290                 customer.setSubscriberType("testSubscriberType" + customerCounter);
291
292                 customer.setServiceSubscription(buildServiceSubscription());
293                 
294                 return customer;
295         }
296
297         public ServiceInstance buildServiceInstance() {
298                 serviceInstanceCounter++;
299
300                 ServiceInstance serviceInstance = new ServiceInstance();
301                 serviceInstance.setServiceInstanceId("testServiceInstanceId" + serviceInstanceCounter);
302                 serviceInstance.setServiceInstanceName("testServiceInstanceName" + serviceInstanceCounter);
303
304                 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
305                 modelInfoServiceInstance.setModelInvariantUuid("testModelInvariantUUID" + serviceInstanceCounter);
306                 modelInfoServiceInstance.setModelUuid("testModelUUID" + serviceInstanceCounter);
307                 modelInfoServiceInstance.setModelVersion("testModelVersion" + serviceInstanceCounter);
308                 modelInfoServiceInstance.setModelName("testModelName" + serviceInstanceCounter);
309                 modelInfoServiceInstance.setServiceType("testServiceType" + serviceInstanceCounter);
310                 serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
311
312                 serviceInstance.setProject(buildProject());
313
314                 serviceInstance.setOwningEntity(buildOwningEntity());
315
316                 serviceInstance.setCollection(buildCollection());
317
318                 serviceInstance.getConfigurations().add(buildConfiguration());
319
320                 return serviceInstance;
321         }
322
323         public ServiceInstance setServiceInstance() {
324                 ServiceInstance serviceInstance = buildServiceInstance();
325
326                 if(gBBInput.getCustomer() == null) {
327                         gBBInput.setCustomer(buildCustomer());
328                 }
329                 gBBInput.getCustomer().getServiceSubscription().getServiceInstances().add(serviceInstance);
330                 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstance.getServiceInstanceId());
331
332                 return serviceInstance;
333         }
334
335         public Customer setCustomer() {
336                 if(gBBInput.getCustomer() != null) return gBBInput.getCustomer();
337                 Customer customer = new Customer();
338                 customer.setGlobalCustomerId("testGlobalCustomerId");
339                 customer.setSubscriberType("testSubscriberType");
340
341                 customer.setServiceSubscription(buildServiceSubscription());
342
343                 gBBInput.setCustomer(customer);
344                 
345                 return customer;
346         }
347         
348         public Collection setCollection() {
349                 Collection collection = new Collection();
350                 collection.setId("testId");
351                 
352                 ServiceInstance serviceInstance = null;
353                 
354                 try {
355                         serviceInstance = extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID, execution.getLookupMap().get(ResourceKey.SERVICE_INSTANCE_ID));
356                 } catch(BBObjectNotFoundException e) {
357                         serviceInstance = setServiceInstance();
358                 }
359                 
360                 serviceInstance.setCollection(collection);
361                 
362                 return collection;
363         }
364         
365         public InstanceGroup setInstanceGroup() {
366                 InstanceGroup instanceGroup = new InstanceGroup();
367                 instanceGroup.setId("testId");
368                 instanceGroup.setInstanceGroupFunction("testInstanceGroupFunction");
369                 
370                 Collection collection = null;
371                 
372                 try {
373                         ServiceInstance serviceInstance = extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID, execution.getLookupMap().get(ResourceKey.SERVICE_INSTANCE_ID));
374                         collection = serviceInstance.getCollection();
375                         
376                         if (collection == null) {
377                                 collection = setCollection();
378                         }
379                 } catch(BBObjectNotFoundException e) {
380                         collection = setCollection();
381                 }
382                 
383                 collection.setInstanceGroup(instanceGroup);
384                 
385                 return instanceGroup;
386         }
387         
388         public VpnBinding buildVpnBinding() {
389                 vpnBindingCounter++;
390
391                 VpnBinding vpnBinding = new VpnBinding();
392                 vpnBinding.setVpnId("testVpnId" + vpnBindingCounter);
393                 vpnBinding.setVpnName("testVpnName" + vpnBindingCounter);
394                 vpnBinding.setCustomerVpnId("testCustomerVpnId" + vpnBindingCounter);
395
396                 return vpnBinding;
397         }
398
399         public VpnBinding setVpnBinding() {
400                 VpnBinding vpnBinding = buildVpnBinding();
401
402                 Customer customer = gBBInput.getCustomer();
403
404                 if(customer == null){
405                         customer = buildCustomer();
406                 }
407
408                 customer.getVpnBindings().add(vpnBinding);
409                 lookupKeyMap.put(ResourceKey.VPN_ID, vpnBinding.getVpnId());
410
411                 return vpnBinding;
412         }
413
414         public InstanceGroup buildInstanceGroup() {
415                 instanceGroupCounter++;
416
417                 InstanceGroup instanceGroup = new InstanceGroup();
418                 instanceGroup.setId("testId" + instanceGroupCounter);
419                 instanceGroup.setInstanceGroupFunction("testInstanceGroupFunction" + instanceGroupCounter);
420
421                 return instanceGroup;
422         }
423
424         public L3Network buildL3Network() {
425                 l3NetworkCounter++;
426
427                 L3Network network = new L3Network();
428                 network.setNetworkId("testNetworkId" + l3NetworkCounter);
429                 network.setNetworkName("testNetworkName" + l3NetworkCounter);
430                 network.setNetworkType("testNetworkType" + l3NetworkCounter);
431
432                 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
433                 modelInfoNetwork.setModelInvariantUUID("testModelInvariantUUID" + l3NetworkCounter);
434                 modelInfoNetwork.setModelName("testModelName" + l3NetworkCounter);
435                 modelInfoNetwork.setModelVersion("testModelVersion" + l3NetworkCounter);
436                 modelInfoNetwork.setModelUUID("testModelUUID" + l3NetworkCounter);
437                 network.setModelInfoNetwork(modelInfoNetwork);
438
439                 return network;
440         }
441
442         public L3Network setL3Network() {
443                 L3Network network = buildL3Network();
444
445                 ServiceInstance serviceInstance = null;
446
447                 try {
448                         serviceInstance = extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID, execution.getLookupMap().get(ResourceKey.SERVICE_INSTANCE_ID));
449                 } catch(BBObjectNotFoundException e) {
450                         serviceInstance = setServiceInstance();
451                 }
452
453                 serviceInstance.getNetworks().add(network);
454                 lookupKeyMap.put(ResourceKey.NETWORK_ID, network.getNetworkId());
455
456                 return network;
457         }
458
459         public GenericVnf buildGenericVnf() {
460                 genericVnfCounter++;
461
462                 GenericVnf genericVnf = new GenericVnf();
463                 genericVnf.setVnfId("testVnfId" + genericVnfCounter);
464                 genericVnf.setVnfName("testVnfName" + genericVnfCounter);
465                 genericVnf.setVnfType("testVnfType" + genericVnfCounter);
466
467                 Platform platform = new Platform();
468                 platform.setPlatformName("testPlatformName");
469                 genericVnf.setPlatform(platform);
470
471                 LineOfBusiness lob = new LineOfBusiness();
472                 lob.setLineOfBusinessName("testLineOfBusinessName");
473                 genericVnf.setLineOfBusiness(lob);
474
475                 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
476                 modelInfoGenericVnf.setModelName("testModelName" + genericVnfCounter);
477                 modelInfoGenericVnf.setModelCustomizationUuid("testModelCustomizationUUID" + genericVnfCounter);
478                 modelInfoGenericVnf.setModelInvariantUuid("testModelInvariantUUID" + genericVnfCounter);
479                 modelInfoGenericVnf.setModelVersion("testModelVersion" + genericVnfCounter);
480                 modelInfoGenericVnf.setModelUuid("testModelUUID" + genericVnfCounter);
481                 modelInfoGenericVnf.setModelInstanceName("testModelInstanceName" + genericVnfCounter);
482                 genericVnf.setModelInfoGenericVnf(modelInfoGenericVnf);
483
484                 return genericVnf;
485         }
486
487         public GenericVnf setGenericVnf() {
488                 GenericVnf genericVnf = buildGenericVnf();
489
490                 ServiceInstance serviceInstance = null;
491
492                 try {
493                         serviceInstance = extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID, execution.getLookupMap().get(ResourceKey.SERVICE_INSTANCE_ID));
494                 } catch(BBObjectNotFoundException e) {
495                         serviceInstance = setServiceInstance();
496                 }
497
498                 serviceInstance.getVnfs().add(genericVnf);
499                 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, genericVnf.getVnfId());
500
501                 return genericVnf;
502         }
503
504         public VfModule buildVfModule() {
505                 vfModuleCounter++;
506
507                 VfModule vfModule = new VfModule();
508                 vfModule.setVfModuleId("testVfModuleId" + vfModuleCounter);
509                 vfModule.setVfModuleName("testVfModuleName" + vfModuleCounter);
510
511                 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
512                 modelInfoVfModule.setModelInvariantUUID("testModelInvariantUUID" + vfModuleCounter);
513                 modelInfoVfModule.setModelVersion("testModelVersion" + vfModuleCounter);
514                 modelInfoVfModule.setModelUUID("testModelUUID" + vfModuleCounter);
515                 modelInfoVfModule.setModelName("testModelName" + vfModuleCounter);
516                 modelInfoVfModule.setModelCustomizationUUID("testModelCustomizationUUID" + vfModuleCounter);
517                 vfModule.setModelInfoVfModule(modelInfoVfModule);
518
519                 return vfModule;
520         }
521
522         public VfModule setVfModule() {
523                 VfModule vfModule = buildVfModule();
524
525                 GenericVnf genericVnf = null;
526
527                 try {
528                         genericVnf = extractPojosForBB.extractByKey(execution, ResourceKey.GENERIC_VNF_ID, execution.getLookupMap().get(ResourceKey.GENERIC_VNF_ID));
529                 } catch(BBObjectNotFoundException e) {
530                         genericVnf = setGenericVnf();
531                 }
532
533                 genericVnf.getVfModules().add(vfModule);
534                 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, vfModule.getVfModuleId());
535
536                 return vfModule;
537         }
538
539         public VolumeGroup buildVolumeGroup() {
540                 volumeGroupCounter++;
541
542                 VolumeGroup volumeGroup = new VolumeGroup();
543                 volumeGroup.setVolumeGroupId("testVolumeGroupId" + volumeGroupCounter);
544                 volumeGroup.setVolumeGroupName("testVolumeGroupName" + volumeGroupCounter);
545                 volumeGroup.setHeatStackId("testHeatStackId" + volumeGroupCounter);
546
547                 return volumeGroup;
548         }
549
550         public VolumeGroup setVolumeGroup() {
551                 VolumeGroup volumeGroup = buildVolumeGroup();
552
553                 GenericVnf genericVnf = null;
554
555                 try {
556                         genericVnf = extractPojosForBB.extractByKey(execution, ResourceKey.GENERIC_VNF_ID, execution.getLookupMap().get(ResourceKey.GENERIC_VNF_ID));
557                 } catch(BBObjectNotFoundException e) {
558                         genericVnf = setGenericVnf();
559                 }
560
561                 genericVnf.getVolumeGroups().add(volumeGroup);
562                 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, volumeGroup.getVolumeGroupId());
563
564                 return volumeGroup;
565         }
566
567         public Pnf buildPnf() {
568                 pnfCounter++;
569
570                 Pnf pnf = new Pnf();
571                 pnf.setPnfId("testPnfId" + pnfCounter);
572                 pnf.setPnfName("testPnfName" + pnfCounter);
573
574                 return pnf;
575         }
576
577         public ServiceProxy buildServiceProxy() {
578                 serviceProxyCounter++;
579
580         ServiceProxy serviceProxy = new ServiceProxy();
581         serviceProxy.setServiceInstance(buildServiceInstance());
582         serviceProxy.getServiceInstance().getVnfs().add(buildGenericVnf());
583
584         Pnf primaryPnf = buildPnf();
585         primaryPnf.setRole("Primary");
586         serviceProxy.getServiceInstance().getPnfs().add(primaryPnf);
587
588         Pnf secondaryPnf = buildPnf();
589         secondaryPnf.setRole("Secondary");
590         serviceProxy.getServiceInstance().getPnfs().add(secondaryPnf);
591
592         return serviceProxy;
593         }
594
595         public VpnBondingLink buildVpnBondingLink() {
596                 vpnBondingLinkCounter++;
597
598                 VpnBondingLink vpnBondingLink = new VpnBondingLink();
599                 vpnBondingLink.setVpnBondingLinkId("testVpnBondingLinkId" + vpnBondingLinkCounter);
600
601                 Configuration vnrConfiguration = buildConfiguration();
602                 vnrConfiguration.setNetwork(buildL3Network());
603                 vpnBondingLink.setVnrConfiguration(vnrConfiguration);
604
605                 vpnBondingLink.setVrfConfiguration(buildConfiguration());
606
607         vpnBondingLink.setInfrastructureServiceProxy(buildServiceProxy());
608
609         vpnBondingLink.setTransportServiceProxy(buildServiceProxy());
610
611                 return vpnBondingLink;
612         }
613
614         public VpnBondingLink setVpnBondingLink() {
615                 VpnBondingLink vpnBondingLink = buildVpnBondingLink();
616
617                 ServiceInstance serviceInstance = null;
618
619                 try {
620                         serviceInstance = extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID, execution.getLookupMap().get(ResourceKey.SERVICE_INSTANCE_ID));
621                 } catch(BBObjectNotFoundException e) {
622                         serviceInstance = setServiceInstance();
623                 }
624
625                 serviceInstance.getVpnBondingLinks().add(vpnBondingLink);
626                 lookupKeyMap.put(ResourceKey.VPN_BONDING_LINK_ID, vpnBondingLink.getVpnBondingLinkId());
627
628
629                 return vpnBondingLink;
630         }
631
632         public Customer setAvpnCustomer() {
633                 Customer customer = buildCustomer();
634
635                 gBBInput.setCustomer(customer);
636
637                 return customer;
638         }
639
640         public ServiceProxy setServiceProxy(String uniqueIdentifier, String type) {
641                 ServiceProxy serviceProxy = new ServiceProxy();
642                 serviceProxy.setId("testProxyId" + uniqueIdentifier);
643                 serviceProxy.setType(type);
644
645                 ModelInfoServiceProxy modelInfo = new ModelInfoServiceProxy();
646                 modelInfo.setModelInvariantUuid("testProxyModelInvariantUuid" + uniqueIdentifier);
647                 modelInfo.setModelName("testProxyModelName" + uniqueIdentifier);
648                 modelInfo.setModelUuid("testProxyModelUuid" + uniqueIdentifier);
649                 modelInfo.setModelVersion("testProxyModelVersion" + uniqueIdentifier);
650                 modelInfo.setModelInstanceName("testProxyInstanceName" + uniqueIdentifier);
651
652                 serviceProxy.setModelInfoServiceProxy(modelInfo);
653
654                 return serviceProxy;
655         }
656
657         public AllottedResource setAllottedResource(String uniqueIdentifier) {
658                 AllottedResource ar = new AllottedResource();
659                 ar.setId("testAllottedResourceId" + uniqueIdentifier);
660
661                 ModelInfoAllottedResource modelInfo = new ModelInfoAllottedResource();
662                 modelInfo.setModelInvariantUuid("testAllottedModelInvariantUuid" + uniqueIdentifier);
663                 modelInfo.setModelName("testAllottedModelName" + uniqueIdentifier);
664                 modelInfo.setModelUuid("testAllottedModelUuid" + uniqueIdentifier);
665                 modelInfo.setModelVersion("testAllottedModelVersion" + uniqueIdentifier);
666                 modelInfo.setModelInstanceName("testAllottedInstanceName" + uniqueIdentifier);
667                 
668                 ar.setModelInfoAllottedResource(modelInfo);
669                 
670                 return ar;
671         }
672         
673         public Configuration setConfiguration () {
674                 Configuration config = new Configuration();
675                 config.setConfigurationId("testConfigurationId");
676                 ModelInfoConfiguration modelInfoConfig = new ModelInfoConfiguration();
677                 modelInfoConfig.setModelCustomizationId("modelCustomizationId");
678                 modelInfoConfig.setModelVersionId("modelVersionId");
679                 modelInfoConfig.setModelInvariantId("modelInvariantId");
680                 modelInfoConfig.setPolicyName("policyName");
681                 config.setModelInfoConfiguration(modelInfoConfig);
682                 
683                 List<Configuration> configurations = new ArrayList<>();
684                 configurations.add(config);
685                 ServiceInstance serviceInstance = new ServiceInstance();
686                 try {
687                         serviceInstance = extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID, execution.getLookupMap().get(ResourceKey.SERVICE_INSTANCE_ID));
688                 } catch(BBObjectNotFoundException e) {
689                         serviceInstance = setServiceInstance();
690                 }
691                 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "testConfigurationId");
692                 serviceInstance.setConfigurations(configurations);
693                 return config;
694         }
695 }