AT&T 1712 and 1802 release code
[so.git] / bpmn / MSOCommonBPMN / src / test / java / org / openecomp / mso / bpmn / common / WorkflowTest.java
index 849aae8..9b8a249 100644 (file)
@@ -22,6 +22,8 @@ package org.openecomp.mso.bpmn.common;
 \r
 import static org.junit.Assert.assertEquals;\r
 import static org.junit.Assert.fail;\r
+import static org.openecomp.mso.bpmn.core.json.JsonUtils.getJsonValue;\r
+import static org.openecomp.mso.bpmn.core.json.JsonUtils.updJsonValue;\r
 \r
 import java.io.IOException;\r
 import java.io.StringReader;\r
@@ -30,8 +32,6 @@ import java.lang.management.RuntimeMXBean;
 import java.lang.reflect.Field;\r
 import java.lang.reflect.Modifier;\r
 import java.util.ArrayList;\r
-import java.util.Collections;\r
-import java.util.Comparator;\r
 import java.util.HashMap;\r
 import java.util.Iterator;\r
 import java.util.List;\r
@@ -61,6 +61,7 @@ import org.custommonkey.xmlunit.DetailedDiff;
 import org.custommonkey.xmlunit.XMLUnit;\r
 import org.jboss.resteasy.spi.AsynchronousResponse;\r
 import org.json.JSONArray;\r
+import org.json.JSONObject;\r
 import org.junit.Before;\r
 import org.junit.Rule;\r
 import org.openecomp.mso.bpmn.common.adapter.sdnc.CallbackHeader;\r
@@ -77,12 +78,10 @@ import org.openecomp.mso.bpmn.common.workflow.service.VnfAdapterNotifyServiceImp
 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowAsyncResource;\r
 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowMessageResource;\r
 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;\r
-import org.openecomp.mso.bpmn.core.utils.CamundaDBSetup;\r
 import org.openecomp.mso.bpmn.core.PropertyConfigurationSetup;\r
 import org.openecomp.mso.bpmn.core.domain.Resource;\r
 import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition;\r
-\r
-import static org.openecomp.mso.bpmn.core.json.JsonUtils.*;\r
+import org.openecomp.mso.bpmn.core.utils.CamundaDBSetup;\r
 import org.w3c.dom.Document;\r
 import org.w3c.dom.Element;\r
 import org.w3c.dom.Node;\r
@@ -1501,17 +1500,72 @@ public class WorkflowTest {
                                        for(Resource resource:resourceList){\r
                                                resourceId = resource.getResourceId();\r
                                        }\r
+                                       //TODO.. most other locations refer to solutionInfo.placementInfo \r
                                        String homingList = getJsonValue(content, "solutionInfo.placement");\r
-                                       JSONArray placementArr = new JSONArray(homingList);\r
+                                       JSONArray placementArr = null;\r
+                                       try {\r
+                                               placementArr = new JSONArray(homingList);\r
+                                       }\r
+                                       catch (Exception e) {\r
+                                               return false;\r
+                                       }\r
                                        if(placementArr.length() == 1){\r
                                                content = content.replace("((SERVICE_RESOURCE_ID))", resourceId);\r
                                        }\r
                                        String licenseInfoList = getJsonValue(content, "solutionInfo.licenseInfo");\r
-                                       JSONArray licenseArr = new JSONArray(licenseInfoList);\r
+                                       JSONArray licenseArr = null;\r
+                                       try {\r
+                                               licenseArr = new JSONArray(licenseInfoList);\r
+                                       }\r
+                                       catch (Exception e) {\r
+                                               return false;\r
+                                       }\r
                                        if(licenseArr.length() == 1){\r
                                                content = content.replace("((SERVICE_RESOURCE_ID))", resourceId);\r
                                        }\r
                                }\r
+                               else {\r
+                                       try {\r
+                                               String homingList = getJsonValue(content, "solutionInfo.placementInfo");\r
+                                               String licenseInfoList = getJsonValue(content, "solutionInfo.licenseInfo");\r
+                                               JSONArray placementArr = new JSONArray(homingList);\r
+                                               JSONArray licenseArr = new JSONArray(licenseInfoList);\r
+                                               for (Resource resource: resourceList) {\r
+                                                       String resourceModuleName = resource.getModelInfo().getModelInstanceName();\r
+                                                       String resourceId = resource.getResourceId();\r
+\r
+                                                       for (int i=0; i<placementArr.length(); i++) {\r
+                                                               JSONObject placementObj = placementArr.getJSONObject(i);\r
+                                                               String placementModuleName = placementObj.getString("resourceModuleName");\r
+                                                               if (placementModuleName.equalsIgnoreCase(resourceModuleName)) {\r
+                                                                       String placementString = placementObj.toString();\r
+                                                                       placementString = placementString.replace("((SERVICE_RESOURCE_ID))", resourceId);\r
+                                                                       JSONObject newPlacementObj = new JSONObject(placementString);\r
+                                                                       placementArr.put(i, newPlacementObj);\r
+                                                               }\r
+                                                       }\r
+                                                       \r
+                                                       for (int i=0; i<licenseArr.length(); i++) {\r
+                                                               JSONObject licenseObj = licenseArr.getJSONObject(i);\r
+                                                               String licenseModuleName = licenseObj.getString("resourceModuleName");\r
+                                                               if (licenseModuleName.equalsIgnoreCase(resourceModuleName)) {\r
+                                                                       String licenseString = licenseObj.toString();\r
+                                                                       licenseString = licenseString.replace("((SERVICE_RESOURCE_ID))", resourceId);\r
+                                                                       JSONObject newLicenseObj = new JSONObject(licenseString);\r
+                                                                       licenseArr.put(i, newLicenseObj);\r
+                                                               }\r
+                                                       }\r
+                                               }\r
+                                               String newPlacementInfos = placementArr.toString();\r
+                                               String newLicenseInfos = licenseArr.toString();\r
+                                               content = updJsonValue(content, "solutionInfo.placementInfo", newPlacementInfos);\r
+                                               content = updJsonValue(content, "solutionInfo.licenseInfo", newLicenseInfos);\r
+                                       }\r
+                                       catch(Exception e) {\r
+                                               return false;\r
+                                       }\r
+                                       \r
+                               }\r
                        }\r
                }\r
                System.out.println("Injecting " + messageType + " message");\r