Merge "update field in service decomp object"
diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/DecomposeServiceTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/DecomposeServiceTest.groovy
new file mode 100644
index 0000000..5deec5b
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/DecomposeServiceTest.groovy
@@ -0,0 +1,76 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * ONAP - SO 
+ * ================================================================================ 
+ * Copyright (C) 2017 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.common.scripts
+
+import org.junit.Before
+import org.mockito.MockitoAnnotations
+import org.onap.so.bpmn.core.domain.ModelInfo
+import org.onap.so.bpmn.core.domain.NetworkResource
+import org.onap.so.bpmn.core.domain.ServiceDecomposition
+import org.onap.so.bpmn.core.json.DecomposeJsonUtil
+import org.onap.so.bpmn.core.domain.ServiceInstance
+
+import org.onap.so.bpmn.mock.FileUtil
+import static org.mockito.Mockito.*
+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
+import static org.junit.Assert.*;
+import org.junit.Test;
+import static com.shazam.shazamcrest.MatcherAssert.assertThat;
+import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
+
+class DecomposeServiceTest {
+	
+	@Test
+	public void testDecomposeService() {
+		
+		String catalogDbResponse = FileUtil.readResourceFile("__files/decomposition/catalogDbResponse.json");
+		
+		ServiceDecomposition serviceDecomposition = new ServiceDecomposition();
+		ServiceInstance serviceInstance = new ServiceInstance();
+		serviceInstance.setInstanceId("serviceInstanceID");
+		serviceDecomposition.setServiceType("");
+		serviceDecomposition.setServiceRole("");
+		
+		ArrayList networkResources = new ArrayList();
+		NetworkResource networkResource = new NetworkResource();
+		networkResource.setNetworkType("testNetworkType");
+		networkResource.setNetworkRole("testNetworkRole");
+		networkResource.setNetworkScope("testNetworkScope");
+		networkResource.setToscaNodeType("testToscaModelType")
+		networkResource.setNetworkTechnology("testNetworkTechnology");
+		ModelInfo modelInfo = new ModelInfo();
+		modelInfo.setModelName("testModleName");
+		modelInfo.setModelUuid("testModelUuid")
+		modelInfo.setModelInvariantUuid("testModelInvariantId")
+		modelInfo.setModelVersion("testModelVersion");
+		modelInfo.setModelCustomizationUuid("testModelCustomizationUuid");
+		modelInfo.setModelInstanceName("testModelInstanceName");
+		networkResource.setModelInfo(modelInfo);
+		
+		networkResources.add(networkResource);
+		serviceDecomposition.setNetworkResources(networkResources)
+		serviceDecomposition.setServiceInstance(serviceInstance);
+		
+		ServiceDecomposition serviceDecompositionExtracted = DecomposeJsonUtil.jsonToServiceDecomposition(catalogDbResponse, "serviceInstanceID")
+		
+		assertThat(serviceDecompositionExtracted, sameBeanAs(serviceDecomposition).ignoring("modelInfo").ignoring("vnfResources").ignoring("allottedResources").ignoring("networkResources.resourceId"));
+	}
+}
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/decomposition/catalogDbResponse.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/decomposition/catalogDbResponse.json
new file mode 100644
index 0000000..087233d
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/decomposition/catalogDbResponse.json
@@ -0,0 +1,33 @@
+{
+  "serviceResources": {
+    "serviceType": "",
+    "workloadContext": "testWorkloadContext",
+    "serviceAllottedResources": [],
+    "modelInfo": {
+      "modelInvariantUuid": "testModelInvariantId",
+      "modelName": "testModleName",
+      "modelVersion": "testModelVersion",
+      "modelUuid": "testModelUuid"
+    },
+    "environmentContext": "testEnvironmentContent",
+    "serviceRole": "",
+    "serviceVnfs": [],
+    "serviceNetworks": [
+      {
+        "toscaNodeType": "testToscaModelType",
+        "networkTechnology": "testNetworkTechnology",
+        "networkScope": "testNetworkScope",
+        "modelInfo": {
+          "modelInvariantUuid": "testModelInvariantId",
+          "modelName": "testModleName",
+          "modelVersion": "testModelVersion",
+          "modelCustomizationUuid": "testModelCustomizationUuid",
+          "modelInstanceName": "testModelInstanceName",
+          "modelUuid": "testModelUuid"
+        },
+        "networkRole": "testNetworkRole",
+        "networkType": "testNetworkType"
+      }
+    ]
+  }
+}
\ No newline at end of file
diff --git a/bpmn/MSOCoreBPMN/src/main/java/org/onap/so/bpmn/core/domain/ServiceDecomposition.java b/bpmn/MSOCoreBPMN/src/main/java/org/onap/so/bpmn/core/domain/ServiceDecomposition.java
index 099f084..5e7a479 100644
--- a/bpmn/MSOCoreBPMN/src/main/java/org/onap/so/bpmn/core/domain/ServiceDecomposition.java
+++ b/bpmn/MSOCoreBPMN/src/main/java/org/onap/so/bpmn/core/domain/ServiceDecomposition.java
@@ -69,7 +69,7 @@
 	private OwningEntity owningEntity;
 	@JsonProperty("serviceVnfs")
 	private List <VnfResource> vnfResources;
-	@JsonProperty("networkResource")
+	@JsonProperty("serviceNetworks")
 	private List <NetworkResource> networkResources;
 	@JsonProperty("serviceAllottedResources")
 	private List <AllottedResource> allottedResources;
diff --git a/bpmn/MSOCoreBPMN/src/test/java/org/onap/so/bpmn/core/domain/ServiceDecompositionTest.java b/bpmn/MSOCoreBPMN/src/test/java/org/onap/so/bpmn/core/domain/ServiceDecompositionTest.java
index 82470f1..5d8d551 100644
--- a/bpmn/MSOCoreBPMN/src/test/java/org/onap/so/bpmn/core/domain/ServiceDecompositionTest.java
+++ b/bpmn/MSOCoreBPMN/src/test/java/org/onap/so/bpmn/core/domain/ServiceDecompositionTest.java
@@ -103,6 +103,8 @@
 		serviceDecomp.addResource(allottedResource);
 		serviceDecomp.addResource(configResource);
 		
+		System.out.println(serviceDecomp.toJsonString());
+		
 		assertThat(serviceDecomp.getServiceResource(vnfResource.getResourceId()), sameBeanAs(vnfResource));
 		assertThat(serviceDecomp.getServiceResource(networkResource.getResourceId()), sameBeanAs(networkResource));
 		assertThat(serviceDecomp.getServiceResource(allottedResource.getResourceId()), sameBeanAs(allottedResource));
diff --git a/bpmn/MSOCoreBPMN/src/test/resources/json-examples/ServiceDecompositionExpected.json b/bpmn/MSOCoreBPMN/src/test/resources/json-examples/ServiceDecompositionExpected.json
index c424293..f094e99 100644
--- a/bpmn/MSOCoreBPMN/src/test/resources/json-examples/ServiceDecompositionExpected.json
+++ b/bpmn/MSOCoreBPMN/src/test/resources/json-examples/ServiceDecompositionExpected.json
@@ -1,51 +1,59 @@
 {
-	"serviceResources" : {
-		"modelInfo" : {
-			"modelName" : "modelName",
-			"modelUuid" : "modelUuid",
-			"modelInvariantUuid" : "modelInvariantUuid",
-			"modelVersion" : "modelVersion",
-			"modelCustomizationUuid" : "modelCustomizationUuid",
-			"modelCustomizationName" : "modelCustomizationName",
-			"modelInstanceName" : "modelInstanceName",
-			"modelType" : "modelType"
-		},
-		"serviceType" : "serviceType",
-		"serviceRole" : "serviceRole",
-		"project" : {},
-		"owningEntity" : {},
-		"serviceInstance" : {
-			"serviceInstanceId" : "serviceInstanceId"
-		},
-		"serviceVnfs" : [
-			{
-				"resourceId" : "vnfResourceId",
-				"resourceType" : "VNF",
-				"resourceInstance" : {},
-				"homingSolution" : {
-					"license" : {},
-					"rehome" : false
-				},
-				"vfModules" : []
-			}
-		],
-		"networkResource" : [
-			{
-				"resourceId" : "networkResourceId",
-				"resourceType" : "NETWORK"
-			}
-		],
-		"serviceAllottedResources" : [
-			{
-				"resourceId" : "allottedResourceId",
-				"resourceType" : "ALLOTTED_RESOURCE"
-			}
-		],
-		"configResource" : [
-			{
-				"resourceId" : "configResourceId",
-				"resourceType" : "CONFIGURATION"
-			}
-		]
-	}
-}
+  "serviceResources" : {
+    "serviceInstance" : {
+      "instanceId" : "serviceInstanceId",
+      "customer" : { }
+    },
+    "modelInfo" : {
+      "modelName" : "modelName",
+      "modelUuid" : "modelUuid",
+      "modelInvariantUuid" : "modelInvariantUuid",
+      "modelVersion" : "modelVersion",
+      "modelCustomizationUuid" : "modelCustomizationUuid",
+      "modelCustomizationName" : "modelCustomizationName",
+      "modelInstanceName" : "modelInstanceName",
+      "modelType" : "modelType"
+    },
+    "serviceType" : "serviceType",
+    "serviceRole" : "serviceRole",
+    "project" : { },
+    "owningEntity" : { },
+    "serviceVnfs" : [ {
+      "resourceId" : "vnfResourceId",
+      "resourceType" : "VNF",
+      "resourceInstance" : { },
+      "homingSolution" : {
+        "license" : { },
+        "rehome" : false
+      },
+      "vfModules" : [ ]
+    } ],
+    "serviceNetworks" : [ {
+      "resourceId" : "networkResourceId",
+      "resourceType" : "NETWORK",
+      "resourceInstance" : { },
+      "homingSolution" : {
+        "license" : { },
+        "rehome" : false
+      }
+    } ],
+    "serviceAllottedResources" : [ {
+      "resourceId" : "allottedResourceId",
+      "resourceType" : "ALLOTTED_RESOURCE",
+      "resourceInstance" : { },
+      "homingSolution" : {
+        "license" : { },
+        "rehome" : false
+      }
+    } ],
+    "configResource" : [ {
+      "resourceId" : "configResourceId",
+      "resourceType" : "CONFIGURATION",
+      "resourceInstance" : { },
+      "homingSolution" : {
+        "license" : { },
+        "rehome" : false
+      }
+    } ]
+  }
+}
\ No newline at end of file