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