Added Junits for POLICY-SDK-APP
[policy/engine.git] / POLICY-SDK-APP / src / test / java / org / onap / policy / admin / PolicyManagerServletTest.java
index dc2159b..06a2bb9 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;
@@ -30,7 +31,7 @@ import java.util.List;
 
 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;
@@ -49,6 +50,9 @@ 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.onap.portalsdk.core.domain.User;
+import org.onap.portalsdk.core.util.SystemProperties;
+import org.springframework.mock.web.MockHttpServletResponse;
 
 public class PolicyManagerServletTest extends Mockito{
        
@@ -60,10 +64,17 @@ public class PolicyManagerServletTest extends Mockito{
        private static List<Object> policyEditorScopes;
        private static List<Object> policyVersion;
        private static CommonClassDao commonClassDao;
+       private ConfigurationDataEntity configurationEntity;
+       private HttpServletRequest request;       
+       private MockHttpServletResponse response; 
        
        @Before
        public void setUp() throws Exception{
                logger.info("setUp: Entering");
+               
+               request = mock(HttpServletRequest.class);       
+        response = new MockHttpServletResponse(); 
+        
                PolicyController.setjUnit(true);
                UserInfo userinfo = new UserInfo();
                userinfo.setUserLoginId("Test");
@@ -93,7 +104,7 @@ public class PolicyManagerServletTest extends Mockito{
         entity.setPolicyName("Config_SampleTest.1.xml");
         entity.setPolicyData(policyContent);
         entity.setScope("com");
-        ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
+        configurationEntity = new ConfigurationDataEntity();
         configurationEntity.setConfigBody("Sample Test");
         configurationEntity.setConfigType("OTHER");
         configurationEntity.setConfigurationName("com.Config_SampleTest1206.1.txt");
@@ -123,6 +134,14 @@ 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);
+               commonClassDao = mock(CommonClassDao.class);
+       
        }
        
        @Test
@@ -134,18 +153,50 @@ 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 {
@@ -165,8 +216,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}}");
@@ -193,8 +242,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}}");
@@ -238,9 +285,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}}");
@@ -284,9 +329,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}}");
@@ -331,8 +374,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}}");
@@ -377,8 +418,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}}");
@@ -429,9 +468,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}}");
@@ -477,8 +514,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}}");
@@ -520,9 +555,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}}");
@@ -558,9 +591,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}}");
@@ -579,4 +610,86 @@ public class PolicyManagerServletTest extends Mockito{
                }
         }
        }
+       
+       @Test
+       public void testAddScope(){
+               PolicyManagerServlet servlet = new PolicyManagerServlet(); 
+        PolicyController controller = mock(PolicyController.class);
+        List<BufferedReader> readers = new ArrayList<>();
+        readers.add(new BufferedReader(new StringReader("{params: { mode: 'ADDFOLDER', path: '/', name: 'Test'}}")));
+        readers.add(new BufferedReader(new StringReader("{params: { mode: 'ADDFOLDER', path: '/', name: 'Test*&'}}")));
+        readers.add(new BufferedReader(new StringReader("{params: { mode: 'ADDFOLDER', path: '/Test', subScopename: 'Test1'}}")));
+        for(int i=0; i<readers.size(); i++){
+               try {
+                       when(request.getReader()).thenReturn(readers.get(i));
+                       PolicyManagerServlet.setPolicyController(controller);
+                       servlet.doPost(request, response);
+                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
+               } catch (Exception e1) {
+                       logger.error("Exception Occured"+e1);
+                       fail();
+               }
+        }
+       }
+       
+       @Test
+       public void testClone(){
+               PolicyManagerServlet servlet = new PolicyManagerServlet(); 
+        PolicyController controller = mock(PolicyController.class);
+        List<BufferedReader> readers = new ArrayList<>();
+        when(controller.getEntityItem(ConfigurationDataEntity.class, "configurationName", "com.Config_SampleTest1206.1.txt")).thenReturn(configurationEntity);
+               when(controller.getDataByQuery("FROM PolicyEntity where policyName = :oldPolicySplit_1 and scope = :oldPolicySplit_0", null)).thenReturn(basePolicyData); 
+        readers.add(new BufferedReader(new StringReader("{params: { mode: 'COPY', path: 'com.Config_test.1.xml', newPath: 'com.Config_testClone.1.xml'}}")));
+        for(int i=0; i<readers.size(); i++){
+               try {
+                       when(request.getReader()).thenReturn(readers.get(i));
+                       PolicyManagerServlet.setPolicyController(controller);
+                       servlet.doPost(request, response);
+                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
+               } catch (Exception e1) {
+                       logger.error("Exception Occured"+e1);
+                       fail();
+               }
+        }
+       }
+       
+       @Test
+       public void testRename(){
+               PolicyManagerServlet servlet = new PolicyManagerServlet(); 
+        PolicyController controller = mock(PolicyController.class);
+        List<BufferedReader> readers = new ArrayList<>();
+        when(controller.getEntityItem(ConfigurationDataEntity.class, "configurationName", "com.Config_SampleTest1206.1.txt")).thenReturn(configurationEntity);
+               when(controller.getDataByQuery("FROM PolicyEntity where policyName = :oldPolicySplit_1 and scope = :oldPolicySplit_0", null)).thenReturn(basePolicyData); 
+        readers.add(new BufferedReader(new StringReader("{params: { mode: 'RENAME', path: 'com.Config_test.1.xml', newPath: 'com.Config_testClone.1.xml'}}")));
+        for(int i=0; i<readers.size(); i++){
+               try {
+                       when(request.getReader()).thenReturn(readers.get(i));
+                       PolicyManagerServlet.setPolicyController(controller);
+                       servlet.doPost(request, response);
+                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
+               } catch (Exception e1) {
+                       logger.error("Exception Occured"+e1);
+                       fail();
+               }
+        }
+       }
+       
+       @Test
+       public void testRenameScope(){
+               PolicyManagerServlet servlet = new PolicyManagerServlet(); 
+        PolicyController controller = mock(PolicyController.class);
+        List<BufferedReader> readers = new ArrayList<>();
+        readers.add(new BufferedReader(new StringReader("{params: { mode: 'RENAME', path: 'com', newPath: 'Test'}}")));
+        for(int i=0; i<readers.size(); i++){
+               try {
+                       when(request.getReader()).thenReturn(readers.get(i));
+                       PolicyManagerServlet.setPolicyController(controller);
+                       servlet.doPost(request, response);
+                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
+               } catch (Exception e1) {
+                       logger.error("Exception Occured"+e1);
+                       fail();
+               }
+        }
+       }
 }