Merge "Add Junit to policy/engine LogParser package"
[policy/engine.git] / POLICY-SDK-APP / src / test / java / org / onap / policy / admin / PolicyManagerServletTest.java
index a034c8a..be0a92e 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP Policy Engine
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 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.
@@ -19,6 +19,7 @@
  */
 package org.onap.policy.admin;
 
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.BufferedReader;
@@ -28,10 +29,10 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import javax.script.SimpleBindings;
 import javax.servlet.ServletConfig;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
 
 import org.apache.commons.io.IOUtils;
 import org.junit.Before;
@@ -41,6 +42,7 @@ import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.controller.CreateDcaeMicroServiceController;
 import org.onap.policy.controller.PolicyController;
+import org.onap.policy.model.Roles;
 import org.onap.policy.rest.dao.CommonClassDao;
 import org.onap.policy.rest.jpa.ActionBodyEntity;
 import org.onap.policy.rest.jpa.ConfigurationDataEntity;
@@ -49,7 +51,8 @@ import org.onap.policy.rest.jpa.PolicyEditorScopes;
 import org.onap.policy.rest.jpa.PolicyEntity;
 import org.onap.policy.rest.jpa.PolicyVersion;
 import org.onap.policy.rest.jpa.UserInfo;
-import org.openecomp.policy.model.Roles;
+import org.onap.portalsdk.core.domain.User;
+import org.onap.portalsdk.core.util.SystemProperties;
 
 public class PolicyManagerServletTest extends Mockito{
        
@@ -61,10 +64,17 @@ public class PolicyManagerServletTest extends Mockito{
        private static List<Object> policyEditorScopes;
        private static List<Object> policyVersion;
        private static CommonClassDao commonClassDao;
+       private HttpServletRequest request;       
+       private HttpServletResponse response; 
        
        @Before
        public void setUp() throws Exception{
                logger.info("setUp: Entering");
+               
+               request = mock(HttpServletRequest.class);       
+        response = mock(HttpServletResponse.class); 
+        
+               PolicyController.setjUnit(true);
                UserInfo userinfo = new UserInfo();
                userinfo.setUserLoginId("Test");
                userinfo.setUserName("Test");
@@ -123,6 +133,13 @@ public class PolicyManagerServletTest extends Mockito{
         policy.setCreatedBy("Test");
         policy.setModifiedBy("Test");
         policyVersion.add(policy);
+        
+        HttpSession mockSession = mock(HttpSession.class);
+        User user = new User();
+               user.setOrgUserId("Test");
+               Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))).thenReturn(user);
+               Mockito.when(request.getSession(false)).thenReturn(mockSession);
+       
        }
        
        @Test
@@ -134,24 +151,56 @@ public class PolicyManagerServletTest extends Mockito{
                when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties");
                System.setProperty("xacml.rest.admin.closedLoopJSON", new File(".").getCanonicalPath() + File.separator + "src"+ File.separator + "test" + File.separator + "resources" + File.separator + "JSONConfig.json");
                        servlet.init(servletConfig);
+                       
+                       assertTrue(PolicyManagerServlet.getServiceTypeNamesList().size() > 0);
+                       assertTrue(PolicyManagerServlet.getPolicyNames().size() > 0);
+                       
+               } catch (Exception e1) {
+                       logger.error("Exception Occured"+e1);
+                       fail();
+               }
+       }
+       
+       @Test
+       public void testBadInitJson() {
+               PolicyManagerServlet servlet = new PolicyManagerServlet();
+               ServletConfig servletConfig = mock(ServletConfig.class);       
+        try {
+               when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers));
+               when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties");
+               System.setProperty("xacml.rest.admin.closedLoopJSON", new File(".").getCanonicalPath() + File.separator + "src"+ File.separator + "test" + File.separator + "resources" + File.separator + "JSONConfig.foo");
+                       servlet.init(servletConfig);
                } catch (Exception e1) {
                        logger.error("Exception Occured"+e1);
                        fail();
                }
        }
        
+       @Test
+       public void testBadInitJsonInvalidFile() {
+               PolicyManagerServlet servlet = new PolicyManagerServlet();
+               ServletConfig servletConfig = mock(ServletConfig.class);       
+        try {
+               when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers));
+               when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties");
+               System.setProperty("xacml.rest.admin.closedLoopJSON", new File(".").getCanonicalPath() + File.separator + "src"+ File.separator + "test" + File.separator + "resources" + File.separator + "IDonotExist.json");
+                       servlet.init(servletConfig);
+               } catch (Exception e1) {
+                       logger.error("Exception Occured"+e1);
+                       fail();
+               }
+       }
+
        @SuppressWarnings("static-access")
        @Test
        public void testDescribePolicy(){
-               PolicyManagerServlet servlet = new PolicyManagerServlet();
-               HttpServletRequest request = mock(HttpServletRequest.class);       
-        HttpServletResponse response = mock(HttpServletResponse.class);  
+               PolicyManagerServlet servlet = new PolicyManagerServlet(); 
         PolicyController controller = mock(PolicyController.class);
-        
         BufferedReader reader = new BufferedReader(new StringReader("{params: { mode: 'DESCRIBEPOLICYFILE', path: 'com.Config_SampleTest1206.1.xml'}}"));
         try {
                        when(request.getReader()).thenReturn(reader);
-                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = 'Config_SampleTest1206.1.xml' and scope ='com'", new SimpleBindings())).thenReturn(basePolicyData);
+                       String query = "FROM PolicyEntity where policyName = :split_1 and scope = :split_0";
+                       when(controller.getDataByQuery(query, null)).thenReturn(basePolicyData);
                        servlet.setPolicyController(controller);
                        servlet.doPost(request, response);
                } catch (Exception e1) {
@@ -165,8 +214,6 @@ public class PolicyManagerServletTest extends Mockito{
        @Test
        public void testPolicyScopeList(){
                PolicyManagerServlet servlet = new PolicyManagerServlet();
-               HttpServletRequest request = mock(HttpServletRequest.class);       
-        HttpServletResponse response = mock(HttpServletResponse.class); 
         PolicyController controller = mock(PolicyController.class);
         List<String> list = new ArrayList<>();
         list.add("{params: { mode: 'LIST', path: '/', onlyFolders: false}}");
@@ -176,9 +223,9 @@ public class PolicyManagerServletTest extends Mockito{
             try {
                        when(request.getReader()).thenReturn(reader);
                        when(controller.getRoles("Test")).thenReturn(rolesdata);
-                       when(controller.getDataByQuery("from PolicyEditorScopes", new SimpleBindings())).thenReturn(policyEditorScopes);
-                       when(controller.getDataByQuery("from PolicyEditorScopes where SCOPENAME like 'com%'", new SimpleBindings())).thenReturn(policyEditorScopes);
-                       when(controller.getDataByQuery("from PolicyVersion where POLICY_NAME like 'com%'", new SimpleBindings())).thenReturn(policyVersion);
+                       when(controller.getDataByQuery("from PolicyEditorScopes", null)).thenReturn(policyEditorScopes);
+                       when(controller.getDataByQuery("from PolicyEditorScopes where SCOPENAME like :scopeName", null)).thenReturn(policyEditorScopes);
+                       when(controller.getDataByQuery("from PolicyVersion where POLICY_NAME like :scopeName", null)).thenReturn(policyVersion);
                        servlet.setPolicyController(controller);
                        servlet.setTestUserId("Test");
                        servlet.doPost(request, response);
@@ -193,8 +240,6 @@ public class PolicyManagerServletTest extends Mockito{
        @Test
        public void editBasePolicyTest(){
                PolicyManagerServlet servlet = new PolicyManagerServlet();
-               HttpServletRequest request = mock(HttpServletRequest.class);       
-        HttpServletResponse response = mock(HttpServletResponse.class); 
         PolicyController controller = mock(PolicyController.class);
         List<String> list = new ArrayList<>();
         list.add("{params: { mode: 'EDITFILE', path: '/com/Config_SampleTest1206.1.xml', onlyFolders: false}}");
@@ -203,7 +248,7 @@ public class PolicyManagerServletTest extends Mockito{
             try {
                        when(request.getReader()).thenReturn(reader);
                        when(controller.getRoles("Test")).thenReturn(rolesdata);
-                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = 'Config_SampleTest1206.1.xml' and scope ='com'", new SimpleBindings())).thenReturn(basePolicyData);
+                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)).thenReturn(basePolicyData);
                        servlet.setPolicyController(controller);
                        servlet.setTestUserId("Test");
                        servlet.doPost(request, response);
@@ -238,9 +283,7 @@ public class PolicyManagerServletTest extends Mockito{
         configurationEntity.setDescription("test");
         entity.setConfigurationData(configurationEntity);
         policyData.add(entity);
-               PolicyManagerServlet servlet = new PolicyManagerServlet();
-               HttpServletRequest request = mock(HttpServletRequest.class);       
-        HttpServletResponse response = mock(HttpServletResponse.class); 
+               PolicyManagerServlet servlet = new PolicyManagerServlet(); 
         PolicyController controller = mock(PolicyController.class);
         List<String> list = new ArrayList<>();
         list.add("{params: { mode: 'EDITFILE', path: '/com/Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml', onlyFolders: false}}");
@@ -249,7 +292,7 @@ public class PolicyManagerServletTest extends Mockito{
             try {
                        when(request.getReader()).thenReturn(reader);
                        when(controller.getRoles("Test")).thenReturn(rolesdata);
-                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = 'Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml' and scope ='com'", new SimpleBindings())).thenReturn(policyData);
+                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)).thenReturn(policyData);
                        servlet.setPolicyController(controller);
                        servlet.setTestUserId("Test");
                        servlet.doPost(request, response);
@@ -284,9 +327,7 @@ public class PolicyManagerServletTest extends Mockito{
         configurationEntity.setDescription("test");
         entity.setConfigurationData(configurationEntity);
         policyData.add(entity);
-               PolicyManagerServlet servlet = new PolicyManagerServlet();
-               HttpServletRequest request = mock(HttpServletRequest.class);       
-        HttpServletResponse response = mock(HttpServletResponse.class); 
+               PolicyManagerServlet servlet = new PolicyManagerServlet(); 
         PolicyController controller = mock(PolicyController.class);
         List<String> list = new ArrayList<>();
         list.add("{params: { mode: 'EDITFILE', path: '/com/Config_BRMS_Raw_TestBRMSRawPolicy.1.xml', onlyFolders: false}}");
@@ -295,7 +336,7 @@ public class PolicyManagerServletTest extends Mockito{
             try {
                        when(request.getReader()).thenReturn(reader);
                        when(controller.getRoles("Test")).thenReturn(rolesdata);
-                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = 'Config_BRMS_Raw_TestBRMSRawPolicy.1.xml' and scope ='com'", new SimpleBindings())).thenReturn(policyData);
+                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)).thenReturn(policyData);
                        servlet.setPolicyController(controller);
                        servlet.setTestUserId("Test");
                        servlet.doPost(request, response);
@@ -331,8 +372,6 @@ public class PolicyManagerServletTest extends Mockito{
         entity.setConfigurationData(configurationEntity);
         policyData.add(entity);
                PolicyManagerServlet servlet = new PolicyManagerServlet();
-               HttpServletRequest request = mock(HttpServletRequest.class);       
-        HttpServletResponse response = mock(HttpServletResponse.class); 
         PolicyController controller = mock(PolicyController.class);
         List<String> list = new ArrayList<>();
         list.add("{params: { mode: 'EDITFILE', path: '/com/Config_Fault_TestClosedLoopPolicy.1.xml', onlyFolders: false}}");
@@ -341,7 +380,7 @@ public class PolicyManagerServletTest extends Mockito{
             try {
                        when(request.getReader()).thenReturn(reader);
                        when(controller.getRoles("Test")).thenReturn(rolesdata);
-                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = 'Config_Fault_TestClosedLoopPolicy.1.xml' and scope ='com'", new SimpleBindings())).thenReturn(policyData);
+                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)).thenReturn(policyData);
                        servlet.setPolicyController(controller);
                        servlet.setTestUserId("Test");
                        servlet.doPost(request, response);
@@ -377,8 +416,6 @@ public class PolicyManagerServletTest extends Mockito{
         entity.setConfigurationData(configurationEntity);
         policyData.add(entity);
                PolicyManagerServlet servlet = new PolicyManagerServlet();
-               HttpServletRequest request = mock(HttpServletRequest.class);       
-        HttpServletResponse response = mock(HttpServletResponse.class); 
         PolicyController controller = mock(PolicyController.class);
         List<String> list = new ArrayList<>();
         list.add("{params: { mode: 'EDITFILE', path: '/com/Config_PM_TestClosedLoopPMPolicy.1.xml', onlyFolders: false}}");
@@ -387,7 +424,7 @@ public class PolicyManagerServletTest extends Mockito{
             try {
                        when(request.getReader()).thenReturn(reader);
                        when(controller.getRoles("Test")).thenReturn(rolesdata);
-                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = 'Config_PM_TestClosedLoopPMPolicy.1.xml' and scope ='com'", new SimpleBindings())).thenReturn(policyData);
+                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)).thenReturn(policyData);
                        servlet.setPolicyController(controller);
                        servlet.setTestUserId("Test");
                        servlet.doPost(request, response);
@@ -429,9 +466,7 @@ public class PolicyManagerServletTest extends Mockito{
         configurationEntity.setDescription("test");
         entity.setConfigurationData(configurationEntity);
         policyData.add(entity);
-               PolicyManagerServlet servlet = new PolicyManagerServlet();
-               HttpServletRequest request = mock(HttpServletRequest.class);       
-        HttpServletResponse response = mock(HttpServletResponse.class); 
+               PolicyManagerServlet servlet = new PolicyManagerServlet(); 
         PolicyController controller = mock(PolicyController.class);
         List<String> list = new ArrayList<>();
         list.add("{params: { mode: 'EDITFILE', path: '/com/Config_MS_vFirewall.1.xml', onlyFolders: false}}");
@@ -441,7 +476,7 @@ public class PolicyManagerServletTest extends Mockito{
                        when(request.getReader()).thenReturn(reader);
                        when(commonClassDao.getDataById(GroupPolicyScopeList.class, "groupList", "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop")).thenReturn(groupListData);
                        when(controller.getRoles("Test")).thenReturn(rolesdata);
-                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = 'Config_MS_vFirewall.1.xml' and scope ='com'", new SimpleBindings())).thenReturn(policyData);
+                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)).thenReturn(policyData);
                        servlet.setPolicyController(controller);
                        servlet.setTestUserId("Test");
                        servlet.doPost(request, response);
@@ -477,8 +512,6 @@ public class PolicyManagerServletTest extends Mockito{
         entity.setConfigurationData(configurationEntity);
         policyData.add(entity);
                PolicyManagerServlet servlet = new PolicyManagerServlet();
-               HttpServletRequest request = mock(HttpServletRequest.class);       
-        HttpServletResponse response = mock(HttpServletResponse.class); 
         PolicyController controller = mock(PolicyController.class);
         List<String> list = new ArrayList<>();
         list.add("{params: { mode: 'EDITFILE', path: '/com/Config_FW_TestFireWallPolicy.1.xml', onlyFolders: false}}");
@@ -487,7 +520,7 @@ public class PolicyManagerServletTest extends Mockito{
             try {
                        when(request.getReader()).thenReturn(reader);
                        when(controller.getRoles("Test")).thenReturn(rolesdata);
-                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = 'Config_FW_TestFireWallPolicy.1.xml' and scope ='com'", new SimpleBindings())).thenReturn(policyData);
+                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)).thenReturn(policyData);
                        servlet.setPolicyController(controller);
                        servlet.setTestUserId("Test");
                        servlet.doPost(request, response);
@@ -520,9 +553,7 @@ public class PolicyManagerServletTest extends Mockito{
         configurationEntity.setActionBodyName("com.Action_TestActionPolicy.1.json");
         entity.setActionBodyEntity(configurationEntity);
         policyData.add(entity);
-               PolicyManagerServlet servlet = new PolicyManagerServlet();
-               HttpServletRequest request = mock(HttpServletRequest.class);       
-        HttpServletResponse response = mock(HttpServletResponse.class); 
+               PolicyManagerServlet servlet = new PolicyManagerServlet(); 
         PolicyController controller = mock(PolicyController.class);
         List<String> list = new ArrayList<>();
         list.add("{params: { mode: 'EDITFILE', path: '/com/Action_TestActionPolicy.1.xml', onlyFolders: false}}");
@@ -531,7 +562,7 @@ public class PolicyManagerServletTest extends Mockito{
             try {
                        when(request.getReader()).thenReturn(reader);
                        when(controller.getRoles("Test")).thenReturn(rolesdata);
-                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = 'Action_TestActionPolicy.1.xml' and scope ='com'", new SimpleBindings())).thenReturn(policyData);
+                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)).thenReturn(policyData);
                        servlet.setPolicyController(controller);
                        servlet.setTestUserId("Test");
                        servlet.doPost(request, response);
@@ -558,9 +589,7 @@ public class PolicyManagerServletTest extends Mockito{
         entity.setPolicyData(policyContent);
         entity.setScope("com");
         policyData.add(entity);
-               PolicyManagerServlet servlet = new PolicyManagerServlet();
-               HttpServletRequest request = mock(HttpServletRequest.class);       
-        HttpServletResponse response = mock(HttpServletResponse.class); 
+               PolicyManagerServlet servlet = new PolicyManagerServlet(); 
         PolicyController controller = mock(PolicyController.class);
         List<String> list = new ArrayList<>();
         list.add("{params: { mode: 'EDITFILE', path: '/com/Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml', onlyFolders: false}}");
@@ -569,7 +598,7 @@ public class PolicyManagerServletTest extends Mockito{
             try {
                        when(request.getReader()).thenReturn(reader);
                        when(controller.getRoles("Test")).thenReturn(rolesdata);
-                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = 'Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml' and scope ='com'", new SimpleBindings())).thenReturn(policyData);
+                       when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)).thenReturn(policyData);
                        servlet.setPolicyController(controller);
                        servlet.setTestUserId("Test");
                        servlet.doPost(request, response);