Merge "Support CSIT tests for OOF Policy"
diff --git a/ONAP-REST/src/test/java/org/onap/policy/rest/util/MSModelUtilsTest.java b/ONAP-REST/src/test/java/org/onap/policy/rest/util/MSModelUtilsTest.java
index 83a82f9..aa41429 100644
--- a/ONAP-REST/src/test/java/org/onap/policy/rest/util/MSModelUtilsTest.java
+++ b/ONAP-REST/src/test/java/org/onap/policy/rest/util/MSModelUtilsTest.java
@@ -22,6 +22,7 @@
 import static org.junit.Assert.*;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -30,10 +31,12 @@
 
 import org.apache.commons.lang.StringUtils;
 import org.junit.Test;
+import org.onap.policy.common.logging.flexlogger.FlexLogger;
+import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.rest.util.MSModelUtils.MODEL_TYPE;
 
 public class MSModelUtilsTest {
-	
+	private static Logger logger = FlexLogger.getLogger(MSModelUtilsTest.class);	
 	@Test
 	public void testMSModelUtils(){
 		HashMap<String, MSAttributeObject> classMap = new HashMap<>();
@@ -49,4 +52,84 @@
 		String subAttribute = utils.createSubAttributes(dependency, classMap, "StandardDeviationThreshold");
 		assertTrue(subAttribute != null);
 	}
-}
+	
+	
+	/**
+	 * Run the void stringBetweenDots(String, String) method test
+	 */
+	
+	 @Test
+	public void testStringBetweenDots() {
+
+		//expect: uniqueKeys should contain a string value 
+		 MSModelUtils controllerA = new MSModelUtils();
+		String str = "testing\\.byCorrectWay\\.OfDATA";
+		assertEquals(1, controllerA.stringBetweenDots(str));
+		
+		//expect: uniqueKeys should not contain a string value 
+		str = "testing\byWrongtWay.\\OfDATA";
+		MSModelUtils controllerB = new MSModelUtils();
+	    assertEquals(0, controllerB.stringBetweenDots(str));
+	}
+
+	/**
+	 * Run the Map<String,String> load(String) method test
+	 */
+	
+	@Test
+	public void testLoad() {
+		
+		boolean isLocalTesting = true;
+		MSModelUtils controller = new MSModelUtils();
+		String fileName = null;
+		Map<String,String> result = null;
+		try {
+			ClassLoader classLoader = getClass().getClassLoader();
+			fileName = new File(classLoader.getResource("policy_tosca_tca-v1707.yml").getFile()).getAbsolutePath();
+		} catch (Exception e1) {
+			logger.error("Exception Occured while loading file"+e1);
+		}
+		if(isLocalTesting){
+			try {
+				result = controller.load(fileName);
+			} catch (IOException e) {
+				logger.error("testLoad", e);
+				result = null;
+			}
+			
+			assertTrue(result != null && !result.isEmpty());				
+			logger.debug("result : " + result);
+		}
+
+		logger.debug("testLoad: exit");
+	}
+	
+	/**
+	 * Run the void parseTosca(String) method test
+	 */
+	
+	@Test
+	public void testParseTosca() {
+		
+		logger.debug("testParseTosca: enter");
+		boolean isLocalTesting = true;
+		String fileName = null;
+		try {
+			ClassLoader classLoader = getClass().getClassLoader();
+			fileName = new File(classLoader.getResource("policy_tosca_tca-v1707.yml").getFile()).getAbsolutePath();
+		} catch (Exception e1) {
+			logger.error("Exception Occured while loading file"+e1);
+		}
+		
+		MSModelUtils controller = new MSModelUtils();
+        if(isLocalTesting){
+			try {
+			    controller.parseTosca(fileName);
+			}catch (Exception e) {
+				fail("parseTosca caused error: " + e);
+			}
+        }
+		logger.debug("testParseTosca: exit");
+	}
+
+}
\ No newline at end of file
diff --git a/POLICY-SDK-APP/src/test/resources/policy_tosca_tca_v1707.yml b/ONAP-REST/src/test/resources/policy_tosca_tca-v1707.yml
similarity index 100%
copy from POLICY-SDK-APP/src/test/resources/policy_tosca_tca_v1707.yml
copy to ONAP-REST/src/test/resources/policy_tosca_tca-v1707.yml
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java
index 4ae1344..a45bfed 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java
@@ -97,10 +97,6 @@
 		return commonClassDao;
 	}
 
-	public static void setCommonClassDao(CommonClassDao commonClassDao) {
-		CreateOptimizationController.commonClassDao = commonClassDao;
-	}
-
 	private OptimizationModels newModel;
 	private String newFile;
 	private String directory;
@@ -130,6 +126,10 @@
 	
 	@Autowired
 	private CreateOptimizationController(CommonClassDao commonClassDao){
+		setCommonClassDao(commonClassDao);
+	}
+	
+	public static void setCommonClassDao(CommonClassDao commonClassDao) {
 		CreateOptimizationController.commonClassDao = commonClassDao;
 	}
 
@@ -595,7 +595,7 @@
 	}
 	
 	@RequestMapping(value={"/oof_dictionary/set_ModelData"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-	public void SetModelData(HttpServletRequest request, HttpServletResponse response) throws IOException, FileUploadException{
+	public void setModelData(HttpServletRequest request, HttpServletResponse response) throws IOException, FileUploadException{
 		modelList = new ArrayList<>();
 		dirDependencyList = new ArrayList<>();
 		classMap = new LinkedHashMap<>();
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js
index e499c9f..cbd011f 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js
@@ -73,7 +73,7 @@
 		console.log("failed");
 	});
 
-	PolicyAppService.getData('get_PriorityValues').then(function (data) {
+	PolicyAppService.getData('get_DCAEPriorityValues').then(function (data) {
 		var j = data;
 		$scope.data = JSON.parse(j.data);
 		console.log($scope.data);
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateOptimizationControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateOptimizationControllerTest.java
index af573c6..35395a8 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateOptimizationControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateOptimizationControllerTest.java
@@ -386,8 +386,10 @@
 	public void testSetModelData() {		
 		
 		logger.debug("testSetModelData: enter");
-
+		
+		CreateOptimizationController controller = new CreateOptimizationController();
 	    HttpServletRequest request = createMock(HttpServletRequest.class);
+		MockHttpServletResponse response =  new MockHttpServletResponse();
 	    expect(request.getContentType()).andReturn("multipart/form-data; boundary=----WebKitFormBoundaryWcRUaIbC8kXgjr3p");
 	    expect(request.getMethod()).andReturn("post");
 	    expect(request.getHeader("Content-length")).andReturn("7809");
@@ -407,12 +409,14 @@
 		    expect(request.getCharacterEncoding()).andReturn("UTF-8");
 		    expect(request.getContentLength()).andReturn(1024);
 		    replay(request);
-			
+		    controller.setModelData(request, response);
+
 		} catch (Exception e) {
 			logger.error("testSetModelData" + e);
 			e.printStackTrace();
 		}
 	    		
+	    
 		logger.debug("testSetModelData: exit");
 	}
 
diff --git a/POLICY-SDK-APP/src/test/resources/policy_tosca_tca_v1707.yml b/POLICY-SDK-APP/src/test/resources/policy_tosca_tca-v1707.yml
similarity index 100%
rename from POLICY-SDK-APP/src/test/resources/policy_tosca_tca_v1707.yml
rename to POLICY-SDK-APP/src/test/resources/policy_tosca_tca-v1707.yml
diff --git a/packages/base/src/files/install/mysql/data/180601_upgrade_script.sql b/packages/base/src/files/install/mysql/data/180601_upgrade_script.sql
index 070feee..1b1fb76 100644
--- a/packages/base/src/files/install/mysql/data/180601_upgrade_script.sql
+++ b/packages/base/src/files/install/mysql/data/180601_upgrade_script.sql
@@ -51,3 +51,6 @@
 
 ALTER TABLE `onap_sdk`.`microservicemodels` 
 ADD COLUMN `dataOrderInfo` VARCHAR(2000) NULL DEFAULT 'Null' AFTER `enumValues`;
+
+INSERT INTO `onap_sdk`.`optimizationmodels` (`modelname`, `description`, `dependency`, `imported_by`, `attributes`, `ref_attributes`, `sub_attributes`, `version`, `annotation`, `enumValues`, `dataOrderInfo`) VALUES ('hpaPolicy', 'CSIT Tests Model', '[]', 'demo', 'identity=string:defaultValue-null:required-true:MANY-false,resources=string:defaultValue-null:required-true:MANY-false', 'policyScope=MANY-true,policyType=POLICYTYPE:MANY-false,flavorFeatures=flavorFeatures-properties:MANY-true', '{\"flavorProperties-properties\":{\"score\":\"string:defaultValue-null:required-true:MANY-false\",\"featureAttributes\":\"featureAttributes-properties:required-false:MANY-true\",\"mandatory\":\"string:defaultValue-null:required-true:MANY-false\",\"hpaFeature\":\"string:defaultValue-null:required-true:MANY-false\",\"architecture\":\"string:defaultValue-null:required-true:MANY-false\"},\"flavorFeatures-properties\":{\"flavorProperties\":\"flavorProperties-properties:required-false:MANY-true\",\"flavorLabel\":\"string:defaultValue-null:required-true:MANY-false\"},\"featureAttributes-properties\":{\"unit\":\"string:defaultValue-null:required-true:MANY-false\",\"attribute\":\"string:defaultValue-null:required-true:MANY-false\",\"value\":\"string:defaultValue-null:required-true:MANY-false\",\"operator\":\"OPERATOR:required-true:MANY-false\"}}\n', 'CSIT', 'policyScope=matching-true', 'OPERATOR=[<,<equal-sign,>,>equal-sign,equal-sign,!equal-sign,any,all,subset,], POLICYTYPE=[hpaPolicy,]', '\"[resources,identity,policyScope,policyType,flavorFeatures,flavorLabel,flavorProperties,architecture,hpaFeature,mandatory,score,featureAttributes,attribute,operator,unit,value]\"');
+