summaryrefslogtreecommitdiffstats
path: root/bpmn/MSOCommonBPMN/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'bpmn/MSOCommonBPMN/src/test')
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java2
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/BuildingBlockValidatorRunnerTest.java (renamed from bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunnerTest.java)12
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/WorkflowValidatorRunnerTest.java (renamed from bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunnerTest.java)12
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyDisabledValidator.java (renamed from bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyDisabledValidator.java)4
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyPreValidatorFour.java (renamed from bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorFour.java)3
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyPreValidatorOne.java (renamed from bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorOne.java)3
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyPreValidatorThree.java (renamed from bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorThree.java)3
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyPreValidatorTwo.java (renamed from bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorTwo.java)3
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/ValidationConfig.java (renamed from bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/ValidationConfig.java)6
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/WorkflowPreValidatorOne.java (renamed from bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorOne.java)3
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/WorkflowPreValidatorTwo.java (renamed from bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorTwo.java)3
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/InstnaceResourceListTest.java46
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilderTest.java419
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/bbobjects/wrappers/ServiceInstanceWrapperTest.java67
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java8
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java123
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java43
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java89
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/RequestDetailsInput_serviceMacro.json4
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/RequestDetailsInput_serviceMacroVrf.json48
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroNetworks.json2
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroNoCloudConfig.json2
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroVfModules.json2
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroVnfs.json2
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/aaiL3NetworkInputWithSubnets.json73
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/l3NetworkExpectedWithSubnet.json56
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/InstanceResourceList/InstanceResourceList.json175
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/SERVICE-SO-REQ-INPUT.json299
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/UUI-SO-REQ.json1
29 files changed, 1204 insertions, 309 deletions
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java
index 79a94d5298..9e10058ec8 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java
@@ -247,6 +247,7 @@ public class BuildingBlockTestDataSetup {
modelInfoConfiguration.setModelCustomizationId("testModelCustomizationId" + configurationCounter);
configuration.setModelInfoConfiguration(modelInfoConfiguration);
+ configuration.setVpnBinding(buildVpnBinding());
return configuration;
}
@@ -325,6 +326,7 @@ public class BuildingBlockTestDataSetup {
gBBInput.setCustomer(buildCustomer());
}
gBBInput.getCustomer().getServiceSubscription().getServiceInstances().add(serviceInstance);
+ gBBInput.setServiceInstance(serviceInstance);
lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstance.getServiceInstanceId());
return serviceInstance;
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunnerTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/BuildingBlockValidatorRunnerTest.java
index f13bcb8a93..2c0377d11c 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunnerTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/BuildingBlockValidatorRunnerTest.java
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.so.bpmn.common.validation;
+package org.onap.so.bpmn.common.listener;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -34,6 +34,12 @@ import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.onap.so.bpmn.common.BuildingBlockExecution;
import org.onap.so.bpmn.common.DelegateExecutionImpl;
+import org.onap.so.bpmn.common.listener.validation.BuildingBlockValidatorRunner;
+import org.onap.so.bpmn.common.listener.validation.FlowValidator;
+import org.onap.so.bpmn.common.listener.validation.MyPreValidatorOne;
+import org.onap.so.bpmn.common.listener.validation.MyPreValidatorThree;
+import org.onap.so.bpmn.common.listener.validation.MyPreValidatorTwo;
+import org.onap.so.bpmn.common.listener.validation.ValidationConfig;
import org.onap.so.bpmn.core.WorkflowException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
@@ -57,7 +63,7 @@ public class BuildingBlockValidatorRunnerTest {
MyPreValidatorThree three = new MyPreValidatorThree();
List<FlowValidator> validators = Arrays.asList(one, two, three);
- List<FlowValidator> result = runner.filterValidators(validators, "test");
+ List<FlowValidator> result = runner.filterListeners(validators, (item -> item.shouldRunFor("test")));
List<FlowValidator> expected = Arrays.asList(two, one);
@@ -75,7 +81,7 @@ public class BuildingBlockValidatorRunnerTest {
} catch (BpmnError e) {
WorkflowException workflowException = (WorkflowException) execution.getVariable("WorkflowException");
assertEquals(
- "Failed Validations:\norg.onap.so.bpmn.common.validation.MyPreValidatorTwo: my-error-two\norg.onap.so.bpmn.common.validation.MyPreValidatorOne: my-error-one",
+ "Failed Validations:\norg.onap.so.bpmn.common.listener.validation.MyPreValidatorTwo: my-error-two\norg.onap.so.bpmn.common.listener.validation.MyPreValidatorOne: my-error-one",
workflowException.getErrorMessage());
}
runner.preValidate("test2", mock(BuildingBlockExecution.class));
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunnerTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/WorkflowValidatorRunnerTest.java
index 07cd790ed1..0143e567af 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunnerTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/WorkflowValidatorRunnerTest.java
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.so.bpmn.common.validation;
+package org.onap.so.bpmn.common.listener;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -33,7 +33,11 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
-import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.bpmn.common.listener.validation.FlowValidator;
+import org.onap.so.bpmn.common.listener.validation.ValidationConfig;
+import org.onap.so.bpmn.common.listener.validation.WorkflowPreValidatorOne;
+import org.onap.so.bpmn.common.listener.validation.WorkflowPreValidatorTwo;
+import org.onap.so.bpmn.common.listener.validation.WorkflowValidatorRunner;
import org.onap.so.bpmn.core.WorkflowException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
@@ -56,7 +60,7 @@ public class WorkflowValidatorRunnerTest {
WorkflowPreValidatorTwo two = new WorkflowPreValidatorTwo();
List<FlowValidator> validators = Arrays.asList(one, two);
- List<FlowValidator> result = runner.filterValidators(validators, "test");
+ List<FlowValidator> result = runner.filterListeners(validators, (item -> item.shouldRunFor("test")));
List<FlowValidator> expected = Arrays.asList(two, one);
@@ -74,7 +78,7 @@ public class WorkflowValidatorRunnerTest {
} catch (BpmnError e) {
WorkflowException workflowException = (WorkflowException) execution.getVariable("WorkflowException");
assertEquals(
- "Failed Validations:\norg.onap.so.bpmn.common.validation.WorkflowPreValidatorTwo: my-error-two\norg.onap.so.bpmn.common.validation.WorkflowPreValidatorOne: my-error-one",
+ "Failed Validations:\norg.onap.so.bpmn.common.listener.validation.WorkflowPreValidatorTwo: my-error-two\norg.onap.so.bpmn.common.listener.validation.WorkflowPreValidatorOne: my-error-one",
workflowException.getErrorMessage());
}
runner.preValidate("test2", mock(DelegateExecution.class));
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyDisabledValidator.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyDisabledValidator.java
index 7572e930cd..af64ed2de6 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyDisabledValidator.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyDisabledValidator.java
@@ -18,11 +18,13 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.so.bpmn.common.validation;
+package org.onap.so.bpmn.common.listener.validation;
import java.util.Collections;
import java.util.Optional;
import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.bpmn.common.listener.Skip;
+import org.onap.so.bpmn.common.listener.validation.PreBuildingBlockValidator;
import org.springframework.stereotype.Component;
@Component
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorFour.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyPreValidatorFour.java
index 85531719d5..f0f27172a5 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorFour.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyPreValidatorFour.java
@@ -18,12 +18,13 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.so.bpmn.common.validation;
+package org.onap.so.bpmn.common.listener.validation;
import java.util.Collections;
import java.util.Optional;
import java.util.Set;
import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.bpmn.common.listener.validation.PreBuildingBlockValidator;
import org.springframework.stereotype.Component;
@Component
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorOne.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyPreValidatorOne.java
index 989a65fe47..e705bafafe 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorOne.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyPreValidatorOne.java
@@ -18,12 +18,13 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.so.bpmn.common.validation;
+package org.onap.so.bpmn.common.listener.validation;
import java.util.Collections;
import java.util.Optional;
import java.util.Set;
import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.bpmn.common.listener.validation.PreBuildingBlockValidator;
import org.springframework.stereotype.Component;
@Component
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorThree.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyPreValidatorThree.java
index a51d3836da..3c747dd20f 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorThree.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyPreValidatorThree.java
@@ -18,12 +18,13 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.so.bpmn.common.validation;
+package org.onap.so.bpmn.common.listener.validation;
import java.util.Collections;
import java.util.Optional;
import java.util.Set;
import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.bpmn.common.listener.validation.PreBuildingBlockValidator;
import org.springframework.stereotype.Component;
@Component
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorTwo.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyPreValidatorTwo.java
index 1276d8f1d2..3fb3485c39 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorTwo.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/MyPreValidatorTwo.java
@@ -18,13 +18,14 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.so.bpmn.common.validation;
+package org.onap.so.bpmn.common.listener.validation;
import java.util.Collections;
import java.util.Optional;
import java.util.Set;
import javax.annotation.Priority;
import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.bpmn.common.listener.validation.PreBuildingBlockValidator;
import org.springframework.stereotype.Component;
@Priority(1)
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/ValidationConfig.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/ValidationConfig.java
index 90d094ce41..068f433dd5 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/ValidationConfig.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/ValidationConfig.java
@@ -18,16 +18,16 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.so.bpmn.common.validation;
+package org.onap.so.bpmn.common.listener.validation;
import org.onap.so.bpmn.common.DefaultToShortClassNameBeanNameGenerator;
+import org.onap.so.bpmn.common.listener.ListenerRunner;
import org.onap.so.client.exception.ExceptionBuilder;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
@Configuration
-@ComponentScan(basePackages = {"org.onap.so.bpmn.common.validation"}, basePackageClasses = {ExceptionBuilder.class},
+@ComponentScan(basePackageClasses = {ExceptionBuilder.class, ListenerRunner.class},
nameGenerator = DefaultToShortClassNameBeanNameGenerator.class)
public class ValidationConfig {
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorOne.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/WorkflowPreValidatorOne.java
index 485aae2fcc..f7aedcfd6f 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorOne.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/WorkflowPreValidatorOne.java
@@ -18,12 +18,13 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.so.bpmn.common.validation;
+package org.onap.so.bpmn.common.listener.validation;
import java.util.Collections;
import java.util.Optional;
import java.util.Set;
import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.bpmn.common.listener.validation.PreWorkflowValidator;
import org.springframework.stereotype.Component;
@Component
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorTwo.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/WorkflowPreValidatorTwo.java
index 9596524a56..99a7e161a9 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorTwo.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/listener/validation/WorkflowPreValidatorTwo.java
@@ -18,13 +18,14 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.so.bpmn.common.validation;
+package org.onap.so.bpmn.common.listener.validation;
import java.util.Collections;
import java.util.Optional;
import java.util.Set;
import javax.annotation.Priority;
import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.bpmn.common.listener.validation.PreWorkflowValidator;
import org.springframework.stereotype.Component;
@Priority(1)
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/InstnaceResourceListTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/InstnaceResourceListTest.java
new file mode 100644
index 0000000000..3be67c965c
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/InstnaceResourceListTest.java
@@ -0,0 +1,46 @@
+package org.onap.so.bpmn.common.resource;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.onap.so.bpmn.core.domain.GroupResource;
+import org.onap.so.bpmn.core.domain.Resource;
+import org.onap.so.bpmn.core.domain.ResourceType;
+import org.onap.so.bpmn.core.domain.VnfResource;
+import org.onap.so.bpmn.core.domain.VnfcResource;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class InstnaceResourceListTest {
+
+ public static String RESOURCE_PATH = "src/test/resources/__files/InstanceResourceList/";
+
+ @Test
+ public void testInstanceResourceList() throws IOException {
+ String uuiRequest = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "InstanceResourceList" + ".json")));
+ List<Resource> instanceResourceList =
+ InstanceResourceList.getInstanceResourceList(createResourceSequence(), uuiRequest);
+ Assert.assertEquals(4, instanceResourceList.size());
+ Assert.assertEquals(ResourceType.VNF, instanceResourceList.get(0).getResourceType());
+ Assert.assertEquals(ResourceType.GROUP, instanceResourceList.get(1).getResourceType());
+ Assert.assertEquals(ResourceType.VNF, instanceResourceList.get(2).getResourceType());
+ Assert.assertEquals(ResourceType.GROUP, instanceResourceList.get(3).getResourceType());
+ }
+
+ private List<Resource> createResourceSequence() {
+ List<Resource> resourceList = new ArrayList<>();
+ VnfResource vnfResource = new VnfResource();
+ vnfResource.setResourceInput("{\"a\":\"[sdwansiteresource_list,INDEX,sdwansiteresource_list]\"}");
+
+ VnfcResource vnfcResource = new VnfcResource();
+ vnfcResource.setResourceInput("{\"a\":\"[sdwansitewan_list,INDEX,test]\"}");
+
+ GroupResource groupResource = new GroupResource();
+ groupResource.setVnfcs(Arrays.asList(vnfcResource));
+
+ return Arrays.asList(vnfResource, groupResource);
+ }
+}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilderTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilderTest.java
index c7c181744f..557ae6df51 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilderTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilderTest.java
@@ -19,232 +19,93 @@
*/
package org.onap.so.bpmn.common.resource;
+import java.util.ArrayList;
+import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
import org.onap.so.BaseTest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.onap.so.bpmn.core.domain.GroupResource;
+import org.onap.so.bpmn.core.domain.Resource;
+import org.onap.so.bpmn.core.domain.ResourceType;
+import org.onap.so.bpmn.core.domain.VnfResource;
+import org.onap.so.bpmn.core.domain.VnfcResource;
+import org.onap.so.bpmn.mock.FileUtil;
import static com.github.tomakehurst.wiremock.client.WireMock.get;
import static com.github.tomakehurst.wiremock.client.WireMock.ok;
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
import static org.junit.Assert.assertEquals;
-
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
public class ResourceRequestBuilderTest extends BaseTest {
- @Test
- public void getResourceInputTest() throws Exception {
+ private Map<String, Object> userInputMap = null;
+ private Map<String, Object> serviceInput = null;
+ @Before
+ public void initializeMockObjects() {
- wireMockServer.stubFor(get(urlEqualTo(
- "/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
- .willReturn(ok("{ \"serviceResources\" : {\n" + "\t\"modelInfo\" : {\n"
- + "\t\t\"modelName\" : \"demoVFWCL\",\n"
- + "\t\t\"modelUuid\" : \"c3954379-4efe-431c-8258-f84905b158e5\",\n"
- + "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n"
- + "\t\t\"modelVersion\" : \"1.0\"\n" + "\t},\n"
- + "\t\"serviceType\" : \"\",\n" + "\t\"serviceRole\" : \"\",\n"
- + "\t\"environmentContext\" : null,\n" + "\t\"resourceOrder\" : \"res1,res2\",\n"
- + "\t\"workloadContext\" : \"Production\",\n" + "\t\"serviceVnfs\": [\n" + "\t\n"
- + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"15968a6e-2fe5-41bf-a481\",\n"
- + "\t\t\t\"modelUuid\" : \"808abda3-2023-4105-92d2-e62644b61d53\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n"
- + "\t\t\t\"modelInstanceName\" : \"15968a6e-2fe5-41bf-a481 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\","
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vfw\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t},\n" + "\t\n" + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"f971106a-248f-4202-9d1f\",\n"
- + "\t\t\t\"modelUuid\" : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n"
- + "\t\t\t\"modelInstanceName\" : \"f971106a-248f-4202-9d1f 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"key|default_value\\\"}\","
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"F971106a248f42029d1f..base_vpkg..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"47d5273a-7456-4786-9035-b3911944cc35\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vpkg\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t}\n" + "\t],\n" + "\t\"serviceNetworks\": [],\n"
- + "\t\"serviceAllottedResources\": []\n" + "\t}}")));
+ if (null == this.userInputMap) {
+ ObjectMapper mapper = new ObjectMapper();
- // when(UrnPropertiesReader.getVariable(anyString())).thenReturn("http://localhost:8080");
+ try {
+ String serviceInputRequest = FileUtil.readResourceFile("__files/UUI-SO-REQ.json");
+ this.userInputMap = mapper.readValue(serviceInputRequest, new TypeReference<Map<String, Object>>() {});
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ if (null == this.serviceInput) {
+
+ try {
+ ObjectMapper mapper = new ObjectMapper();
+ String serviceInputRequest = FileUtil.readResourceFile("__files/SERVICE-SO-REQ-INPUT.json");
+ this.serviceInput = mapper.readValue(serviceInputRequest, new TypeReference<Map<String, Object>>() {});
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ }
+
+ @Test
+ public void getResourceInputTest() throws Exception {
+
+ VnfResource resource = new VnfResource();
+ resource.setResourceType(ResourceType.VNF);
+ resource.setResourceInput("{\"a\":\"key|default_value\"}");
HashMap serviceInput = new HashMap();
serviceInput.put("key", "value");
- Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(
- "c3954379-4efe-431c-8258-f84905b158e5", "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
+ Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(resource, serviceInput, null);
assertEquals(stringObjectMap.get("a"), "value");
}
@Test
public void getResourceInputDefaultValueTest() throws Exception {
-
- wireMockServer.stubFor(get(urlEqualTo(
- "/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
- .willReturn(ok("{ \"serviceResources\" : {\n" + "\t\"modelInfo\" : {\n"
- + "\t\t\"modelName\" : \"demoVFWCL\",\n"
- + "\t\t\"modelUuid\" : \"c3954379-4efe-431c-8258-f84905b158e5\",\n"
- + "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n"
- + "\t\t\"modelVersion\" : \"1.0\"\n" + "\t},\n"
- + "\t\"serviceType\" : \"\",\n" + "\t\"serviceRole\" : \"\",\n"
- + "\t\"environmentContext\" : null,\n" + "\t\"workloadContext\" : \"Production\",\n"
- + "\t\"serviceVnfs\": [\n" + "\t\n" + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"15968a6e-2fe5-41bf-a481\",\n"
- + "\t\t\t\"modelUuid\" : \"808abda3-2023-4105-92d2-e62644b61d53\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n"
- + "\t\t\t\"modelInstanceName\" : \"15968a6e-2fe5-41bf-a481 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\","
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vfw\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t},\n" + "\t\n" + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"f971106a-248f-4202-9d1f\",\n"
- + "\t\t\t\"modelUuid\" : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n"
- + "\t\t\t\"modelInstanceName\" : \"f971106a-248f-4202-9d1f 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"key|default_value\\\"}\","
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"F971106a248f42029d1f..base_vpkg..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"47d5273a-7456-4786-9035-b3911944cc35\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vpkg\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t}\n" + "\t],\n" + "\t\"serviceNetworks\": [],\n"
- + "\t\"serviceAllottedResources\": []\n" + "\t}}")));
-
- // when(UrnPropertiesReader.getVariable(anyString())).thenReturn("http://localhost:8080");
+ VnfResource resource = new VnfResource();
+ resource.setResourceType(ResourceType.VNF);
+ resource.setResourceInput("{\"a\":\"key|default_value\"}");
HashMap serviceInput = new HashMap();
serviceInput.put("key1", "value");
- Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(
- "c3954379-4efe-431c-8258-f84905b158e5", "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
+ Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(resource, serviceInput, null);
assertEquals(stringObjectMap.get("a"), "default_value");
}
@Test
public void getResourceInputValueNoDefaultTest() throws Exception {
-
- wireMockServer.stubFor(get(urlEqualTo(
- "/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
- .willReturn(ok("{ \"serviceResources\" : {\n" + "\t\"modelInfo\" : {\n"
- + "\t\t\"modelName\" : \"demoVFWCL\",\n"
- + "\t\t\"modelUuid\" : \"c3954379-4efe-431c-8258-f84905b158e5\",\n"
- + "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n"
- + "\t\t\"modelVersion\" : \"1.0\"\n" + "\t},\n"
- + "\t\"serviceType\" : \"\",\n" + "\t\"serviceRole\" : \"\",\n"
- + "\t\"environmentContext\" : null,\n" + "\t\"workloadContext\" : \"Production\",\n"
- + "\t\"serviceVnfs\": [\n" + "\t\n" + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"15968a6e-2fe5-41bf-a481\",\n"
- + "\t\t\t\"modelUuid\" : \"808abda3-2023-4105-92d2-e62644b61d53\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n"
- + "\t\t\t\"modelInstanceName\" : \"15968a6e-2fe5-41bf-a481 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\","
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vfw\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t},\n" + "\t\n" + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"f971106a-248f-4202-9d1f\",\n"
- + "\t\t\t\"modelUuid\" : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n"
- + "\t\t\t\"modelInstanceName\" : \"f971106a-248f-4202-9d1f 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"value\\\"}\","
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"F971106a248f42029d1f..base_vpkg..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"47d5273a-7456-4786-9035-b3911944cc35\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vpkg\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t}\n" + "\t],\n" + "\t\"serviceNetworks\": [],\n"
- + "\t\"serviceAllottedResources\": []\n" + "\t}}")));
-
- // when(UrnPropertiesReader.getVariable(anyString())).thenReturn("http://localhost:8080");
+ VnfResource resource = new VnfResource();
+ resource.setResourceType(ResourceType.VNF);
+ resource.setResourceInput("{\"a\":\"value\"}");
HashMap serviceInput = new HashMap();
serviceInput.put("key1", "value");
- Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(
- "c3954379-4efe-431c-8258-f84905b158e5", "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
+ Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(resource, serviceInput, null);
assertEquals(stringObjectMap.get("a"), "value");
}
@@ -322,68 +183,138 @@ public class ResourceRequestBuilderTest extends BaseTest {
@Test
public void getResourceInputWithEmptyServiceResourcesTest() throws Exception {
- wireMockServer.stubFor(get(urlEqualTo(
- "/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
- .willReturn(ok("{ \"serviceResources\" : {\n" + "\t\"modelInfo\" : {\n"
- + "\t\t\"modelName\" : \"demoVFWCL\",\n"
- + "\t\t\"modelUuid\" : \"c3954379-4efe-431c-8258-f84905b158e5\",\n"
- + "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n"
- + "\t\t\"modelVersion\" : \"1.0\"\n" + "\t},\n"
- + "\t\"serviceType\" : \"\",\n" + "\t\"serviceRole\" : \"\",\n"
- + "\t\"environmentContext\" : null,\n" + "\t\"workloadContext\" : \"Production\",\n"
- + "\t\"serviceVnfs\": [], \n" + "\t\"serviceNetworks\": [],\n"
- + "\t\"serviceAllottedResources\": []\n" + "\t}}")));
+ VnfResource resource = new VnfResource();
+ resource.setResourceType(ResourceType.VNF);
+ resource.setResourceInput(null);
HashMap serviceInput = new HashMap();
serviceInput.put("key1", "value");
- Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(
- "c3954379-4efe-431c-8258-f84905b158e5", "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
+ Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(resource, serviceInput, null);
assertEquals(0, stringObjectMap.size());
}
@Test
public void testGetResourceInputEmptyValue() {
- wireMockServer.stubFor(get(urlEqualTo(
- "/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
- .willReturn(ok("{ \"serviceResources\" : {\n" + "\t\"modelInfo\" : {\n"
- + "\t\t\"modelName\" : \"demoVFWCL\",\n"
- + "\t\t\"modelUuid\" : \"c3954379-4efe-431c-8258-f84905b158e5\",\n"
- + "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n"
- + "\t\t\"modelVersion\" : \"1.0\"\n" + "\t},\n"
- + "\t\"serviceType\" : \"\",\n" + "\t\"serviceRole\" : \"\",\n"
- + "\t\"environmentContext\" : null,\n" + "\t\"resourceOrder\" : \"res1,res2\",\n"
- + "\t\"workloadContext\" : \"Production\",\n" + "\t\"serviceVnfs\": [\n" + "\t\n"
- + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"15968a6e-2fe5-41bf-a481\",\n"
- + "\t\t\t\"modelUuid\" : \"808abda3-2023-4105-92d2-e62644b61d53\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n"
- + "\t\t\t\"modelInstanceName\" : \"15968a6e-2fe5-41bf-a481 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"key1|\\\"}\","
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vfw\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t}]}}")));
+
+ VnfResource resource = new VnfResource();
+ resource.setResourceType(ResourceType.VNF);
+ resource.setResourceInput("{\"a\":\"key1|\"}");
HashMap serviceInput = new HashMap();
serviceInput.put("key2", "value");
- Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(
- "c3954379-4efe-431c-8258-f84905b158e5", "a00404d5-d7eb-4c46-b6b6-9cf2d087e545", serviceInput);
+ Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(resource, serviceInput, null);
assertEquals(stringObjectMap.get("a"), "");
}
+ @Test
+ public void getListResourceInputTest() throws Exception {
+
+ List<Map> vnfdata = null;
+
+ List<Resource> resources = new ArrayList<>();
+ if (this.serviceInput.containsKey("serviceResources")) {
+ vnfdata = (List<Map>) ((Map) this.serviceInput.get("serviceResources")).get("serviceVnfs");
+ }
+ assertNotNull(vnfdata);
+ vnfdata.forEach(e -> {
+ if (e.get("resourceType").equals("VNF")) {
+ VnfResource r = new VnfResource();
+ r.setResourceInput(e.get("resourceInput").toString());
+ resources.add(r);
+ } else if (e.get("resourceType").equals("GROUP")) {
+ GroupResource r = new GroupResource();
+ VnfcResource vfc = new VnfcResource();
+ vfc.setResourceInput(e.get("resourceInput").toString());
+ List<VnfcResource> vfcList = new ArrayList();
+ vfcList.add(vfc);
+ r.setVnfcs(vfcList);
+ resources.add(r);
+ }
+ });
+
+ assertEquals(9, resources.size());
+
+ // VF level request
+ Map<String, Object> currentVFData = new HashMap<>();
+ Map<String, Object> stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(0), this.userInputMap, currentVFData);
+ assertEquals("b", stringObjectMap.get("a"));
+ assertEquals("hub_spoke", stringObjectMap.get("topology"));
+ assertEquals("defaultvpn", stringObjectMap.get("name"));
+ assertTrue(((String) stringObjectMap.get("sitelist")).contains("["));
+
+ // vfc level request
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(1), this.userInputMap, currentVFData);
+ assertEquals("", stringObjectMap.get("a"));
+ assertEquals("layer3-port", stringObjectMap.get("portswitch"));
+ assertEquals("192.168.10.1", stringObjectMap.get("ipAddress"));
+ assertEquals("vCPE", stringObjectMap.get("deviceName"));
+
+ // vfc level request
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(2), this.userInputMap, currentVFData);
+ assertEquals("", stringObjectMap.get("a"));
+ assertEquals("layer2-port", stringObjectMap.get("portswitch"));
+ assertEquals("192.168.11.1", stringObjectMap.get("ipAddress"));
+ assertEquals("CPE_Beijing", stringObjectMap.get("deviceName"));
+
+ // VF level request
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(3), this.userInputMap, currentVFData);
+ assertEquals("Huawei Private Cloud", stringObjectMap.get("address"));
+ assertEquals("dsvpn_hub1", stringObjectMap.get("role"));
+ assertTrue(((String) stringObjectMap.get("wanlist")).contains("["));
+ assertTrue(((String) stringObjectMap.get("devlist")).contains("["));
+
+ // VFC request
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(4), this.userInputMap, currentVFData);
+ assertEquals("Huawei Private Cloud", stringObjectMap.get("address"));
+ assertEquals("20000", stringObjectMap.get("postcode"));
+ assertEquals("single_gateway", stringObjectMap.get("type"));
+ assertEquals("vCPE", stringObjectMap.get("deviceName"));
+ assertEquals("DHCP", stringObjectMap.get("ipMode"));
+
+ // VFC request again
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(5), this.userInputMap, currentVFData);
+ assertEquals("Huawei Private Cloud", stringObjectMap.get("address"));
+ assertEquals("20000", stringObjectMap.get("postcode"));
+ assertEquals("single_gateway", stringObjectMap.get("type"));
+ assertEquals("20.20.20.1", stringObjectMap.get("systemip"));
+ assertEquals("default_ipv6", stringObjectMap.get("systemipv6"));
+ assertEquals("VNF", stringObjectMap.get("devclass"));
+
+ // VF level request
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(6), this.userInputMap, currentVFData);
+ assertEquals("Huawei Public Cloud", stringObjectMap.get("address"));
+ assertEquals("dsvpn_hub", stringObjectMap.get("role"));
+ assertTrue(((String) stringObjectMap.get("wanlist")).contains("["));
+ assertTrue(((String) stringObjectMap.get("devlist")).contains("["));
+
+ // VFC request
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(7), this.userInputMap, currentVFData);
+ assertEquals("Huawei Public Cloud", stringObjectMap.get("address"));
+ assertEquals("20001", stringObjectMap.get("postcode"));
+ assertEquals("multiple_gateway", stringObjectMap.get("type"));
+ assertEquals("CPE_Beijing", stringObjectMap.get("deviceName"));
+ assertEquals("Static", stringObjectMap.get("ipMode"));
+
+ // VFC request again
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(8), this.userInputMap, currentVFData);
+ assertEquals("Huawei Public Cloud", stringObjectMap.get("address"));
+ assertEquals("20001", stringObjectMap.get("postcode"));
+ assertEquals("multiple_gateway", stringObjectMap.get("type"));
+ assertEquals("20.20.20.2", stringObjectMap.get("systemip"));
+ assertEquals("default_ipv6", stringObjectMap.get("systemipv6"));
+ assertEquals("PNF", stringObjectMap.get("devclass"));
+
+
+ }
+
+
}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/bbobjects/wrappers/ServiceInstanceWrapperTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/bbobjects/wrappers/ServiceInstanceWrapperTest.java
new file mode 100644
index 0000000000..fa8de7ff23
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/bbobjects/wrappers/ServiceInstanceWrapperTest.java
@@ -0,0 +1,67 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.bpmn.servicedecomposition.bbobjects.wrappers;
+
+import static org.junit.Assert.assertEquals;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceProxy;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.wrappers.exceptions.ServiceProxyNotFoundException;
+
+public class ServiceInstanceWrapperTest {
+
+ @Rule
+ public ExpectedException expectedException = ExpectedException.none();
+
+ @Test
+ public void getTransportServiceProxyTest() throws ServiceProxyNotFoundException {
+ ServiceInstance si = buildServiceInstance();
+ si.getServiceProxies().add(buildServiceProxy());
+ ServiceInstanceWrapper sw = new ServiceInstanceWrapper(si);
+ ServiceProxy sp = sw.getTransportServiceProxy();
+ assertEquals("sp-001", sp.getId());
+ assertEquals("transport", sp.getType());
+ }
+
+ @Test
+ public void getTransportServiceProxyExceptionTest() throws ServiceProxyNotFoundException {
+ expectedException.expect(ServiceProxyNotFoundException.class);
+ ServiceInstanceWrapper sw = new ServiceInstanceWrapper(buildServiceInstance());
+ sw.getTransportServiceProxy();
+ }
+
+ private ServiceInstance buildServiceInstance() {
+ ServiceInstance si = new ServiceInstance();
+ si.setServiceInstanceId("si-001");
+ si.setServiceInstanceName("Test SI");
+ return si;
+ }
+
+ private ServiceProxy buildServiceProxy() {
+ ServiceProxy sp = new ServiceProxy();
+ sp.setId("sp-001");
+ sp.setType("transport");
+ return sp;
+ }
+
+}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java
index 39650a2142..13d2b7d3d3 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java
@@ -398,10 +398,12 @@ public class BBInputSetupMapperLayerTest {
@Test
public void testMapAAIL3NetworkIntoL3Network() throws IOException {
- L3Network expected = mapper.readValue(new File(RESOURCE_PATH + "l3NetworkExpected.json"), L3Network.class);
+ L3Network expected =
+ mapper.readValue(new File(RESOURCE_PATH + "l3NetworkExpectedWithSubnet.json"), L3Network.class);
- org.onap.aai.domain.yang.L3Network aaiL3Network = mapper.readValue(
- new File(RESOURCE_PATH + "aaiL3NetworkInput.json"), org.onap.aai.domain.yang.L3Network.class);
+ org.onap.aai.domain.yang.L3Network aaiL3Network =
+ mapper.readValue(new File(RESOURCE_PATH + "aaiL3NetworkInputWithSubnets.json"),
+ org.onap.aai.domain.yang.L3Network.class);
L3Network actual = bbInputSetupMapperLayer.mapAAIL3Network(aaiL3Network);
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java
index ad1918e6da..787957dc38 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java
@@ -65,6 +65,7 @@ import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference;
import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceProxy;
import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
import org.onap.so.bpmn.servicedecomposition.bbobjects.Vnfc;
@@ -82,6 +83,7 @@ import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
+import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceProxy;
import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
import org.onap.so.client.aai.AAICommonObjectMapperProvider;
import org.onap.so.client.aai.AAIObjectType;
@@ -94,14 +96,15 @@ import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
import org.onap.so.db.catalog.beans.ConfigurationResource;
import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
+import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
import org.onap.so.db.catalog.beans.InstanceGroupType;
import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
import org.onap.so.db.catalog.beans.OrchestrationStatus;
import org.onap.so.db.catalog.beans.Service;
+import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization;
import org.onap.so.db.catalog.beans.VfModuleCustomization;
import org.onap.so.db.catalog.beans.VnfResourceCustomization;
-import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
import org.onap.so.db.request.beans.InfraActiveRequests;
import org.onap.so.serviceinstancebeans.CloudConfiguration;
@@ -1231,19 +1234,19 @@ public class BBInputSetupTest {
configResourceKeys.setVnfcName(vnfcName);
Vnfc vnfc = new Vnfc();
vnfc.setVnfcName(vnfcName);
-
+ RequestDetails requestDetails = new RequestDetails();
doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
configResourceKeys);
doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
- instanceName, configResourceKeys);
+ instanceName, configResourceKeys, requestDetails);
verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
configResourceKeys);
lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
- instanceName, configResourceKeys);
+ instanceName, configResourceKeys, requestDetails);
verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service,
configResourceKeys);
@@ -1255,7 +1258,7 @@ public class BBInputSetupTest {
doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service,
configResourceKeys);
SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
- instanceName, configResourceKeys);
+ instanceName, configResourceKeys, requestDetails);
verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service,
configResourceKeys);
}
@@ -1307,6 +1310,7 @@ public class BBInputSetupTest {
configResourceKeys.setVnfcName(vnfcName);
Vnfc vnfc = new Vnfc();
vnfc.setVnfcName(vnfcName);
+ RequestDetails requestDetails = new RequestDetails();
CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
new CvnfcConfigurationCustomization();
@@ -1319,7 +1323,7 @@ public class BBInputSetupTest {
doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
- instanceName, configResourceKeys);
+ instanceName, configResourceKeys, requestDetails);
verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
configResourceKeys);
}
@@ -1972,14 +1976,117 @@ public class BBInputSetupTest {
configurationCustList.add(configurationCust);
doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(),
- isA(ConfigurationResourceKeys.class));
+ isA(ConfigurationResourceKeys.class), isA(RequestDetails.class));
executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(),
- isA(ConfigurationResourceKeys.class));
+ isA(ConfigurationResourceKeys.class), isA(RequestDetails.class));
+
+
+ }
+
+ @Test
+ public void testGBBMacroNoUserParamsVrfConfiguration() throws Exception {
+ GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
+ GeneralBuildingBlock.class);
+ ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
+ ExecuteBuildingBlock.class);
+ RequestDetails requestDetails = mapper
+ .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacroVrf.json"), RequestDetails.class);
+ InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
+ Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
+ lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
+ lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
+ String resourceId = "123";
+ String vnfType = "vnfType";
+ Service service = Mockito.mock(Service.class);
+ String requestAction = "createInstance";
+
+ ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
+ configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
+ configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
+ configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
+ executeBB.setConfigurationResourceKeys(configResourceKeys);
+
+ executeBB.setRequestDetails(requestDetails);
+ doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
+ requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
+ doReturn(service).when(SPY_bbInputSetupUtils)
+ .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
+
+ RelatedInstance relatedVpnBinding = new RelatedInstance();
+ relatedVpnBinding.setInstanceId("vpnBindingInstanceId");
+ RelatedInstance relatedLocalNetwork = new RelatedInstance();
+ relatedLocalNetwork.setInstanceId("localNetworkInstanceId");
+ org.onap.aai.domain.yang.VpnBinding aaiVpnBinding = new org.onap.aai.domain.yang.VpnBinding();
+ aaiVpnBinding.setVpnId("vpnBindingId");
+ org.onap.aai.domain.yang.L3Network aaiLocalNetwork = new org.onap.aai.domain.yang.L3Network();
+ aaiLocalNetwork.setNetworkId("localNetworkId");
+ Optional<org.onap.aai.domain.yang.VpnBinding> aaiAICVpnBindingOp =
+ Optional.of(new org.onap.aai.domain.yang.VpnBinding());
+ aaiAICVpnBindingOp.get().setVpnId("AICVpnBindingId");
+ ServiceProxy proxy = new ServiceProxy();
+ proxy.setType("transport");
+ proxy.setServiceInstance(new ServiceInstance());
+ proxy.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
+ proxy.getServiceInstance().getModelInfoServiceInstance().setModelUuid("sourceServiceModelUUID");
+ doReturn(relatedVpnBinding).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
+ ModelType.vpnBinding);
+ doReturn(relatedLocalNetwork).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
+ ModelType.network);
+ doReturn(aaiVpnBinding).when(SPY_bbInputSetupUtils).getAAIVpnBinding(relatedVpnBinding.getInstanceId());
+ doReturn(aaiLocalNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(relatedLocalNetwork.getInstanceId());
+ doReturn(aaiAICVpnBindingOp).when(SPY_bbInputSetupUtils).getAICVpnBindingFromNetwork(aaiLocalNetwork);
+ doReturn(proxy).when(SPY_bbInputSetup).getServiceProxy(service);
+
+ Configuration configuration = new Configuration();
+ configuration.setConfigurationId("configurationId");
+ gBB.getServiceInstance().getConfigurations().add(configuration);
+ List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
+ ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
+ configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
+ configurationCustList.add(configurationCust);
+ doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
+ any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(),
+ isA(ConfigurationResourceKeys.class), isA(RequestDetails.class));
+
+ executeBB.getBuildingBlock().setBpmnFlowName("AssignVrfConfigurationBB");
+ executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
+ gBB = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
+ verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
+ any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(),
+ isA(ConfigurationResourceKeys.class), isA(RequestDetails.class));
+ assertEquals(gBB.getCustomer().getVpnBindings().get(0).getVpnId(), "vpnBindingId");
+ assertEquals(gBB.getServiceInstance().getNetworks().get(0).getNetworkId(), "localNetworkId");
+ assertEquals(gBB.getServiceInstance().getNetworks().get(0).getVpnBindings().get(0).getVpnId(),
+ "AICVpnBindingId");
+ assertEquals(gBB.getServiceInstance().getServiceProxies().get(0).getType(), "transport");
+ }
+
+ @Test
+ public void testGetServiceProxy() {
+ ServiceProxy expected = new ServiceProxy();
+ expected.setType("TRANSPORT");
+ expected.setModelInfoServiceProxy(new ModelInfoServiceProxy());
+ expected.getModelInfoServiceProxy().setModelCustomizationUuid("modelCustomizationUUID");
+ expected.setServiceInstance(new ServiceInstance());
+ expected.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
+ expected.getServiceInstance().getModelInfoServiceInstance().setModelUuid("modelUUID");
+ expected.getServiceInstance().getModelInfoServiceInstance().setServiceType("TRANSPORT");
+ Service service = new Service();
+ ServiceProxyResourceCustomization serviceProxyCatalog = new ServiceProxyResourceCustomization();
+ serviceProxyCatalog.setModelCustomizationUUID("modelCustomizationUUID");
+ Service sourceService = new Service();
+ sourceService.setModelUUID("modelUUID");
+ sourceService.setServiceType("TRANSPORT");
+ serviceProxyCatalog.setSourceService(sourceService);
+ service.setServiceProxyCustomizations(new ArrayList<ServiceProxyResourceCustomization>());
+ service.getServiceProxyCustomizations().add(serviceProxyCatalog);
+ ServiceProxy actual = SPY_bbInputSetup.getServiceProxy(service);
+ assertThat(actual, sameBeanAs(expected));
}
@Test
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java
index e8d597a823..c5da3cbd51 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java
@@ -68,6 +68,8 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
delegateExecution.setVariable("WorkflowException", new WorkflowException("", 7000, ""));
delegateExecution.setVariable("buildingBlock", executeBuildingBlock);
delegateExecution.setVariable("lookupKeyMap", lookupKeyMap);
+
+ delegateExecution.setVariable("WorkflowException", new WorkflowException("processKey", 7000, "errorMessage"));
}
@Test
@@ -101,12 +103,10 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
rainyDayHandlerStatus.setPolicy("Rollback");
rainyDayHandlerStatus.setWorkStep(ASTERISK);
- doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
- "AssignServiceInstanceBB", "st1", "vnft1", "7000", "*");
+ doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient).getRainyDayHandlerStatus("AssignServiceInstanceBB",
+ "st1", "vnft1", "7000", "*", "errorMessage");
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, true);
-
assertEquals("Rollback", delegateExecution.getVariable("handlingCode"));
}
@@ -126,15 +126,9 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
rainyDayHandlerStatus.setPolicy("Rollback");
rainyDayHandlerStatus.setWorkStep(ASTERISK);
- doReturn(null).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
- "AssignServiceInstanceBB", "st1", "vnft1", "7000", ASTERISK);
- doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
- "AssignServiceInstanceBB", ASTERISK, ASTERISK, ASTERISK, ASTERISK);
-
+ doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient).getRainyDayHandlerStatus("AssignServiceInstanceBB",
+ "st1", "vnft1", ASTERISK, ASTERISK, "errorMessage");
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, true);
-
assertEquals("Rollback", delegateExecution.getVariable("handlingCode"));
assertEquals(5, delegateExecution.getVariable("maxRetries"));
}
@@ -145,9 +139,8 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
serviceInstance.getModelInfoServiceInstance().setServiceType("st1");
vnf.setVnfType("vnft1");
delegateExecution.setVariable("aLaCarte", true);
- doReturn(null).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(isA(String.class),
- isA(String.class), isA(String.class), isA(String.class), isA(String.class));
+ doReturn(null).when(MOCK_catalogDbClient).getRainyDayHandlerStatus(isA(String.class), isA(String.class),
+ isA(String.class), isA(String.class), isA(String.class), isA(String.class));
delegateExecution.setVariable("suppressRollback", false);
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, true);
@@ -157,9 +150,8 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
@Test
public void queryRainyDayTableExceptionTest() {
- doThrow(RuntimeException.class).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(isA(String.class),
- isA(String.class), isA(String.class), isA(String.class), isA(String.class));
+ doThrow(RuntimeException.class).when(MOCK_catalogDbClient).getRainyDayHandlerStatus(isA(String.class),
+ isA(String.class), isA(String.class), isA(String.class), isA(String.class), isA(String.class));
delegateExecution.setVariable("aLaCarte", true);
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, true);
delegateExecution.setVariable("suppressRollback", false);
@@ -184,9 +176,8 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
rainyDayHandlerStatus.setWorkStep(ASTERISK);
rainyDayHandlerStatus.setSecondaryPolicy("Abort");
- doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
- "AssignServiceInstanceBB", "st1", "vnft1", "7000", "*");
+ doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient).getRainyDayHandlerStatus("AssignServiceInstanceBB",
+ "st1", "vnft1", "7000", "*", "errorMessage");
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, false);
@@ -210,9 +201,8 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
rainyDayHandlerStatus.setWorkStep(ASTERISK);
rainyDayHandlerStatus.setSecondaryPolicy("Abort");
- doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
- "AssignServiceInstanceBB", "st1", "vnft1", "7000", "*");
+ doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient).getRainyDayHandlerStatus("AssignServiceInstanceBB",
+ "st1", "vnft1", "7000", "*", "errorMessage");
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, true);
@@ -236,9 +226,8 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
rainyDayHandlerStatus.setWorkStep(ASTERISK);
rainyDayHandlerStatus.setSecondaryPolicy("Abort");
- doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
- "AssignServiceInstanceBB", "st1", "vnft1", "7000", "*");
+ doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient).getRainyDayHandlerStatus("AssignServiceInstanceBB",
+ "st1", "vnft1", "7000", "*", "errorMessage");
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, true);
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java
index ef066853ca..5f9aef67e6 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -21,17 +21,67 @@
package org.onap.so.client.exception;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
import org.camunda.bpm.engine.delegate.BpmnError;
+import org.junit.Before;
import org.junit.Test;
-import org.onap.so.bpmn.mock.FileUtil;
+import org.mockito.ArgumentMatchers;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.Spy;
+import org.onap.aai.domain.yang.Vserver;
import org.onap.so.BaseTest;
+import org.onap.so.bpmn.common.DelegateExecutionImpl;
+import org.onap.so.bpmn.core.WorkflowException;
+import org.onap.so.bpmn.mock.FileUtil;
+import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
+import org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.onap.so.objects.audit.AAIObjectAudit;
+import org.onap.so.objects.audit.AAIObjectAuditList;
+import org.springframework.beans.BeanUtils;
+import com.fasterxml.jackson.core.JsonProcessingException;
public class ExceptionBuilderTest extends BaseTest {
private static final String RESOURCE_PATH = "__files/";
private static final String VALID_ERROR_MESSAGE = "{test error message}";
+ @Mock
+ protected ExtractPojosForBB extractPojosForBB;
+
+ @Spy
+ @InjectMocks
+ private ExceptionBuilder exceptionBuilder = new ExceptionBuilder();
+
+ GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
+
+ @Before
+ public void before() throws BBObjectNotFoundException, JsonProcessingException {
+ setCloudRegion();
+ when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.VF_MODULE_ID)))
+ .thenReturn(buildVfModule());
+ AAIObjectAuditList auditList = new AAIObjectAuditList();
+ auditList.setAuditType("create");
+ auditList.setHeatStackName("testStackName");
+ AAIObjectAudit vserver = new AAIObjectAudit();
+ vserver.setAaiObjectType(AAIObjectType.VSERVER.typeName());
+ vserver.setDoesObjectExist(false);
+ Vserver vs = new Vserver();
+ vs.setVserverId("testVServerId");
+ Vserver vServerShallow = new Vserver();
+ BeanUtils.copyProperties(vs, vServerShallow, "LInterfaces");
+ vserver.setAaiObject(vServerShallow);
+ auditList.getAuditList().add(vserver);
+
+ execution.setVariable("auditInventoryResult", objectMapper.getMapper().writeValueAsString(auditList));
+ }
+
@Test
public void buildAndThrowWorkflowExceptionTest() {
@@ -77,4 +127,35 @@ public class ExceptionBuilderTest extends BaseTest {
assertEquals("MSOWorkflowException", bpmnException.getErrorCode());
}
}
+
+ @Test
+ public void processAuditExceptionTest() {
+ try {
+ Mockito.doReturn(extractPojosForBB).when(exceptionBuilder).getExtractPojosForBB();
+ exceptionBuilder.processAuditException((DelegateExecutionImpl) execution, false);
+ } catch (BpmnError bpmnException) {
+ assertEquals("AAIInventoryFailure", bpmnException.getErrorCode());
+ WorkflowException we = execution.getVariable("WorkflowException");
+ assertNotNull(we);
+ assertEquals(
+ "create VF-Module testVfModuleId1 failed due to incomplete AAI vserver inventory population after stack testStackName was successfully created in cloud region testLcpCloudRegionId. MSO Audit indicates that the following was not created in AAI: vserver testVServerId.",
+ we.getErrorMessage());
+ }
+ }
+
+ @Test
+ public void processAuditExceptionContinueTest() {
+ try {
+ Mockito.doReturn(extractPojosForBB).when(exceptionBuilder).getExtractPojosForBB();
+ exceptionBuilder.processAuditException((DelegateExecutionImpl) execution, true);
+ String sm = execution.getVariable("StatusMessage");
+ assertNotNull(sm);
+ assertEquals(
+ "create VF-Module testVfModuleId1 failed due to incomplete AAI vserver inventory population after stack testStackName was successfully created in cloud region testLcpCloudRegionId. MSO Audit indicates that the following was not created in AAI: vserver testVServerId.",
+ sm);
+ } catch (BpmnError bpmnException) {
+ fail();
+ }
+ }
+
}
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/RequestDetailsInput_serviceMacro.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/RequestDetailsInput_serviceMacro.json
index 1cc387aaa0..97a230a1db 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/RequestDetailsInput_serviceMacro.json
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/RequestDetailsInput_serviceMacro.json
@@ -3,7 +3,7 @@
"modelType": "service",
"modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b",
"modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a",
- "modelName": "MOW AVPN vMX BV vPE 1 Service",
+ "modelName": "Sample Service Model",
"modelVersion": "10.0"
},
"owningEntity": {
@@ -31,7 +31,7 @@
"service": {
"modelInfo": {
"modelType": "service",
- "modelName": "MOW AVPN vMX BV vPE 1 Service",
+ "modelName": "Sample Service Model",
"modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a"
},
"instanceName": "vPE_Service",
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/RequestDetailsInput_serviceMacroVrf.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/RequestDetailsInput_serviceMacroVrf.json
new file mode 100644
index 0000000000..32745e19f3
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/RequestDetailsInput_serviceMacroVrf.json
@@ -0,0 +1,48 @@
+{
+ "modelInfo": {
+ "modelType": "service",
+ "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b",
+ "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a",
+ "modelName": "Sample Service Model",
+ "modelVersion": "10.0"
+ },
+ "owningEntity": {
+ "owningEntityId": "038d99af-0427-42c2-9d15-971b99b9b489",
+ "owningEntityName": "PACKET CORE"
+ },
+ "project": {
+ "projectName": "projectName"
+ },
+ "subscriberInfo": {
+ "globalSubscriberId": "subscriberId"
+ },
+ "requestInfo": {
+ "instanceName": "vPE_Service",
+ "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+ "source": "VID",
+ "suppressRollback": true,
+ "requestorId": "xxxxxx"
+ },
+ "requestParameters": {
+ "subscriptionServiceType": "VMX",
+ "aLaCarte": false
+ },
+ "relatedInstanceList": [
+ {
+ "relatedInstance": {
+ "instanceId": "vpnBindingId",
+ "modelInfo": {
+ "modelType": "vpnBinding"
+ }
+ }
+ },
+ {
+ "relatedInstance": {
+ "instanceId": "localNetworkId",
+ "modelInfo": {
+ "modelType": "network"
+ }
+ }
+ }
+ ]
+}
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroNetworks.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroNetworks.json
index f458d732d2..8d03005a9e 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroNetworks.json
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroNetworks.json
@@ -1,7 +1,7 @@
{
"modelInfo": {
"modelType": "service",
- "modelName": "MOW AVPN vMX BV vPE 1 Service",
+ "modelName": "Sample Service Model",
"modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a"
},
"instanceName": "vPE_Service",
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroNoCloudConfig.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroNoCloudConfig.json
index 0c3d8e709e..3201ec1bc0 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroNoCloudConfig.json
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroNoCloudConfig.json
@@ -1,7 +1,7 @@
{
"modelInfo": {
"modelType": "service",
- "modelName": "MOW AVPN vMX BV vPE 1 Service",
+ "modelName": "Sample Service Model",
"modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a"
},
"instanceName": "vPE_Service",
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroVfModules.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroVfModules.json
index de20a5a963..fd6f8fad6a 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroVfModules.json
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroVfModules.json
@@ -1,7 +1,7 @@
{
"modelInfo": {
"modelType": "service",
- "modelName": "MOW AVPN vMX BV vPE 1 Service",
+ "modelName": "Sample Service Model",
"modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a"
},
"instanceName": "vPE_Service",
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroVnfs.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroVnfs.json
index c4ad0ac047..80ea6b34ec 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroVnfs.json
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ServiceMacroVnfs.json
@@ -1,7 +1,7 @@
{
"modelInfo": {
"modelType": "service",
- "modelName": "MOW AVPN vMX BV vPE 1 Service",
+ "modelName": "Sample Service Model",
"modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a"
},
"instanceName": "vPE_Service",
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/aaiL3NetworkInputWithSubnets.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/aaiL3NetworkInputWithSubnets.json
new file mode 100644
index 0000000000..418396f290
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/aaiL3NetworkInputWithSubnets.json
@@ -0,0 +1,73 @@
+{
+ "networkId": "networkId",
+ "networkName": "networkName",
+ "networkType": null,
+ "networkRole": null,
+ "networkTechnology": null,
+ "neutronNetworkId": null,
+ "isBoundToVpn": true,
+ "serviceId": "serviceId",
+ "networkRoleInstance": 1234,
+ "resourceVersion": null,
+ "orchestrationStatus": "Assigned",
+ "heatStackId": "heatStackId",
+ "msoCatalogKey": null,
+ "contrailNetworkFqdn": "contrailNetworkFqdn",
+ "modelInvariantId": null,
+ "modelVersionId": null,
+ "personaModelVersion": null,
+ "modelCustomizationId": null,
+ "widgetModelId": "widgetModelId",
+ "widgetModelVersion": "widgetModelVersion",
+ "physicalNetworkName": "physicalNetworkName",
+ "isProviderNetwork": true,
+ "isSharedNetwork": true,
+ "isExternalNetwork": true,
+ "selflink": "selflink",
+ "operationalStatus": "operationalStatus",
+ "subnets": {
+ "subnet": [
+ {
+ "subnetId": "subnetId",
+ "subnetName": "subnetName",
+ "neutronSubnetId": "neutronSubnetId",
+ "gatewayAddress": "10.80.12.1",
+ "networkStartAddress": "10.80.12.0",
+ "cidrMask": "23",
+ "ipVersion": "4",
+ "orchestrationStatus": "Active",
+ "dhcpEnabled": true,
+ "dhcpStart": "10.80.12.3",
+ "dhcpEnd": "10.80.13.254",
+ "subnetRole": "s1",
+ "ipAssignmentDirection": "true",
+ "resourceVersion": "1557499815393",
+ "hostRoutes": {
+ "hostRoute": [
+ {
+ "hostRouteId": "91324351-01bf-43f8-a302-8c873451b4f1",
+ "routePrefix": "10.0.0.0/16",
+ "nextHop": "10.80.12.1",
+ "resourceVersion": "1557499777501"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "ctagAssignments": {
+ "ctagAssignment": [
+ {
+ "vlanIdInner": 1234
+ }
+ ]
+ },
+ "segmentationAssignments": {
+ "segmentationAssignment": [
+ {
+ "segmentationId": "segmentationId"
+ }
+ ]
+ },
+ "relationshipList": null
+} \ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/l3NetworkExpectedWithSubnet.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/l3NetworkExpectedWithSubnet.json
new file mode 100644
index 0000000000..ccefe195c9
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/l3NetworkExpectedWithSubnet.json
@@ -0,0 +1,56 @@
+{
+ "network-id": "networkId",
+ "cascaded": null,
+ "cloud-params": {
+
+ },
+ "network-name": "networkName",
+ "is-bound-to-vpn": true,
+ "service-id": "serviceId",
+ "network-role-instance": 1234,
+ "orchestration-status": "ASSIGNED",
+ "heat-stack-id": "heatStackId",
+ "contrail-network-fqdn": "contrailNetworkFqdn",
+ "widget-model-id": "widgetModelId",
+ "widget-model-version": "widgetModelVersion",
+ "physical-network-name": "physicalNetworkName",
+ "is-provider-network": true,
+ "is-shared-network": true,
+ "is-external-network": true,
+ "self-link": "selflink",
+ "operational-status": "operationalStatus",
+ "subnets": [
+ {
+ "subnet-id": "subnetId",
+ "subnet-name": "subnetName",
+ "neutron-subnet-id": "neutronSubnetId",
+ "gateway-address": "10.80.12.1",
+ "network-start-address": "10.80.12.0",
+ "cidr-mask": "23",
+ "ip-version": "4",
+ "dhcp-enabled": true,
+ "dhcp-start": "10.80.12.3",
+ "dhcp-end": "10.80.13.254",
+ "subnet-role": "s1",
+ "ip-assignment-direction": "true",
+ "host-routes": [
+ {
+ "host-route-id": "91324351-01bf-43f8-a302-8c873451b4f1",
+ "route-prefix": "10.0.0.0/16",
+ "next-hop": "10.80.12.1"
+ }
+ ]
+ }
+ ],
+ "ctag-assignments": [
+ {
+ "vlan-id-inner": 1234
+ }
+ ],
+ "segmentation-assignments": [
+ {
+ "segmentation-id": "segmentationId"
+ }
+ ],
+ "model-info-network": null
+}
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/InstanceResourceList/InstanceResourceList.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/InstanceResourceList/InstanceResourceList.json
new file mode 100644
index 0000000000..0b3d9f0bbe
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/InstanceResourceList/InstanceResourceList.json
@@ -0,0 +1,175 @@
+{
+ "service":{
+ "name":"SiteService",
+ "description":"SiteService",
+ "serviceInvariantUuid":"5c13f3fb-2744-4635-9f1f-c59c92dc8f70",
+ "serviceUuid":"3a76b1f5-fb0d-4b6b-82d5-0e8a4ebc3838",
+ "globalSubscriberId":"test_custormer",
+ "serviceType":"example-service-type",
+ "parameters":{
+ "locationConstraints":[
+
+ ],
+ "resources":[
+ {
+ "resourceIndex":"1",
+ "resourceName":"sdwanvpnresource",
+ "resourceInvariantUuid":"0c0e1cbe-6e01-4f9e-8c45-a9700ebc14df",
+ "resourceUuid":"4ad2d390-5c51-45f5-9710-b467a4ec7a73",
+ "resourceCustomizationUuid":"66590e07-0777-415c-af44-36347cf3ddd3",
+ "parameters":{
+ "locationConstraints":[
+
+ ],
+ "resources":[
+
+ ],
+ "requestInputs":{
+
+ }
+ }
+ },
+ {
+ "resourceIndex":"1",
+ "resourceName":"sdwansiteresource",
+ "resourceInvariantUuid":"97a3e552-08c4-4697-aeeb-d8d3e09ce58e",
+ "resourceUuid":"63d8e1af-32dc-4c71-891d-e3f7b6a976d2",
+ "resourceCustomizationUuid":"205456e7-3dc0-40c4-8cb0-28e6c1877042",
+ "parameters":{
+ "locationConstraints":[
+
+ ],
+ "resources":[
+
+ ],
+ "requestInputs":{
+
+ }
+ }
+ },
+ {
+ "resourceIndex":"2",
+ "resourceName":"sdwansiteresource",
+ "resourceInvariantUuid":"97a3e552-08c4-4697-aeeb-d8d3e09ce58e",
+ "resourceUuid":"63d8e1af-32dc-4c71-891d-e3f7b6a976d2",
+ "resourceCustomizationUuid":"205456e7-3dc0-40c4-8cb0-28e6c1877042",
+ "parameters":{
+ "locationConstraints":[
+
+ ],
+ "resources":[
+
+ ],
+ "requestInputs":{
+
+ }
+ }
+ }
+ ],
+ "requestInputs":{
+ "sdwanvpnresource_list":[
+ {
+ "sdwanvpn_topology":"hub_spoke",
+ "sdwanvpn_name":"defaultvpn",
+ "sdwansitelan_list":[
+ {
+ "role":"Hub",
+ "portType":"GE",
+ "portSwitch":"layer3-port",
+ "vlanId":"",
+ "ipAddress":"192.168.10.1",
+ "deviceName":"vCPE",
+ "portNumer":"0/0/1"
+ },
+ {
+ "role":"Hub",
+ "portType":"GE",
+ "portSwitch":"layer2-port",
+ "vlanId":"55",
+ "ipAddress":"192.168.11.1",
+ "deviceName":"CPE_Beijing",
+ "portNumer":"0/0/1"
+ }
+ ]
+ }
+ ],
+ "sdwansiteresource_list":[
+ {
+ "sdwansite_emails":"chenchuanyu@huawei.com",
+ "sdwansite_address":"Huawei Public Cloud",
+ "sdwansite_description":"DC Site",
+ "sdwansite_role":"dsvpn_hub",
+ "sdwansite_postcode":"20000",
+ "sdwansite_type":"single_gateway",
+ "sdwansite_latitude":"",
+ "sdwansite_controlPoint":"",
+ "sdwansite_longitude":"",
+ "sdwansitewan_list":[
+ {
+ "providerIpAddress":"",
+ "portType":"GE",
+ "inputBandwidth":"1000",
+ "ipAddress":"",
+ "name":"10000",
+ "transportNetworkName":"internet",
+ "outputBandwidth":"10000",
+ "deviceName":"vCPE",
+ "portNumber":"0/0/0",
+ "ipMode":"DHCP",
+ "publicIP":"119.3.7.113"
+ }
+ ],
+ "sdwandevice_list":[
+ {
+ "esn":"XXXXXXX",
+ "vendor":"Huawei",
+ "name":"vCPE",
+ "type":"AR1000V",
+ "version":"1.0",
+ "class":"VNF",
+ "systemIp":"20.20.20.1"
+ }
+ ]
+ },
+ {
+ "sdwansite_emails":"chenchuanyu@huawei.com",
+ "sdwansite_address":"Huawei Public Cloud",
+ "sdwansite_description":"DC Site",
+ "sdwansite_role":"dsvpn_hub",
+ "sdwansite_postcode":"20000",
+ "sdwansite_type":"single_gateway",
+ "sdwansite_latitude":"",
+ "sdwansite_controlPoint":"",
+ "sdwansite_longitude":"",
+ "sdwansitewan_list":[
+ {
+ "providerIpAddress":"",
+ "portType":"GE",
+ "inputBandwidth":"1000",
+ "ipAddress":"172.18.1.2/24",
+ "name":"10000",
+ "transportNetworkName":"internet",
+ "outputBandwidth":"10000",
+ "deviceName":"CPE_Beijing",
+ "portNumber":"0/0/0",
+ "ipMode":"Static",
+ "publicIP":""
+ }
+ ],
+ "sdwandevice_list":[
+ {
+ "esn":"XXXXXXX",
+ "vendor":"Huawei",
+ "name":"CPE_Beijing",
+ "type":"AR161",
+ "version":"1.0",
+ "class":"PNF",
+ "systemIp":"20.20.20.2"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/SERVICE-SO-REQ-INPUT.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/SERVICE-SO-REQ-INPUT.json
new file mode 100644
index 0000000000..4803fca355
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/SERVICE-SO-REQ-INPUT.json
@@ -0,0 +1,299 @@
+{
+ "serviceResources": {
+ "modelInfo": {
+ "modelName": "demoVFWCL",
+ "modelUuid": "c3954379-4efe-431c-8258-f84905b158e5",
+ "modelInvariantUuid": "0cbff61e-3b0a-4eed-97ce-b1b4faa03493",
+ "modelVersion": "1.0"
+ },
+ "serviceType": "",
+ "serviceRole": "",
+ "environmentContext": null,
+ "resourceOrder": "res1,res2",
+ "workloadContext": "Production",
+ "serviceVnfs": [
+
+ {
+ "modelInfo": {
+ "modelName": "15968a6e-2fe5-41bf-a481",
+ "modelUuid": "808abda3-2023-4105-92d2-e62644b61d53",
+ "modelInvariantUuid": "6e4ffc7c-497e-4a77-970d-af966e642d31",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "a00404d5-d7eb-4c46-b6b6-9cf2d087e545",
+ "modelInstanceName": "15968a6e-2fe5-41bf-a481 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vf.15968a6e2fe541bfA481",
+ "nfFunction": null,
+ "resourceInput": "{\"a\":\"b\",\"topology\":\"[sdwanvpnresource_list,INDEX,sdwanvpn_topology]|default_topo\",\"name\":\"[sdwanvpnresource_list,INDEX,sdwanvpn_name]|default_name\",\"sitelist\":\"[sdwanvpnresource_list,INDEX,sdwansitelan_list]|default_sitelist\"}",
+ "resourceType": "VNF",
+ "nfRole": null,
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "15968a6e2fe541bfA481..base_vfw..module-0",
+ "modelUuid": "ec7fadde-1e5a-42f7-8255-cb19e475ff45",
+ "modelInvariantUuid": "61ab8b64-a014-4cf3-8a5a-b5ef388f8819",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "123aff6b-854f-4026-ae1e-cc74a3924576"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vfw",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d1f",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add7e",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe89f3",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88ca1a0",
+ "modelInstanceName": "f971106a-248f-4202-9d1f 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vfc.F971106a248f42029d1f",
+ "nfFunction": null,
+ "resourceType": "GROUP",
+ "nfRole": null,
+ "resourceInput": "{\"a\":\"b|\",\"portswitch\":\"[sdwansitelan_list,INDEX,portSwitch]|default_portswitch\",\"ipAddress\":\"[sdwansitelan_list,INDEX,ipAddress]|default_ipAddress\",\"deviceName\":\"[sdwansitelan_list,INDEX,deviceName]|default_deviceName\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d1e",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add7d",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe89f2",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88ca1a1",
+ "modelInstanceName": "f971106a-248f-4202-9d1e 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vfc.F971106a248f42029d1f",
+ "nfFunction": null,
+ "resourceType": "GROUP",
+ "nfRole": null,
+ "resourceInput": "{\"a\":\"b|\",\"portswitch\":\"[sdwansitelan_list,INDEX,portSwitch]|default_portswitch\",\"ipAddress\":\"[sdwansitelan_list,INDEX,ipAddress]|default_ipAddress\",\"deviceName\":\"[sdwansitelan_list,INDEX,deviceName]|default_deviceName\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d2e",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add8d",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe89c2",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88ca1c1",
+ "modelInstanceName": "f971106a-248f-4202-9d2e 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vf.F971106a248f42029d1f",
+ "nfFunction": null,
+ "resourceType": "VNF",
+ "nfRole": null,
+ "resourceInput": "{\"address\":\"[sdwansiteresource_list,INDEX,sdwansite_address]|default_address\",\"role\":\"[sdwansiteresource_list,INDEX,sdwansite_role]|default_role\",\"wanlist\":\"[sdwansiteresource_list,INDEX,sdwansitewan_list]|default_wanlist\",\"devlist\":\"[sdwansiteresource_list,INDEX,sdwandevice_list]|default_devlist\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d3e",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add9d",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe89f3",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88cb1a1",
+ "modelInstanceName": "f971106a-248f-4202-9d3e 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vfc.F971106a248f42029d1f",
+ "nfFunction": null,
+ "resourceType": "GROUP",
+ "nfRole": null,
+ "resourceInput": "{\"address\":\"sdwansite_address|default_address\", \"postcode\":\"sdwansite_postcode|default_postcode\",\"type\":\"sdwansite_type|default_role\",\"deviceName\":\"[sdwansitewan_list,INDEX,deviceName]|default_deviceName\",\"ipMode\":\"[sdwansitewan_list,INDEX,ipMode]|default_ipMode\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d5e",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add3d",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe8393",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88cb1f1",
+ "modelInstanceName": "f971106a-248f-4202-9d5e 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vfc.F971106a248f42029d3f",
+ "nfFunction": null,
+ "resourceType": "GROUP",
+ "nfRole": null,
+ "resourceInput": "{\"address\":\"sdwansite_address|default_address\", \"postcode\":\"sdwansite_postcode|default_postcode\",\"type\":\"sdwansite_type|default_role\",\"systemip\":\"[sdwandevice_list,INDEX,systemIp]|default_systemip\", \"systemipv6\":\"[sdwandevice_list,INDEX,systemIpv6]|default_ipv6\", \"devclass\":\"[sdwandevice_list,INDEX,class]|default_class\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d23",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add83",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe89c3",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88ca1c3",
+ "modelInstanceName": "f971106a-248f-4202-9d23 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vf.F971106a248f42029d1f",
+ "nfFunction": null,
+ "resourceType": "VNF",
+ "nfRole": null,
+ "resourceInput": "{\"address\":\"[sdwansiteresource_list,INDEX,sdwansite_address]|default_address\",\"role\":\"[sdwansiteresource_list,INDEX,sdwansite_role]|default_role\",\"wanlist\":\"[sdwansiteresource_list,INDEX,sdwansitewan_list]|default_wanlist\",\"devlist\":\"[sdwansiteresource_list,INDEX,sdwandevice_list]|default_devlist\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d34",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add94",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe89f4",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88cb1a4",
+ "modelInstanceName": "f971106a-248f-4202-9d34 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vfc.F971106a248f42029d1f",
+ "nfFunction": null,
+ "resourceType": "GROUP",
+ "nfRole": null,
+ "resourceInput": "{\"address\":\"sdwansite_address|default_address\", \"postcode\":\"sdwansite_postcode|default_postcode\",\"type\":\"sdwansite_type|default_role\",\"deviceName\":\"[sdwansitewan_list,INDEX,deviceName]|default_deviceName\",\"ipMode\":\"[sdwansitewan_list,INDEX,ipMode]|default_ipMode\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d55",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add35",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe8395",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88cb1f5",
+ "modelInstanceName": "f971106a-248f-4202-9d55 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vfc.F971106a248f42029d3f",
+ "nfFunction": null,
+ "resourceType": "GROUP",
+ "nfRole": null,
+ "resourceInput": "{\"address\":\"sdwansite_address|default_address\", \"postcode\":\"sdwansite_postcode|default_postcode\",\"type\":\"sdwansite_type|default_role\",\"systemip\":\"[sdwandevice_list,INDEX,systemIp]|default_systemip\", \"systemipv6\":\"[sdwandevice_list,INDEX,systemIpv6]|default_ipv6\", \"devclass\":\"[sdwandevice_list,INDEX,class]|default_class\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ }
+
+ ],
+ "serviceNetworks": [],
+ "serviceAllottedResources": []
+ }
+} \ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/UUI-SO-REQ.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/UUI-SO-REQ.json
new file mode 100644
index 0000000000..e6161862ae
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/UUI-SO-REQ.json
@@ -0,0 +1 @@
+{ "sdwanvpnresource_list":[ { "sdwanvpn_topology":"hub_spoke", "sdwanvpn_name":"defaultvpn", "sdwansitelan_list":[ { "role":"Hub", "portType":"GE", "portSwitch":"layer3-port", "vlanId":"", "ipAddress":"192.168.10.1", "deviceName":"vCPE", "portNumer":"0/0/1" }, { "role":"Hub", "portType":"GE", "portSwitch":"layer2-port", "vlanId":"55", "ipAddress":"192.168.11.1", "deviceName":"CPE_Beijing", "portNumer":"0/0/1" } ] } ], "sdwansiteresource_list":[ { "sdwansite_emails":"chenchuanyu@huawei.com", "sdwansite_address":"Huawei Private Cloud", "sdwansite_description":"DC Site", "sdwansite_role":"dsvpn_hub1", "sdwansite_postcode":"20000", "sdwansite_type":"single_gateway", "sdwansite_latitude":"", "sdwansite_controlPoint":"", "sdwansite_longitude":"", "sdwansitewan_list":[ { "providerIpAddress":"", "portType":"GE", "inputBandwidth":"1000", "ipAddress":"", "name":"10000", "transportNetworkName":"internet", "outputBandwidth":"10000", "deviceName":"vCPE", "portNumber":"0/0/0", "ipMode":"DHCP", "publicIP":"119.3.7.113" } ], "sdwandevice_list":[ { "esn":"XXXXXXX", "vendor":"Huawei", "name":"vCPE", "type":"AR1000V", "version":"1.0", "class":"VNF", "systemIp":"20.20.20.1" } ] }, { "sdwansite_emails":"chenchuanyu@huawei.com", "sdwansite_address":"Huawei Public Cloud", "sdwansite_description":"DC Site", "sdwansite_role":"dsvpn_hub", "sdwansite_postcode":"20001", "sdwansite_type":"multiple_gateway", "sdwansite_latitude":"", "sdwansite_controlPoint":"", "sdwansite_longitude":"", "sdwansitewan_list":[ { "providerIpAddress":"", "portType":"GE", "inputBandwidth":"1000", "ipAddress":"172.18.1.2/24", "name":"10000", "transportNetworkName":"internet", "outputBandwidth":"10000", "deviceName":"CPE_Beijing", "portNumber":"0/0/0", "ipMode":"Static", "publicIP":"" } ], "sdwandevice_list":[ { "esn":"XXXXXXX", "vendor":"Huawei", "name":"CPE_Beijing", "type":"AR161", "version":"1.0", "class":"PNF", "systemIp":"20.20.20.2" } ] } ] } \ No newline at end of file