diff options
Diffstat (limited to 'POLICY-SDK-APP/src/test/java/org/onap/policy/admin')
7 files changed, 989 insertions, 423 deletions
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPDPTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPDPTest.java deleted file mode 100644 index a06afc997..000000000 --- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPDPTest.java +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP Policy Engine - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Modifications Copyright (C) 2019 Samsung - * ================================================================================ - * 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.policy.admin; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import java.io.File; -import org.junit.FixMethodOrder; -import org.junit.Test; -import org.junit.runners.MethodSorters; - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class CheckPDPTest { - - @Test - public final void test1NoPropertySet() { - try { - System.clearProperty("xacml.rest.pdp.idfile"); - assertFalse(CheckPDP.validateID("http://localhost:8082/pdp/")); - - System.setProperty("xacml.rest.pdp.idfile", - new File(".").getCanonicalPath() + File.separator + "src" + File.separator - + "test" + File.separator + "resources" + File.separator - + "idonotexist.properties"); - assertFalse(CheckPDP.validateID("http://localhost:8082/pdp/")); - - System.setProperty("xacml.rest.pdp.idfile", - new File(".").getCanonicalPath() + File.separator + "src" + File.separator - + "test" + File.separator + "resources" + File.separator - + "doesnothaveproperties.atall"); - assertFalse(CheckPDP.validateID("http://localhost:8082/pdp/")); - - System.setProperty("xacml.rest.pdp.idfile", - new File(".").getCanonicalPath() + File.separator + "src" + File.separator - + "test" + File.separator + "resources" + File.separator - + "testbad.properties"); - assertFalse(CheckPDP.validateID("http://localhost:8082/pdp/")); - - System.setProperty("xacml.rest.pdp.idfile", - new File(".").getCanonicalPath() + File.separator + "src" + File.separator - + "test" + File.separator + "resources" + File.separator - + "empty.properties"); - assertFalse(CheckPDP.validateID("http://localhost:8082/pdp/")); - - System.setProperty("xacml.rest.pdp.idfile", - new File(".").getCanonicalPath() + File.separator + "src" + File.separator - + "test" + File.separator + "resources" + File.separator - + "testnotenoughvalues.properties"); - assertFalse(CheckPDP.validateID("http://localhost:8082/pdp/")); - - assertNull(CheckPDP.getPdpMap()); - assertNull(CheckPDP.getEncoding("http://localhost:8082/pdp/")); - - } catch (Exception e) { - fail("Error occured in CheckPDP test"); - } - } - - @Test - public final void test2CheckPDP() { - try { - System.setProperty("xacml.rest.pdp.idfile", - new File(".").getCanonicalPath() + File.separator + "src" + File.separator - + "test" + File.separator + "resources" + File.separator - + "test.properties"); - assertTrue(CheckPDP.validateID("http://localhost:8082/pdp/")); - assertTrue(CheckPDP.getPdpMap().containsKey("http://localhost:8082/pdp/")); - assertTrue(CheckPDP.getEncoding("http://localhost:8082/pdp/") - .equals("dGVzdHBkcDphbHBoYTQ1Ng==")); - } catch (Exception e) { - fail("Error occured in CheckPDP test"); - } - } -} diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPdpPropertiesTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPdpPropertiesTest.java new file mode 100644 index 000000000..afb6fc8b0 --- /dev/null +++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPdpPropertiesTest.java @@ -0,0 +1,82 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP Policy Engine + * ================================================================================ + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright (C) 2019 Samsung + * ================================================================================ + * 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.policy.admin; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import com.att.research.xacml.util.XACMLProperties; +import java.io.File; +import java.io.IOException; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class CheckPdpPropertiesTest { + + @Test + public final void test1NoPropertySet() throws IOException { + System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "noexistenfile.properties"); + assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/")); + + System.clearProperty(XACMLProperties.XACML_PROPERTIES_NAME); + System.clearProperty("xacml.rest.pdp.idfile"); + assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/")); + + System.setProperty("xacml.rest.pdp.idfile", new File(".").getCanonicalPath() + File.separator + "src" + + File.separator + "test" + File.separator + "resources" + File.separator + "idonotexist.properties"); + assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/")); + + System.setProperty("xacml.rest.pdp.idfile", + new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator + + "resources" + File.separator + "doesnothaveproperties.atall"); + assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/")); + + System.setProperty("xacml.rest.pdp.idfile", new File(".").getCanonicalPath() + File.separator + "src" + + File.separator + "test" + File.separator + "resources" + File.separator + "testbad.properties"); + assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/")); + + System.setProperty("xacml.rest.pdp.idfile", new File(".").getCanonicalPath() + File.separator + "src" + + File.separator + "test" + File.separator + "resources" + File.separator + "empty.properties"); + assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/")); + + System.setProperty("xacml.rest.pdp.idfile", + new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator + + "resources" + File.separator + "testnotenoughvalues.properties"); + assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/")); + + assertNull(CheckPdpProperties.getPdpMap()); + assertNull(CheckPdpProperties.getEncoding("http://localhost:8082/pdp/")); + } + + @Test + public final void test2CheckPdp() throws IOException { + System.setProperty("xacml.rest.pdp.idfile", new File(".").getCanonicalPath() + File.separator + "src" + + File.separator + "test" + File.separator + "resources" + File.separator + "test.properties"); + assertTrue(CheckPdpProperties.validateId("http://localhost:8082/pdp/")); + assertTrue(CheckPdpProperties.getPdpMap().containsKey("http://localhost:8082/pdp/")); + assertTrue(CheckPdpProperties.getEncoding("http://localhost:8082/pdp/").equals("dGVzdHBkcDphbHBoYTQ1Ng==")); + } +} diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java index 7bd3be440..c3b98f525 100644 --- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java +++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Modifications Copyright (C) 2019 Samsung * ================================================================================ @@ -19,22 +19,42 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.admin; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.BufferedReader; import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintWriter; import java.io.StringReader; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import javax.json.JsonArray; +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.fileupload.FileItem; import org.apache.commons.io.IOUtils; +import org.json.JSONArray; +import org.json.JSONObject; +import org.junit.AfterClass; import org.junit.Before; +import org.junit.FixMethodOrder; import org.junit.Test; +import org.junit.runners.MethodSorters; import org.mockito.Mockito; import org.onap.policy.common.logging.flexlogger.FlexLogger; import org.onap.policy.common.logging.flexlogger.Logger; @@ -49,10 +69,13 @@ 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.policy.utils.UserUtils.Pair; import org.onap.portalsdk.core.domain.User; import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.reflect.Whitebox; import org.springframework.mock.web.MockHttpServletResponse; +@FixMethodOrder(MethodSorters.NAME_ASCENDING) public class PolicyManagerServletTest extends Mockito { private static Logger logger = FlexLogger.getLogger(PolicyManagerServletTest.class); @@ -67,6 +90,21 @@ public class PolicyManagerServletTest extends Mockito { private HttpServletRequest request; private MockHttpServletResponse response; + /** + * Delete test File. + * + */ + @AfterClass + public static void tearDown() { + File destroyFile = new File("testFileName.xls"); + destroyFile.deleteOnExit(); + } + + /** + * setUp. + * + * @throws Exception should not get one + */ @Before public void setUp() throws Exception { logger.info("setUp: Entering"); @@ -98,8 +136,7 @@ public class PolicyManagerServletTest extends Mockito { String policyContent = ""; try { ClassLoader classLoader = getClass().getClassLoader(); - policyContent = IOUtils - .toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml")); + policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml")); } catch (Exception e1) { logger.error("Exception Occured" + e1); } @@ -141,26 +178,22 @@ public class PolicyManagerServletTest extends Mockito { 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(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))).thenReturn(user); Mockito.when(request.getSession(false)).thenReturn(mockSession); commonClassDao = mock(CommonClassDao.class); } @Test - public void testInit() { + public void test01Init() { 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"); + 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.json"); + new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator + + "resources" + File.separator + "JSONConfig.json"); servlet.init(servletConfig); assertTrue(PolicyManagerServlet.getServiceTypeNamesList().size() > 0); @@ -173,18 +206,15 @@ public class PolicyManagerServletTest extends Mockito { } @Test - public void testBadInitJson() { + public void test02BadInitJson() { 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"); + 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"); + 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); @@ -193,18 +223,15 @@ public class PolicyManagerServletTest extends Mockito { } @Test - public void testBadInitJsonInvalidFile() { + public void test03BadInitJsonInvalidFile() { 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"); + 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"); + 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); @@ -214,11 +241,11 @@ public class PolicyManagerServletTest extends Mockito { @SuppressWarnings("static-access") @Test - public void testDescribePolicy() { + public void test04DescribePolicy() { PolicyManagerServlet servlet = new PolicyManagerServlet(); PolicyController controller = mock(PolicyController.class); - BufferedReader reader = new BufferedReader(new StringReader( - "{params: { mode: 'DESCRIBEPOLICYFILE', path: 'com.Config_SampleTest1206.1.xml'}}")); + BufferedReader reader = new BufferedReader( + new StringReader("{params: { mode: 'DESCRIBEPOLICYFILE', path: 'com.Config_SampleTest1206.1.xml'}}")); try { when(request.getReader()).thenReturn(reader); String query = "FROM PolicyEntity where policyName = :split_1 and scope = :split_0"; @@ -231,10 +258,9 @@ public class PolicyManagerServletTest extends Mockito { } } - @SuppressWarnings("static-access") @Test - public void testPolicyScopeList() { + public void test05PolicyScopeList() { PolicyManagerServlet servlet = new PolicyManagerServlet(); PolicyController controller = mock(PolicyController.class); List<String> list = new ArrayList<>(); @@ -245,14 +271,11 @@ public class PolicyManagerServletTest extends Mockito { try { when(request.getReader()).thenReturn(reader); when(controller.getRoles("Test")).thenReturn(rolesdata); - when(controller.getDataByQuery("from PolicyEditorScopes", null)) + when(controller.getDataByQuery("from PolicyEditorScopes", null)).thenReturn(policyEditorScopes); + when(controller.getDataByQuery("from PolicyEditorScopes where SCOPENAME like :scopeName", 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); + when(controller.getDataByQuery("from PolicyVersion where POLICY_NAME like :scopeName", null)) + .thenReturn(policyVersion); servlet.setPolicyController(controller); servlet.setTestUserId("Test"); servlet.doPost(request, response); @@ -265,20 +288,18 @@ public class PolicyManagerServletTest extends Mockito { @SuppressWarnings("static-access") @Test - public void editBasePolicyTest() { + public void test06editBasePolicyTest() { PolicyManagerServlet servlet = new PolicyManagerServlet(); PolicyController controller = mock(PolicyController.class); List<String> list = new ArrayList<>(); - list.add( - "{params: { mode: 'EDITFILE', path: '/com/Config_SampleTest1206.1.xml', onlyFolders: false}}"); + list.add("{params: { mode: 'EDITFILE', path: '/com/Config_SampleTest1206.1.xml', onlyFolders: false}}"); for (int i = 0; i < list.size(); i++) { BufferedReader reader = new BufferedReader(new StringReader(list.get(i))); try { when(request.getReader()).thenReturn(reader); when(controller.getRoles("Test")).thenReturn(rolesdata); - when(controller.getDataByQuery( - "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)) - .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); @@ -291,16 +312,16 @@ public class PolicyManagerServletTest extends Mockito { @SuppressWarnings("static-access") @Test - public void editBRMSParamPolicyTest() { + public void test07editBRMSParamPolicyTest() { List<Object> policyData = new ArrayList<>(); String policyContent = ""; String configData = ""; try { ClassLoader classLoader = getClass().getClassLoader(); - policyContent = IOUtils.toString(classLoader - .getResourceAsStream("Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml")); - configData = IOUtils.toString(classLoader - .getResourceAsStream("com.Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.txt")); + policyContent = + IOUtils.toString(classLoader.getResourceAsStream("Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml")); + configData = IOUtils + .toString(classLoader.getResourceAsStream("com.Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.txt")); } catch (Exception e1) { logger.error("Exception Occured" + e1); } @@ -311,25 +332,22 @@ public class PolicyManagerServletTest extends Mockito { ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity(); configurationEntity.setConfigBody(configData); configurationEntity.setConfigType("OTHER"); - configurationEntity - .setConfigurationName("com.Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.txt"); + configurationEntity.setConfigurationName("com.Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.txt"); configurationEntity.setDescription("test"); entity.setConfigurationData(configurationEntity); policyData.add(entity); 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}}"); + list.add("{params: { mode: 'EDITFILE', path: '/com/Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml'," + + " onlyFolders: false}}"); for (int i = 0; i < list.size(); i++) { BufferedReader reader = new BufferedReader(new StringReader(list.get(i))); try { when(request.getReader()).thenReturn(reader); when(controller.getRoles("Test")).thenReturn(rolesdata); - when(controller.getDataByQuery( - "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)) - .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); @@ -342,16 +360,16 @@ public class PolicyManagerServletTest extends Mockito { @SuppressWarnings("static-access") @Test - public void editBRMSRawPolicyTest() { + public void test08editBRMSRawPolicyTest() { List<Object> policyData = new ArrayList<>(); String policyContent = ""; String configData = ""; try { ClassLoader classLoader = getClass().getClassLoader(); - policyContent = IOUtils.toString( - classLoader.getResourceAsStream("Config_BRMS_Raw_TestBRMSRawPolicy.1.xml")); - configData = IOUtils.toString( - classLoader.getResourceAsStream("com.Config_BRMS_Raw_TestBRMSRawPolicy.1.txt")); + policyContent = + IOUtils.toString(classLoader.getResourceAsStream("Config_BRMS_Raw_TestBRMSRawPolicy.1.xml")); + configData = + IOUtils.toString(classLoader.getResourceAsStream("com.Config_BRMS_Raw_TestBRMSRawPolicy.1.txt")); } catch (Exception e1) { logger.error("Exception Occured" + e1); } @@ -369,17 +387,15 @@ public class PolicyManagerServletTest extends Mockito { 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}}"); + list.add("{params: { mode: 'EDITFILE', path: '/com/Config_BRMS_Raw_TestBRMSRawPolicy.1.xml'," + + " onlyFolders: false}}"); for (int i = 0; i < list.size(); i++) { BufferedReader reader = new BufferedReader(new StringReader(list.get(i))); try { when(request.getReader()).thenReturn(reader); when(controller.getRoles("Test")).thenReturn(rolesdata); - when(controller.getDataByQuery( - "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)) - .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); @@ -392,16 +408,16 @@ public class PolicyManagerServletTest extends Mockito { @SuppressWarnings("static-access") @Test - public void editClosedLoopFaultPolicyTest() { + public void test09editClosedLoopFaultPolicyTest() { List<Object> policyData = new ArrayList<>(); String policyContent = ""; String configData = ""; try { ClassLoader classLoader = getClass().getClassLoader(); - policyContent = IOUtils.toString( - classLoader.getResourceAsStream("Config_Fault_TestClosedLoopPolicy.1.xml")); - configData = IOUtils.toString(classLoader - .getResourceAsStream("com.Config_Fault_TestClosedLoopPolicy.1.json")); + policyContent = + IOUtils.toString(classLoader.getResourceAsStream("Config_Fault_TestClosedLoopPolicy.1.xml")); + configData = + IOUtils.toString(classLoader.getResourceAsStream("com.Config_Fault_TestClosedLoopPolicy.1.json")); } catch (Exception e1) { logger.error("Exception Occured" + e1); } @@ -419,17 +435,15 @@ public class PolicyManagerServletTest extends Mockito { PolicyManagerServlet servlet = new PolicyManagerServlet(); PolicyController controller = mock(PolicyController.class); List<String> list = new ArrayList<>(); - list.add( - "{params: { mode: 'EDITFILE', path: '/com/Config_Fault_TestClosedLoopPolicy.1.xml'," - + " onlyFolders: false}}"); + list.add("{params: { mode: 'EDITFILE', path: '/com/Config_Fault_TestClosedLoopPolicy.1.xml'," + + " onlyFolders: false}}"); for (int i = 0; i < list.size(); i++) { BufferedReader reader = new BufferedReader(new StringReader(list.get(i))); try { when(request.getReader()).thenReturn(reader); when(controller.getRoles("Test")).thenReturn(rolesdata); - when(controller.getDataByQuery( - "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)) - .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); @@ -442,16 +456,15 @@ public class PolicyManagerServletTest extends Mockito { @SuppressWarnings("static-access") @Test - public void editClosedLoopPMPolicyTest() { + public void test10editClosedLoopPMPolicyTest() { List<Object> policyData = new ArrayList<>(); String policyContent = ""; String configData = ""; try { ClassLoader classLoader = getClass().getClassLoader(); - policyContent = IOUtils.toString( - classLoader.getResourceAsStream("Config_PM_TestClosedLoopPMPolicy.1.xml")); - configData = IOUtils.toString( - classLoader.getResourceAsStream("com.Config_PM_TestClosedLoopPMPolicy.1.json")); + policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_PM_TestClosedLoopPMPolicy.1.xml")); + configData = + IOUtils.toString(classLoader.getResourceAsStream("com.Config_PM_TestClosedLoopPMPolicy.1.json")); } catch (Exception e1) { logger.error("Exception Occured" + e1); } @@ -476,9 +489,8 @@ public class PolicyManagerServletTest extends Mockito { try { when(request.getReader()).thenReturn(reader); when(controller.getRoles("Test")).thenReturn(rolesdata); - when(controller.getDataByQuery( - "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)) - .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); @@ -491,7 +503,7 @@ public class PolicyManagerServletTest extends Mockito { @SuppressWarnings("static-access") @Test - public void editMicroServicePolicyTest() { + public void test11editMicroServicePolicyTest() { GroupPolicyScopeList groupData = new GroupPolicyScopeList(); groupData.setGroupName("Test"); groupData.setGroupList("resource=SampleResource,service=SampleService,type=SampleType," @@ -505,10 +517,8 @@ public class PolicyManagerServletTest extends Mockito { String configData = ""; try { ClassLoader classLoader = getClass().getClassLoader(); - policyContent = - IOUtils.toString(classLoader.getResourceAsStream("Config_MS_vFirewall.1.xml")); - configData = IOUtils - .toString(classLoader.getResourceAsStream("com.Config_MS_vFirewall.1.json")); + policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_MS_vFirewall.1.xml")); + configData = IOUtils.toString(classLoader.getResourceAsStream("com.Config_MS_vFirewall.1.json")); } catch (Exception e1) { logger.error("Exception Occured" + e1); } @@ -526,20 +536,17 @@ public class PolicyManagerServletTest extends Mockito { 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}}"); + list.add("{params: { mode: 'EDITFILE', path: '/com/Config_MS_vFirewall.1.xml', onlyFolders: false}}"); for (int i = 0; i < list.size(); i++) { BufferedReader reader = new BufferedReader(new StringReader(list.get(i))); try { when(request.getReader()).thenReturn(reader); when(commonClassDao.getDataById(GroupPolicyScopeList.class, "groupList", "resource=SampleResource,service=SampleService,type=SampleType," - + "closedLoopControlName=SampleClosedLoop")) - .thenReturn(groupListData); + + "closedLoopControlName=SampleClosedLoop")).thenReturn(groupListData); when(controller.getRoles("Test")).thenReturn(rolesdata); - when(controller.getDataByQuery( - "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)) - .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); @@ -552,16 +559,14 @@ public class PolicyManagerServletTest extends Mockito { @SuppressWarnings("static-access") @Test - public void editFirewallPolicyTest() { + public void test12editFirewallPolicyTest() { List<Object> policyData = new ArrayList<>(); String policyContent = ""; String configData = ""; try { ClassLoader classLoader = getClass().getClassLoader(); - policyContent = IOUtils.toString( - classLoader.getResourceAsStream("Config_FW_TestFireWallPolicy.1.xml")); - configData = IOUtils.toString( - classLoader.getResourceAsStream("com.Config_FW_TestFireWallPolicy.1.json")); + policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_FW_TestFireWallPolicy.1.xml")); + configData = IOUtils.toString(classLoader.getResourceAsStream("com.Config_FW_TestFireWallPolicy.1.json")); } catch (Exception e1) { logger.error("Exception Occured" + e1); } @@ -586,9 +591,8 @@ public class PolicyManagerServletTest extends Mockito { try { when(request.getReader()).thenReturn(reader); when(controller.getRoles("Test")).thenReturn(rolesdata); - when(controller.getDataByQuery( - "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)) - .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); @@ -601,16 +605,14 @@ public class PolicyManagerServletTest extends Mockito { @SuppressWarnings("static-access") @Test - public void editActionPolicyTest() { + public void test13editActionPolicyTest() { List<Object> policyData = new ArrayList<>(); String policyContent = ""; String configData = ""; try { ClassLoader classLoader = getClass().getClassLoader(); - policyContent = IOUtils - .toString(classLoader.getResourceAsStream("Action_TestActionPolicy.1.xml")); - configData = IOUtils.toString( - classLoader.getResourceAsStream("com.Action_TestActionPolicy.1.json")); + policyContent = IOUtils.toString(classLoader.getResourceAsStream("Action_TestActionPolicy.1.xml")); + configData = IOUtils.toString(classLoader.getResourceAsStream("com.Action_TestActionPolicy.1.json")); } catch (Exception e1) { logger.error("Exception Occured" + e1); } @@ -626,16 +628,14 @@ public class PolicyManagerServletTest extends Mockito { 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}}"); + list.add("{params: { mode: 'EDITFILE', path: '/com/Action_TestActionPolicy.1.xml'," + " onlyFolders: false}}"); for (int i = 0; i < list.size(); i++) { BufferedReader reader = new BufferedReader(new StringReader(list.get(i))); try { when(request.getReader()).thenReturn(reader); when(controller.getRoles("Test")).thenReturn(rolesdata); - when(controller.getDataByQuery( - "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)) - .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); @@ -648,13 +648,13 @@ public class PolicyManagerServletTest extends Mockito { @SuppressWarnings("static-access") @Test - public void editDecisionPolicyTest() { + public void test14editDecisionPolicyTest() { List<Object> policyData = new ArrayList<>(); String policyContent = ""; try { ClassLoader classLoader = getClass().getClassLoader(); - policyContent = IOUtils.toString(classLoader - .getResourceAsStream("Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml")); + policyContent = IOUtils + .toString(classLoader.getResourceAsStream("Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml")); } catch (Exception e1) { logger.error("Exception Occured" + e1); } @@ -666,17 +666,15 @@ public class PolicyManagerServletTest extends Mockito { 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}}"); + list.add("{params: { mode: 'EDITFILE', path: '/com/Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml'," + + " onlyFolders: false}}"); for (int i = 0; i < list.size(); i++) { BufferedReader reader = new BufferedReader(new StringReader(list.get(i))); try { when(request.getReader()).thenReturn(reader); when(controller.getRoles("Test")).thenReturn(rolesdata); - when(controller.getDataByQuery( - "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null)) - .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); @@ -688,23 +686,20 @@ public class PolicyManagerServletTest extends Mockito { } @Test - public void testAddScope() { + public void test15AddScope() { 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: '/', 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'}}"))); + 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")); + assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success")); } catch (Exception e1) { logger.error("Exception Occured" + e1); fail(); @@ -713,25 +708,23 @@ public class PolicyManagerServletTest extends Mockito { } @Test - public void testClone() { + public void test16Clone() { 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'}}"))); + "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")); + assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success")); } catch (Exception e1) { logger.error("Exception Occured" + e1); fail(); @@ -740,25 +733,23 @@ public class PolicyManagerServletTest extends Mockito { } @Test - public void testRename() { + public void test17Rename() { 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'}}"))); + "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")); + assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success")); } catch (Exception e1) { logger.error("Exception Occured" + e1); fail(); @@ -767,23 +758,402 @@ public class PolicyManagerServletTest extends Mockito { } @Test - public void testRenameScope() { + public void test18RenameScope() throws Exception { 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'}}"))); + 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")); + assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success")); } catch (Exception e1) { logger.error("Exception Occured" + e1); fail(); } } + + String inScopeName = "\\\\\\\\inScopeName"; + String newScopeName = "\\\\\\\\newScopeName"; + List<Object> scopesList = new ArrayList<Object>(); + PolicyEditorScopes mockPolicyEditorScope = Mockito.mock(PolicyEditorScopes.class); + scopesList.add(mockPolicyEditorScope); + when(mockPolicyEditorScope.getScopeName()).thenReturn("inScopeName"); + Whitebox.invokeMethod(servlet, "renameScope", scopesList, inScopeName, newScopeName, controller); + verify(mockPolicyEditorScope, atLeast(1)).getScopeName(); + } + + @Test + public void test19SetPolicyNames() { + JsonArray mockJsonArray = Mockito.mock(JsonArray.class); + PolicyManagerServlet.setPolicyNames(mockJsonArray); + assertEquals(mockJsonArray, PolicyManagerServlet.getPolicyNames()); + } + + @Test + public void test20DoPostSetErrorException() throws IOException { + PolicyManagerServlet servlet = new PolicyManagerServlet(); + HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class); + HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class); + doThrow(IOException.class).when(mockRequest).getReader(); + doThrow(IOException.class).when(mockResponse).sendError(any(Integer.class), any(String.class)); + servlet.doPost(mockRequest, mockResponse); + verify(mockRequest).getReader(); + } + + @Test + public void test21DoPostException() throws IOException { + PolicyManagerServlet servlet = new PolicyManagerServlet(); + HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class); + HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class); + + doThrow(IOException.class).when(mockRequest).getReader(); + doThrow(IOException.class).when(mockResponse).sendError(any(Integer.class), any(String.class)); + doThrow(IOException.class).when(mockResponse).getWriter(); + + servlet.doPost(mockRequest, mockResponse); + verify(mockRequest).getReader(); + verify(mockResponse).getWriter(); + } + + @Test + public void test22DoPostSuccess() throws IOException { + PolicyManagerServlet servlet = new PolicyManagerServlet(); + HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class); + HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class); + PrintWriter mockPrintWriter = Mockito.mock(PrintWriter.class); + + doThrow(IOException.class).when(mockRequest).getReader(); + when(mockResponse.getWriter()).thenReturn(mockPrintWriter); + + servlet.doPost(null, mockResponse); + verify(mockResponse).getWriter(); + } + + @Test + public void test23DoPostUploadFileException() { + PolicyManagerServlet servlet = new PolicyManagerServlet() { + private static final long serialVersionUID = 1L; + @Override + protected boolean isMultipartContent(HttpServletRequest request) { + return true; + } + }; + HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class); + HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class); + servlet.doPost(mockRequest, mockResponse); + } + + @Test + public void test24ProcessFormFile() throws Exception { + long fileSizeLimit = 10; + + PolicyManagerServlet servlet = new PolicyManagerServlet() { + private static final long serialVersionUID = 1L; + + @Override + protected long getFileSizeLimit() { + return fileSizeLimit; + } + + @Override + protected long copyStream(InputStream inputStream, OutputStream outputStream) throws IOException { + // don't really copy the file + return 0; + } + }; + HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class); + HttpServletResponse mockResp = Mockito.mock(HttpServletResponse.class); + FileItem mockFileItem = Mockito.mock(FileItem.class); + InputStream mockInputStream = Mockito.mock(InputStream.class); + + when(mockFileItem.getName()).thenReturn("testFileName.xls"); + when(mockFileItem.getInputStream()).thenReturn(mockInputStream); + when(mockFileItem.getSize()).thenReturn(fileSizeLimit + 1); + + Whitebox.invokeMethod(servlet, "processFormFile", mockRequest, mockFileItem, mockResp); + verify(mockFileItem, atLeast(1)).getName(); + verify(mockFileItem, atLeast(1)).getSize(); + + when(mockFileItem.getName()).thenReturn("testFileName.txt"); + Whitebox.invokeMethod(servlet, "processFormFile", mockRequest, mockFileItem, mockResp); + verify(mockFileItem, atLeast(1)).getName(); + + when(mockFileItem.getSize()).thenReturn(fileSizeLimit); + when(mockFileItem.getName()).thenReturn("testFileName.xls"); + when(mockFileItem.getInputStream()).thenThrow(IOException.class); + Whitebox.invokeMethod(servlet, "processFormFile", mockRequest, mockFileItem, mockResp); + verify(mockFileItem, atLeast(1)).getName(); + verify(mockFileItem, atLeast(1)).getInputStream(); + verify(mockFileItem, atLeast(1)).getSize(); + } + + @Test + public void test25SearchPolicyList() throws Exception { + PolicyManagerServlet servlet = new PolicyManagerServlet(); + HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class); + JSONObject mockJSONObject = Mockito.mock(JSONObject.class); + + mockJSONObject.append("policyList", "sampleValue"); + + Object res = Whitebox.invokeMethod(servlet, "searchPolicyList", mockJSONObject, mockRequest); + assert (res instanceof JSONObject); + assertNotNull(((JSONObject) res).get("result")); + } + + @Test + public void test26LookupPolicyData() throws Exception { + HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class); + User mockUser = Mockito.mock(User.class); + UserInfo mockUserInfo = Mockito.mock(UserInfo.class); + PolicyController mockPolicyController = Mockito.mock(PolicyController.class); + List<JSONObject> resultList = new ArrayList<>(); + JSONObject mockJSONObject = Mockito.mock(JSONObject.class); + resultList.add(mockJSONObject); + + Date mockDate = Mockito.mock(Date.class); + List<Object> policyDataList = new ArrayList<>(); + PolicyVersion mockPolicyVersion = Mockito.mock(PolicyVersion.class); + policyDataList.add(mockPolicyVersion); + JSONArray mockJSONArray = Mockito.mock(JSONArray.class); + + List<Object> rolesList = new ArrayList<>(); + Roles adminRole = Mockito.mock(Roles.class); + Roles editorRole = Mockito.mock(Roles.class); + Roles guestRole = Mockito.mock(Roles.class); + adminRole.setRole("admin"); + editorRole.setRole("editor"); + guestRole.setRole("guest"); + + List<Object> filterDataList = new ArrayList<>(); + PolicyVersion mockPolicyVersionFilter = Mockito.mock(PolicyVersion.class); + filterDataList.add(mockPolicyVersionFilter); + List<String> listOfRoles = new ArrayList<String>(); + Set<String> setOfScopes = new HashSet<String>(); + Pair<Set<String>, List<String>> pairList = new Pair<Set<String>, List<String>>(setOfScopes, listOfRoles); + + PolicyManagerServlet servlet = new PolicyManagerServlet() { + private static final long serialVersionUID = 1L; + + @Override + protected User getUserSession(HttpServletRequest request) { + return mockUser; + } + + @Override + protected Pair<Set<String>, List<String>> checkRoleAndScope(List<Object> userRoles) { + return pairList; + } + }; + + PolicyManagerServlet.setPolicyController(mockPolicyController); + when(mockPolicyController.getRoles(any(String.class))).thenReturn(rolesList); + when(mockPolicyController.getData(any(Class.class))).thenReturn(filterDataList); + when(mockPolicyVersion.getPolicyName()).thenReturn("sampleName"); + when(mockPolicyVersion.getModifiedDate()).thenReturn(mockDate); + when(mockPolicyVersion.getActiveVersion()).thenReturn(1); + when(mockPolicyVersion.getCreatedBy()).thenReturn("sampleUserName"); + when(mockPolicyVersion.getModifiedBy()).thenReturn("sampleUserName"); + when(mockPolicyController.getEntityItem(UserInfo.class, "userLoginId", "sampleUserName")) + .thenReturn(mockUserInfo); + when(mockUserInfo.getUserName()).thenReturn("testUserName"); + + Whitebox.invokeMethod(servlet, "getPolicyControllerInstance"); + + boolean result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null, + mockPolicyController, resultList); + + assertTrue(result); + verify(mockPolicyController, atLeast(1)).getRoles(any()); + verify(mockPolicyController, atLeast(1)).getRoles(any()); + verify(mockPolicyController, atLeast(1)).getData(any()); + verify(mockPolicyController, atLeast(1)).getEntityItem(UserInfo.class, "userLoginId", "sampleUserName"); + verify(mockPolicyVersion, atLeast(1)).getPolicyName(); + verify(mockPolicyVersion, atLeast(1)).getModifiedDate(); + verify(mockPolicyVersion, atLeast(1)).getActiveVersion(); + verify(mockPolicyVersion, atLeast(1)).getCreatedBy(); + verify(mockPolicyVersion, atLeast(1)).getModifiedBy(); + verify(mockUserInfo, atLeast(1)).getUserName(); + + when(mockPolicyVersionFilter.getPolicyName()).thenReturn("testAdminScope" + File.separator); + result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null, + mockPolicyController, resultList); + assertTrue(result); + verify(mockPolicyVersionFilter, atLeast(1)).getPolicyName(); + + setOfScopes.add("testAdminScope"); + result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null, + mockPolicyController, resultList); + assertTrue(result); + verify(mockPolicyVersionFilter, atLeast(1)).getPolicyName(); + + listOfRoles.add("super-admin"); + listOfRoles.add("super-editor"); + listOfRoles.add("super-guest"); + filterDataList.clear(); + + result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null, + mockPolicyController, resultList); + assertTrue(result); + verify(mockPolicyController, atLeast(1)).getData(any(Class.class)); + + listOfRoles.clear(); + listOfRoles.add("admin"); + listOfRoles.add("editor"); + listOfRoles.add("guest"); + setOfScopes.clear(); + result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null, + mockPolicyController, resultList); + assertFalse(result); + + setOfScopes.add("testScope"); + result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, mockJSONArray, + mockPolicyController, resultList); + assertTrue(result); + } + + @Test + public void test27DeleteEntityFromEsAndPolicyEntityTable() throws Exception { + PolicyManagerServlet servlet = new PolicyManagerServlet(); + PolicyController mockPolicyController = Mockito.mock(PolicyController.class); + PolicyRestController mockPolicyRestController = Mockito.mock(PolicyRestController.class); + PolicyEntity mockPolicyEntity = Mockito.mock(PolicyEntity.class); + ConfigurationDataEntity mockConfigDataEntity = Mockito.mock(ConfigurationDataEntity.class); + ActionBodyEntity mockActionBodyEntity = Mockito.mock(ActionBodyEntity.class); + + String policyNamewithoutExtension = "Config_"; + String configName = ""; + String actionBodyName = ""; + + when(mockPolicyEntity.getScope()).thenReturn(""); + when(mockPolicyEntity.getPolicyName()).thenReturn(""); + Mockito.doNothing().when(mockPolicyRestController).deleteElasticData(any(String.class)); + Mockito.doNothing().when(mockPolicyController).deleteData(mockPolicyEntity); + when(mockPolicyEntity.getConfigurationData()).thenReturn(mockConfigDataEntity); + when(mockPolicyEntity.getActionBodyEntity()).thenReturn(mockActionBodyEntity); + when(mockConfigDataEntity.getConfigurationName()).thenReturn(configName); + when(mockActionBodyEntity.getActionBodyName()).thenReturn(actionBodyName); + when(mockPolicyRestController.notifyOtherPapsToUpdateConfigurations("delete", null, configName)).thenReturn(""); + + Whitebox.invokeMethod(servlet, "deleteEntityFromEsAndPolicyEntityTable", mockPolicyController, + mockPolicyRestController, mockPolicyEntity, policyNamewithoutExtension); + + verify(mockPolicyEntity, atLeast(1)).getScope(); + verify(mockPolicyEntity, atLeast(1)).getPolicyName(); + verify(mockPolicyEntity, atLeast(1)).getConfigurationData(); + verify(mockConfigDataEntity, atLeast(1)).getConfigurationName(); + + policyNamewithoutExtension = "Action_"; + when(mockPolicyRestController.notifyOtherPapsToUpdateConfigurations("delete", null, actionBodyName)) + .thenReturn(""); + + Whitebox.invokeMethod(servlet, "deleteEntityFromEsAndPolicyEntityTable", mockPolicyController, + mockPolicyRestController, mockPolicyEntity, policyNamewithoutExtension); + + verify(mockPolicyEntity, atLeast(1)).getScope(); + verify(mockPolicyEntity, atLeast(1)).getPolicyName(); + verify(mockPolicyEntity, atLeast(1)).getActionBodyEntity(); + verify(mockActionBodyEntity, atLeast(1)).getActionBodyName(); + + policyNamewithoutExtension = "Other_"; + Whitebox.invokeMethod(servlet, "deleteEntityFromEsAndPolicyEntityTable", mockPolicyController, + mockPolicyRestController, mockPolicyEntity, policyNamewithoutExtension); + + verify(mockPolicyEntity, atLeast(1)).getScope(); + verify(mockPolicyEntity, atLeast(1)).getPolicyName(); + verify(mockPolicyRestController, atLeast(1)).deleteElasticData(any(String.class)); + verify(mockPolicyController, atLeast(1)).deleteData(mockPolicyEntity); + } + + @Test + public void test28Delete() throws Exception { + JSONObject mockJSONObject = Mockito.mock(JSONObject.class); + HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class); + User mockUser = Mockito.mock(User.class); + PolicyController mockPolicyController = Mockito.mock(PolicyController.class); + List<Object> policyEntityList = new ArrayList<Object>(); + PolicyEntity mockPolicyEntity = Mockito.mock(PolicyEntity.class); + policyEntityList.add(mockPolicyEntity); + long policyId = 1; + + PolicyManagerServlet servlet = new PolicyManagerServlet() { + private static final long serialVersionUID = 1L; + + @Override + protected User getUserSession(HttpServletRequest request) { + return mockUser; + } + }; + + PolicyManagerServlet.setPolicyController(mockPolicyController); + when(mockUser.getOrgUserId()).thenReturn("sampleUserId"); + when(mockJSONObject.getString("path")).thenReturn("/sampleScope:samplePolicyName.1.xml"); + when(mockJSONObject.has("deleteVersion")).thenReturn(true); + when(mockJSONObject.getString("deleteVersion")).thenReturn("ALL"); + when(mockPolicyController.getDataByQuery(any(String.class), any(SimpleBindings.class))) + .thenReturn(policyEntityList); + when(mockPolicyEntity.getPolicyId()).thenReturn(policyId); + when(mockPolicyEntity.getScope()).thenReturn("sampleScope"); + when(mockPolicyEntity.getPolicyName()).thenReturn("samplePolicyName"); + + JSONObject returnObj = Whitebox.invokeMethod(servlet, "delete", mockJSONObject, mockRequest); + assertTrue(returnObj.has("result")); + verify(mockUser, atLeast(1)).getOrgUserId(); + verify(mockJSONObject, atLeast(1)).getString(any(String.class)); + verify(mockJSONObject, atLeast(1)).has(any(String.class)); + verify(mockPolicyController, atLeast(1)).getDataByQuery(any(String.class), any(SimpleBindings.class)); + verify(mockPolicyEntity, atLeast(1)).getPolicyId(); + verify(mockPolicyEntity, atLeast(1)).getScope(); + verify(mockPolicyEntity, atLeast(1)).getPolicyName(); + + when(mockJSONObject.getString("path")).thenReturn("/sampleScope\\:samplePolicyName.1.xml"); + when(mockJSONObject.getString("deleteVersion")).thenReturn("CURRENT"); + returnObj = Whitebox.invokeMethod(servlet, "delete", mockJSONObject, mockRequest); + assertTrue(returnObj.has("result")); + verify(mockJSONObject, atLeast(1)).getString(any(String.class)); + + when(mockJSONObject.getString("path")).thenReturn("/sampleScope:samplePolicyName.2.txt"); + when(mockJSONObject.has("deleteVersion")).thenReturn(false); + returnObj = Whitebox.invokeMethod(servlet, "delete", mockJSONObject, mockRequest); + assertTrue(returnObj.has("result")); + verify(mockJSONObject, atLeast(1)).getString("path"); + verify(mockJSONObject, atLeast(1)).has("deleteVersion"); + } + + @Test + public void test29ParsePolicyList() throws Exception { + PolicyManagerServlet servlet = new PolicyManagerServlet(); + List<JSONObject> resultList = new ArrayList<JSONObject>(); + PolicyController mockPolicyController = Mockito.mock(PolicyController.class); + UserInfo mockUserInfo = Mockito.mock(UserInfo.class); + String policyName = "sampleName\\"; + String policyVersion = "sampleVersion"; + List<Object> activeDataList = new ArrayList<Object>(); + PolicyVersion mockPolicyVersion = Mockito.mock(PolicyVersion.class); + activeDataList.add(mockPolicyVersion); + Date mockDate = Mockito.mock(Date.class); + + when(mockPolicyController.getDataByQuery(any(String.class), any(SimpleBindings.class))) + .thenReturn(activeDataList); + when(mockPolicyVersion.getPolicyName()).thenReturn("testPolicyName"); + when(mockPolicyVersion.getModifiedDate()).thenReturn(mockDate); + when(mockPolicyVersion.getActiveVersion()).thenReturn(1); + when(mockPolicyVersion.getCreatedBy()).thenReturn("sampleUserName"); + when(mockPolicyVersion.getModifiedBy()).thenReturn("sampleUserName"); + // + // This intermittently throws an NPE, even when fixing the method order + // + when(mockPolicyController.getEntityItem(UserInfo.class, "userLoginId", "sampleUserName")) + .thenReturn(mockUserInfo); + when(mockUserInfo.getUserName()).thenReturn("testUserName"); + Whitebox.invokeMethod(servlet, "parsePolicyList", resultList, mockPolicyController, policyName, policyVersion); + verify(mockPolicyController, atLeast(1)).getDataByQuery(any(String.class), any(SimpleBindings.class)); + verify(mockPolicyVersion, atLeast(1)).getPolicyName(); + verify(mockPolicyVersion, atLeast(1)).getModifiedDate(); + verify(mockPolicyVersion, atLeast(1)).getActiveVersion(); + verify(mockPolicyVersion, atLeast(1)).getCreatedBy(); + verify(mockPolicyVersion, atLeast(1)).getModifiedBy(); } } diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyNotificationMailTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyNotificationMailTest.java index 95296f4b0..5111ef2a8 100644 --- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyNotificationMailTest.java +++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyNotificationMailTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Modifications Copyright (C) 2019 Samsung * ================================================================================ @@ -19,16 +19,20 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.admin; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + import java.util.ArrayList; import java.util.List; + import org.junit.Before; import org.junit.Test; -import static org.mockito.Mockito.when; +import org.onap.policy.common.utils.network.NetworkUtil; import org.onap.policy.controller.PolicyController; import org.onap.policy.rest.dao.CommonClassDao; import org.onap.policy.rest.jpa.PolicyVersion; @@ -41,16 +45,27 @@ public class PolicyNotificationMailTest { private CommonClassDao commonClassDao; private List<Object> data = null; + /** + * setUp. + * + * @throws Exception should not throw one + */ @Before public void setUp() throws Exception { PolicyController.setjUnit(true); PolicyController.setSmtpApplicationName("Test"); PolicyController.setSmtpEmailExtension("test.com"); - PolicyController.setSmtpHost("test"); - PolicyController.setSmtpPort("23"); + PolicyController.setSmtpHost("localhost"); PolicyController.setSmtpPassword("test"); PolicyController.setSmtpUsername("test"); + /* + * Allocate a port to which the mail sender should connect, but don't actually + * start a listener on the port so that connection attempts will be immediately + * rejected. + */ + PolicyController.setSmtpPort(String.valueOf(NetworkUtil.allocPort())); + version = new PolicyVersion(); version.setPolicyName("com/Config_Test"); version.setModifiedBy("xyz"); @@ -62,9 +77,8 @@ public class PolicyNotificationMailTest { commonClassDao = mock(CommonClassDao.class); PolicyController.setCommonClassDao(commonClassDao); - when(commonClassDao.getDataByQuery( - "from WatchPolicyNotificationTable where policyName like:policyFileName", null)) - .thenReturn(data); + when(commonClassDao.getDataByQuery("from WatchPolicyNotificationTable where policyName like:policyFileName", + null)).thenReturn(data); } @Test diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyRestControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyRestControllerTest.java index ce38f236f..6c47b3955 100644 --- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyRestControllerTest.java +++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyRestControllerTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019-2020 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Modifications Copyright (C) 2019 Samsung * ================================================================================ @@ -19,26 +19,40 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.admin; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.fail; +import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.reset; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; + import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStream; +import java.io.PrintWriter; import java.io.StringReader; +import java.net.HttpURLConnection; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mockito; import org.onap.policy.controller.CreateFirewallController; +import org.onap.policy.controller.PolicyController; import org.onap.policy.rest.dao.CommonClassDao; import org.onap.policy.rest.jpa.ActionList; import org.onap.policy.rest.jpa.AddressGroup; -import org.onap.policy.rest.jpa.FWTagPicker; +import org.onap.policy.rest.jpa.FwTagPicker; import org.onap.policy.rest.jpa.GroupServiceList; import org.onap.policy.rest.jpa.PrefixList; import org.onap.policy.rest.jpa.SecurityZone; @@ -46,8 +60,16 @@ import org.onap.policy.rest.jpa.ServiceList; import org.onap.policy.rest.jpa.TermList; import org.onap.portalsdk.core.domain.User; import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.web.support.UserUtils; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.reflect.Whitebox; import org.springframework.mock.web.MockHttpServletResponse; +@RunWith(PowerMockRunner.class) +@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "com.sun.org.apache.xalan.*"}) public class PolicyRestControllerTest { private String clRequestString; @@ -65,77 +87,78 @@ public class PolicyRestControllerTest { private List<Object> tagListData; private List<Object> termListData; + /** + * Before. + * + * @throws Exception exception + */ @Before public void setUp() throws Exception { commonClassDao = mock(CommonClassDao.class); - HttpSession mockSession = mock(HttpSession.class); + final HttpSession mockSession = mock(HttpSession.class); request = mock(HttpServletRequest.class); response = new MockHttpServletResponse(); User user = new User(); user.setOrgUserId("Test"); - Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))) - .thenReturn(user); + Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))).thenReturn(user); Mockito.when(request.getSession(false)).thenReturn(mockSession); - clRequestString = - "{\"policyData\":{\"error\":\"\",\"inprocess\":false,\"model\":{\"name\":\"com\"," - + "\"subScopename\":\"\",\"path\":[],\"type\":\"dir\",\"size\":0," - + "\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\"," - + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false}," - + "\"tempModel\":{\"name\":\"com\",\"subScopename\":\"\",\"path\":[],\"type\":\"dir\"," - + "\"size\":0,\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\"," - + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false}," - + "\"$$hashKey\":\"object:1439\",\"policy\":{\"policyType\":\"Config\"," - + "\"configPolicyType\":\"ClosedLoop_Fault\",\"triggerTrapSignatures\":[1,1,2,3]," - + "\"triggerfaultSignatures\":[1,1,2,3],\"traptriggerSignatures\":[{\"id\":\"Trap1\"," - + "\"$$hashKey\":\"object:1526\"},{\"id\":\"Trap2\",\"$$hashKey\":\"object:1534\"}]," - + "\"connecttriggerSignatures\":[{\"id\":\"C1\",\"$$hashKey\":\"object:1554\"," - + "\"notBox\":\"NOT\",\"connectTrap1\":\"Trap1\",\"trapCount1\":\"12\"," - + "\"operatorBox\":\"AND\",\"connectTrap2\":\"Trap2\",\"trapCount2\":\"14\"}]," - + "\"faulttriggerSignatures\":[{\"id\":\"Fault1\",\"$$hashKey\":\"object:1566\"}," - + "{\"id\":\"Fault2\",\"$$hashKey\":\"object:1575\"}],\"connectVerificationSignatures\":" - + "[{\"id\":\"C1\",\"$$hashKey\":\"object:1595\",\"notBox\":\"NOT\"," - + "\"connectTrap1\":\"Fault1\",\"trapCount1\":\"11\",\"operatorBox\":\"AND\"," - + "\"connectTrap2\":\"Fault2\",\"trapCount2\":\"12\"}],\"jsonBodyData\":" - + "{\"trapMaxAge\":\"300\",\"vnfType\":\"Test\",\"closedLoopPolicyStatus\":\"Active\"," - + "\"vUSP\":true,\"trinity\":true,\"vDNS\":true,\"mcr\":true,\"gamma\":true," - + "\"actions\":\"Test\",\"timeInterval\":\"11\",\"timeOutvPRO\":\"11\",\"timeOutRuby\":\"11\"," - + "\"retrys\":\"1\",\"agingWindow\":\"12\",\"geoLink\":\"test\"," - + "\"emailAddress\":\"aa@test.com\",\"pepName\":\"Test\",\"pepAction\":\"test\"," - + "\"conditions\":\"SEND\"},\"policyName\":\"SampleTest\"," - + "\"policyDescription\":\"SampleTest\",\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\"," - + "\"guard\":\"True\",\"onapName\":\"SampleDemo\",\"ttlDate\":\"14/09/2017\"," - + "\"clearTimeOut\":\"123\",\"trapMaxAge\":\"11\",\"verificationclearTimeOut\":\"13\"}}," - + "\"trapData\":{\"trap1\":[{\"id\":\"A1\",\"$$hashKey\":\"object:1528\"," - + "\"notBox\":\"NOT\",\"trigger1\":\"Test\",\"operatorBox\":\"AND\",\"trigger2\":\"Test\"}]," - + "\"trap2\":[{\"id\":\"A1\",\"$$hashKey\":\"object:1536\",\"notBox\":\"NOT\"," - + "\"trigger1\":\"Test\",\"operatorBox\":\"AND\",\"trigger2\":\"Test\"},{\"id\":\"A2\"," - + "\"$$hashKey\":\"object:1542\",\"notBox\":\"NOT\",\"trigger1\":\"A1\"," - + "\"operatorBox\":\"AND\",\"trigger2\":\"Test\"},{\"id\":\"A3\"," - + "\"$$hashKey\":\"object:1548\",\"notBox\":\"NOT\",\"trigger1\":\"A1\"," - + "\"operatorBox\":\"OR\",\"trigger2\":\"A2\"}]},\"faultData\":{\"trap1\":[{\"id\":\"A1\"," - + "\"$$hashKey\":\"object:1568\",\"notBox\":\"NOT\",\"trigger1\":\"Test\"," - + "\"operatorBox\":\"AND\",\"trigger2\":\"Test\"}],\"trap2\":[{\"id\":\"A1\"," - + "\"$$hashKey\":\"object:1577\",\"notBox\":\"NOT\",\"trigger1\":\"Test\"," - + "\"operatorBox\":\"AND\",\"trigger2\":\"Test\"},{\"id\":\"A2\",\"$$hashKey\":" - + "\"object:1583\",\"notBox\":\"NOT\",\"trigger1\":\"Test\",\"operatorBox\":\"OR\"," - + "\"trigger2\":\"Test\"},{\"id\":\"A3\",\"$$hashKey\":\"object:1589\",\"notBox\":\"NOT\"," - + "\"trigger1\":\"A1\",\"operatorBox\":\"AND\",\"trigger2\":\"A2\"}]}}"; - - - fwRequestString = - "{\"policyData\":{\"error\":\"\",\"inprocess\":false,\"model\":{\"name\":\"com\"," - + "\"subScopename\":\"\",\"path\":[],\"type\":\"dir\",\"size\":0," - + "\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\"," - + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false},\"tempModel\":" - + "{\"name\":\"com\",\"subScopename\":\"\",\"path\":[],\"type\":\"dir\",\"size\":0," - + "\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\"," - + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false},\"$$hashKey\":\"object:260\"," - + "\"policy\":{\"policyType\":\"Config\",\"configPolicyType\":\"Firewall Config\"," - + "\"attributes\":[{\"id\":\"choice1\",\"$$hashKey\":\"object:338\",\"key\":\"Test\"," - + "\"value\":\"Test\"}],\"fwattributes\":[],\"policyName\":\"SampleTest\"," - + "\"policyDescription\":\"SampleTest\",\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\"," - + "\"guard\":\"True\",\"configName\":\"SampleTest\",\"ttlDate\":\"14/09/2017\"," - + "\"securityZone\":\"Test\"}}}"; + clRequestString = "{\"policyData\":{\"error\":\"\",\"inprocess\":false,\"model\":{\"name\":\"com\"," + + "\"subScopename\":\"\",\"path\":[],\"type\":\"dir\",\"size\":0," + + "\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\"," + + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false}," + + "\"tempModel\":{\"name\":\"com\",\"subScopename\":\"\",\"path\":[],\"type\":\"dir\"," + + "\"size\":0,\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\"," + + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false}," + + "\"$$hashKey\":\"object:1439\",\"policy\":{\"policyType\":\"Config\"," + + "\"configPolicyType\":\"ClosedLoop_Fault\",\"triggerTrapSignatures\":[1,1,2,3]," + + "\"triggerfaultSignatures\":[1,1,2,3],\"traptriggerSignatures\":[{\"id\":\"Trap1\"," + + "\"$$hashKey\":\"object:1526\"},{\"id\":\"Trap2\",\"$$hashKey\":\"object:1534\"}]," + + "\"connecttriggerSignatures\":[{\"id\":\"C1\",\"$$hashKey\":\"object:1554\"," + + "\"notBox\":\"NOT\",\"connectTrap1\":\"Trap1\",\"trapCount1\":\"12\"," + + "\"operatorBox\":\"AND\",\"connectTrap2\":\"Trap2\",\"trapCount2\":\"14\"}]," + + "\"faulttriggerSignatures\":[{\"id\":\"Fault1\",\"$$hashKey\":\"object:1566\"}," + + "{\"id\":\"Fault2\",\"$$hashKey\":\"object:1575\"}],\"connectVerificationSignatures\":" + + "[{\"id\":\"C1\",\"$$hashKey\":\"object:1595\",\"notBox\":\"NOT\"," + + "\"connectTrap1\":\"Fault1\",\"trapCount1\":\"11\",\"operatorBox\":\"AND\"," + + "\"connectTrap2\":\"Fault2\",\"trapCount2\":\"12\"}],\"jsonBodyData\":" + + "{\"trapMaxAge\":\"300\",\"vnfType\":\"Test\",\"closedLoopPolicyStatus\":\"Active\"," + + "\"vUSP\":true,\"trinity\":true,\"vDNS\":true,\"mcr\":true,\"gamma\":true," + + "\"actions\":\"Test\",\"timeInterval\":\"11\",\"timeOutvPRO\":\"11\",\"timeOutRuby\":\"11\"," + + "\"retrys\":\"1\",\"agingWindow\":\"12\",\"geoLink\":\"test\"," + + "\"emailAddress\":\"aa@test.com\",\"pepName\":\"Test\",\"pepAction\":\"test\"," + + "\"conditions\":\"SEND\"},\"policyName\":\"SampleTest\"," + + "\"policyDescription\":\"SampleTest\",\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\"," + + "\"guard\":\"True\",\"onapName\":\"SampleDemo\",\"ttlDate\":\"14/09/2017\"," + + "\"clearTimeOut\":\"123\",\"trapMaxAge\":\"11\",\"verificationclearTimeOut\":\"13\"}}," + + "\"trapData\":{\"trap1\":[{\"id\":\"A1\",\"$$hashKey\":\"object:1528\"," + + "\"notBox\":\"NOT\",\"trigger1\":\"Test\",\"operatorBox\":\"AND\",\"trigger2\":\"Test\"}]," + + "\"trap2\":[{\"id\":\"A1\",\"$$hashKey\":\"object:1536\",\"notBox\":\"NOT\"," + + "\"trigger1\":\"Test\",\"operatorBox\":\"AND\",\"trigger2\":\"Test\"},{\"id\":\"A2\"," + + "\"$$hashKey\":\"object:1542\",\"notBox\":\"NOT\",\"trigger1\":\"A1\"," + + "\"operatorBox\":\"AND\",\"trigger2\":\"Test\"},{\"id\":\"A3\"," + + "\"$$hashKey\":\"object:1548\",\"notBox\":\"NOT\",\"trigger1\":\"A1\"," + + "\"operatorBox\":\"OR\",\"trigger2\":\"A2\"}]},\"faultData\":{\"trap1\":[{\"id\":\"A1\"," + + "\"$$hashKey\":\"object:1568\",\"notBox\":\"NOT\",\"trigger1\":\"Test\"," + + "\"operatorBox\":\"AND\",\"trigger2\":\"Test\"}],\"trap2\":[{\"id\":\"A1\"," + + "\"$$hashKey\":\"object:1577\",\"notBox\":\"NOT\",\"trigger1\":\"Test\"," + + "\"operatorBox\":\"AND\",\"trigger2\":\"Test\"},{\"id\":\"A2\",\"$$hashKey\":" + + "\"object:1583\",\"notBox\":\"NOT\",\"trigger1\":\"Test\",\"operatorBox\":\"OR\"," + + "\"trigger2\":\"Test\"},{\"id\":\"A3\",\"$$hashKey\":\"object:1589\",\"notBox\":\"NOT\"," + + "\"trigger1\":\"A1\",\"operatorBox\":\"AND\",\"trigger2\":\"A2\"}]}}"; + + fwRequestString = "{\"policyData\":{\"error\":\"\",\"inprocess\":false,\"model\":{\"name\":\"com\"," + + "\"subScopename\":\"\",\"path\":[],\"type\":\"dir\",\"size\":0," + + "\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\"," + + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false},\"tempModel\":" + + "{\"name\":\"com\",\"subScopename\":\"\",\"path\":[],\"type\":\"dir\",\"size\":0," + + "\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\"," + + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false},\"$$hashKey\":\"object:260\"," + + "\"policy\":{\"policyType\":\"Config\",\"configPolicyType\":\"Firewall Config\"," + + "\"attributes\":[{\"id\":\"choice1\",\"$$hashKey\":\"object:338\",\"key\":\"Test\"," + + "\"value\":\"Test\"}],\"fwattributes\":[],\"policyName\":\"SampleTest\"," + + "\"policyDescription\":\"SampleTest\",\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\"," + + "\"guard\":\"True\",\"configName\":\"SampleTest\",\"ttlDate\":\"14/09/2017\"," + + "\"securityZone\":\"Test\"}}}"; fwViewRequestString = "{\"policyData\":{\"policyType\":\"Config\",\"configPolicyType\":\"Firewall Config\",\"attributes\":" @@ -144,8 +167,6 @@ public class PolicyRestControllerTest { + "\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\",\"guard\":\"True\"," + "\"configName\":\"SampleTest\",\"ttlDate\":\"14/09/2017\",\"securityZone\":\"Test\"}}"; - - prefixListData = new ArrayList<>(); PrefixList prefixList = new PrefixList(); prefixList.setPrefixListName("Test"); @@ -163,7 +184,7 @@ public class PolicyRestControllerTest { ServiceList serviceList = new ServiceList(); serviceList.setServiceName("Test"); serviceList.setServiceType("SERVICE"); - serviceList.setServiceTransProtocol("Test"); + serviceList.setServiceTransportProtocol("Test"); serviceList.setServiceAppProtocol("Test"); serviceList.setServicePorts("8080"); serviceListData.add(serviceList); @@ -191,30 +212,33 @@ public class PolicyRestControllerTest { when(commonClassDao.getData(GroupServiceList.class)).thenReturn(serviceGroupData); tagListData = new ArrayList<>(); - FWTagPicker fwPicker = new FWTagPicker(); + FwTagPicker fwPicker = new FwTagPicker(); fwPicker.setTagPickerName("Test"); fwPicker.setTagValues("Test:8080"); tagListData.add(fwPicker); - when(commonClassDao.getData(FWTagPicker.class)).thenReturn(tagListData); + when(commonClassDao.getData(FwTagPicker.class)).thenReturn(tagListData); termListData = new ArrayList<>(); TermList termList = new TermList(); termList.setTermName("Test"); - termList.setFromZones("Test"); - termList.setToZones("Test"); - termList.setSrcIPList("Test"); - termList.setDestIPList("Test"); + termList.setFromZone("Test"); + termList.setToZone("Test"); + termList.setSrcIpList("Test"); + termList.setDestIpList("Test"); termList.setSrcPortList("Test"); termList.setDestPortList("Test"); termList.setAction("Test"); termListData.add(termList); when(commonClassDao.getData(TermList.class)).thenReturn(termListData); - when(commonClassDao.getDataById(TermList.class, "termName", "Test")) - .thenReturn(termListData); + when(commonClassDao.getDataById(TermList.class, "termName", "Test")).thenReturn(termListData); } @Test public final void testPolicyCreationController() { + assertNull(PolicyRestController.getCommonClassDao()); + PolicyRestController.setCommonClassDao(commonClassDao); + assertNotNull(PolicyRestController.getCommonClassDao()); + PolicyRestController controller = new PolicyRestController(); BufferedReader reader = new BufferedReader(new StringReader(clRequestString)); try { @@ -225,6 +249,7 @@ public class PolicyRestControllerTest { } PolicyRestController controller1 = new PolicyRestController(); CreateFirewallController.setCommonClassDao(commonClassDao); + assertNotNull(CreateFirewallController.getCommonClassDao()); BufferedReader reader1 = new BufferedReader(new StringReader(fwRequestString)); try { Mockito.when(request.getReader()).thenReturn(reader1); @@ -245,6 +270,27 @@ public class PolicyRestControllerTest { } @Test + public final void testSearchPolicy() throws IOException { + PolicyController.setjUnit(true); + PolicyController.setPapUrl("http://localhost:8070/pap/"); + PolicyRestController controller = new PolicyRestController(); + BufferedReader reader = new BufferedReader(new StringReader("{\"foo\":\"bar\"}")); + Mockito.when(request.getReader()).thenReturn(reader); + Mockito.when(request.getRequestURI()).thenReturn("/pap/foo/"); + assertThatExceptionOfType(NullPointerException.class) + .isThrownBy(() -> controller.searchPolicy(request, response)); + } + + @Test + public final void testSearchDictionaryController() throws IOException { + PolicyRestController controller = new PolicyRestController(); + BufferedReader reader = new BufferedReader(new StringReader("{\"foo\":\"bar\"}")); + Mockito.when(request.getReader()).thenReturn(reader); + Mockito.when(request.getRequestURI()).thenReturn("/pap/foo/"); + assertNull(controller.searchDictionaryController(request, response)); + } + + @Test public final void testDeleteElasticData() { PolicyRestController controller = new PolicyRestController(); try { @@ -253,4 +299,101 @@ public class PolicyRestControllerTest { fail(); } } + + @Test + public final void testNotifyOtherPaps() { + PolicyRestController controller = new PolicyRestController(); + String strReturn = controller.notifyOtherPapsToUpdateConfigurations("mode", "newName", "oldName"); + assertNull(strReturn); + } + + @SuppressWarnings("unchecked") + @Test + public void testGetDictionaryController() throws IOException { + PolicyRestController controller = new PolicyRestController(); + HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class); + HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class); + PrintWriter mockPrintWriter = Mockito.mock(PrintWriter.class); + + when(mockRequest.getRequestURI()).thenReturn("//testRequestURI///getDictionary"); + when(mockResponse.getWriter()).thenThrow(IOException.class); + controller.getDictionaryController(mockRequest, mockResponse); + verify(mockRequest, atLeast(1)).getRequestURI(); + verify(mockResponse, atLeast(1)).getWriter(); + + reset(mockResponse); + when(mockRequest.getRequestURI()).thenReturn("testRequestURI///getDictionary"); + when(mockResponse.getWriter()).thenReturn(mockPrintWriter); + controller.getDictionaryController(mockRequest, mockResponse); + verify(mockRequest, atLeast(1)).getRequestURI(); + verify(mockResponse, atLeast(1)).getWriter(); + } + + @PrepareForTest(UserUtils.class) + @Test + public void testdeletetDictionaryController() throws IOException { + HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class); + HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class); + PolicyRestController controller = new PolicyRestController(); + User mockUser = Mockito.mock(User.class); + PowerMockito.mockStatic(UserUtils.class); + PrintWriter mockPrintWriter = Mockito.mock(PrintWriter.class); + + when(mockRequest.getRequestURI()).thenReturn("//testRequestURI///deleteDictionary"); + when(mockResponse.getWriter()).thenReturn(mockPrintWriter); + when(UserUtils.getUserSession(mockRequest)).thenReturn(mockUser); + when(mockUser.getOrgUserId()).thenReturn("testUserId"); + + controller.deletetDictionaryController(mockRequest, mockResponse); + verify(mockRequest).getRequestURI(); + verify(mockResponse).getWriter(); + verify(mockUser).getOrgUserId(); + + when(mockRequest.getRequestURI()).thenReturn("testRequestURI///deleteDictionary"); + controller.deletetDictionaryController(mockRequest, mockResponse); + verify(mockRequest, atLeast(1)).getRequestURI(); + } + + @PrepareForTest(UserUtils.class) + @Test + public void testSaveDictionaryController() throws IOException { + HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class); + HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class); + PolicyRestController controller = new PolicyRestController(); + User mockUser = Mockito.mock(User.class); + PowerMockito.mockStatic(UserUtils.class); + PrintWriter mockPrintWriter = Mockito.mock(PrintWriter.class); + + when(mockRequest.getRequestURI()).thenReturn("//testRequestURI///saveDictionary//import_dictionary"); + when(mockResponse.getWriter()).thenReturn(mockPrintWriter); + when(UserUtils.getUserSession(mockRequest)).thenReturn(mockUser); + when(mockUser.getOrgUserId()).thenReturn("testUserId"); + + controller.saveDictionaryController(mockRequest, mockResponse); + verify(mockRequest).getRequestURI(); + verify(mockResponse).getWriter(); + verify(mockUser).getOrgUserId(); + + when(mockRequest.getRequestURI()).thenReturn("testRequestURI///saveDictionary"); + controller.saveDictionaryController(mockRequest, mockResponse); + verify(mockRequest, atLeast(1)).getRequestURI(); + } + + @Test + public void testDoConnect() throws Exception { + HttpURLConnection mockConnection = Mockito.mock(HttpURLConnection.class); + PolicyRestController controller = new PolicyRestController(); + Mockito.doNothing().when(mockConnection).connect(); + InputStream mockInputStream = Mockito.mock(InputStream.class); + + when(mockConnection.getResponseCode()).thenReturn(200); + when(mockConnection.getInputStream()).thenReturn(mockInputStream); + + Whitebox.invokeMethod(controller, "doConnect", mockConnection); + verify(mockConnection).getResponseCode(); + verify(mockConnection).getInputStream(); + + when(mockConnection.getResponseCode()).thenReturn(201); + assertNull(Whitebox.invokeMethod(controller, "doConnect", mockConnection)); + } } diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyUserInfoControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyUserInfoControllerTest.java index d05b7933d..55e4b5a93 100644 --- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyUserInfoControllerTest.java +++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyUserInfoControllerTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Modifications Copyright (C) 2019 Samsung * ================================================================================ @@ -19,12 +19,19 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.admin; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.io.IOException; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.junit.Before; import org.junit.Test; @@ -45,8 +52,7 @@ public class PolicyUserInfoControllerTest { response = new MockHttpServletResponse(); User user = new User(); user.setOrgUserId("Test"); - Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))) - .thenReturn(user); + Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))).thenReturn(user); Mockito.when(request.getSession(false)).thenReturn(mockSession); } @@ -60,4 +66,14 @@ public class PolicyUserInfoControllerTest { fail(); } } + + @SuppressWarnings("unchecked") + @Test + public void testGetPolicyUserInfoException() throws IOException { + HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class); + when(mockResponse.getWriter()).thenThrow(IOException.class); + PolicyUserInfoController controller = new PolicyUserInfoController(); + controller.getPolicyUserInfo(request, mockResponse); + verify(mockResponse, atLeast(1)).getWriter(); + } } diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/RESTfulPAPEngineTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/RESTfulPAPEngineTest.java index 4b307f594..0deb3d6fc 100644 --- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/RESTfulPAPEngineTest.java +++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/RESTfulPAPEngineTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2018-2020 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Modifications Copyright (C) 2019 Samsung * ================================================================================ @@ -19,35 +19,30 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.admin; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.junit.Assert.assertNull; + +import com.att.research.xacml.api.pap.PAPException; +import com.att.research.xacml.api.pap.PDPPolicy; +import com.att.research.xacml.util.XACMLProperties; import java.io.ByteArrayInputStream; +import java.io.IOException; import java.io.InputStream; -import java.net.URL; -import javax.servlet.http.HttpServletResponse; import java.net.HttpURLConnection; -import org.junit.Before; -import org.junit.Rule; +import java.net.URLConnection; +import javax.servlet.http.HttpServletResponse; +import org.junit.AfterClass; +import org.junit.BeforeClass; import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.runner.RunWith; import org.mockito.Mockito; import org.onap.policy.rest.adapter.PolicyRestAdapter; import org.onap.policy.xacml.api.pap.OnapPDP; import org.onap.policy.xacml.api.pap.OnapPDPGroup; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; -import com.att.research.xacml.api.pap.PAPException; -import com.att.research.xacml.api.pap.PDPPolicy; -@RunWith(PowerMockRunner.class) -@PrepareForTest({URL.class, RESTfulPAPEngine.class}) public class RESTfulPAPEngineTest { - @Rule - public ExpectedException thrown = ExpectedException.none(); private RESTfulPAPEngine engine = null; private String name = "testName"; @@ -56,28 +51,55 @@ public class RESTfulPAPEngineTest { private String policyType = "testType"; private String policyContent = "testContent"; private int jmxport = 0; + private String userId = "testId"; OnapPDPGroup group = Mockito.mock(OnapPDPGroup.class); OnapPDPGroup newGroup = Mockito.mock(OnapPDPGroup.class); OnapPDP pdp = Mockito.mock(OnapPDP.class); InputStream policy; - @Before - public void runConstructor() throws Exception { - // Mock url and connection - URL url = PowerMockito.mock(URL.class); - PowerMockito.whenNew(URL.class).withArguments(Mockito.any()).thenReturn(url); + /** + * BeforeClass does some simple code coverage and sets up the + * XACML properties. + */ + @BeforeClass + public static void setUpBeforeClass() { + // + // Test constructor with bad URL + // + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + new RESTfulPAPEngine(null)); + + XACMLProperties.reloadProperties(); + } + + @AfterClass + public static void tearDownAfterClass() { + XACMLProperties.reloadProperties(); + } + + private void setupConnection(int responseCode, String location) throws Exception { + // Mock connection HttpURLConnection connection = Mockito.mock(HttpURLConnection.class); - Mockito.when(url.openConnection()).thenReturn(connection); - Mockito.when(connection.getResponseCode()).thenReturn(HttpServletResponse.SC_NO_CONTENT); + + Mockito.when(connection.getResponseCode()).thenReturn(responseCode); + Mockito.when(connection.getHeaderField("Location")).thenReturn(location); + + InputStream mockInputStream = Mockito.mock(InputStream.class); + Mockito.when(connection.getInputStream()).thenReturn(mockInputStream); // Set the system property temporarily String systemKey = "xacml.properties"; - String oldProperty = System.getProperty(systemKey); + final String oldProperty = System.getProperty(systemKey); System.setProperty(systemKey, "src/test/resources/xacml.admin.properties"); // Test constructor String urlName = "localhost:1234"; - engine = new RESTfulPAPEngine(urlName); + engine = new RESTfulPAPEngine(urlName) { + @Override + protected URLConnection makeConnection(String fullUrl) throws IOException { + return connection; + } + }; // Initialize policy policy = new ByteArrayInputStream(policyContent.getBytes("UTF-8")); @@ -91,75 +113,89 @@ public class RESTfulPAPEngineTest { } @Test - public void testGroups() throws Exception { + public void testAllTheExceptions() throws Exception { + setupConnection(HttpServletResponse.SC_NO_CONTENT, "localhost:5678"); + engine.setDefaultGroup(group); - assertEquals(engine.getDefaultGroup(), null); + assertNull(engine.getDefaultGroup()); engine.newGroup(name, description); engine.removeGroup(group, newGroup); - assertEquals(engine.getPDPGroup(pdp), null); - assertEquals(engine.getPDPGroup(id), null); - assertEquals(engine.getPDP(id), null); - assertEquals(engine.getStatus(pdp), null); - - thrown.expect(NullPointerException.class); - engine.getOnapPDPGroups(); - fail("Expecting an exception."); - } + assertNull(engine.getPDPGroup(pdp)); + assertNull(engine.getPDPGroup(id)); + assertNull(engine.getPDP(id)); + assertNull(engine.getStatus(pdp)); - @Test - public void testUpdateGroup() throws PAPException { - thrown.expect(PAPException.class); - engine.updateGroup(group); - fail("Expecting an exception."); - } + assertThatExceptionOfType(NullPointerException.class).isThrownBy(() -> + engine.getOnapPDPGroups() + ); - @Test - public void testPDP() throws PAPException { - assertEquals(engine.getGroup(name), null); - engine.movePDP(pdp, newGroup); + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + engine.updateGroup(group) + ); - thrown.expect(PAPException.class); - engine.newPDP(id, newGroup, name, description, jmxport); - fail("Expecting an exception."); - } + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + engine.updateGroup(group, "testUserName") + ); - @Test - public void testUpdatePDP() throws PAPException { - thrown.expect(NullPointerException.class); - engine.updatePDP(pdp); - fail("Expecting an exception."); - } + assertNull(engine.getGroup(name)); + engine.movePDP(pdp, newGroup); - @Test - public void testRemovePDP() throws PAPException { - thrown.expect(NullPointerException.class); - engine.removePDP(pdp); - fail("Expecting an exception."); - } + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + engine.newPDP(id, newGroup, name, description, jmxport) + ); - @Test - public void testValidatePolicy() throws PAPException { - PolicyRestAdapter policyAdapter = new PolicyRestAdapter(); + assertThatExceptionOfType(NullPointerException.class).isThrownBy(() -> + engine.updatePDP(pdp) + ); - thrown.expect(PAPException.class); - engine.validatePolicyRequest(policyAdapter, policyType); - fail("Expecting an exception."); - } + assertThatExceptionOfType(NullPointerException.class).isThrownBy(() -> + engine.removePDP(pdp) + ); - @Test - public void testPublishPolicy() throws PAPException { - thrown.expect(PAPException.class); - engine.publishPolicy(id, name, false, policy, newGroup); - fail("Expecting an exception."); - } + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + engine.validatePolicyRequest(new PolicyRestAdapter(), policyType) + ); - @Test - public void testCopy() throws PAPException { - engine.copyFile(id, newGroup, policy); - PDPPolicy pdpPolicy = Mockito.mock(PDPPolicy.class); + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + engine.publishPolicy(id, name, false, policy, newGroup) + ); - thrown.expect(PAPException.class); - engine.copyPolicy(pdpPolicy, newGroup); - fail("Expecting an exception."); + engine.copyFile(id, newGroup, policy, userId); + PDPPolicy pdpPolicy = Mockito.mock(PDPPolicy.class); + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + engine.copyPolicy(pdpPolicy, newGroup, userId) + ); + + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + engine.removePolicy(null, group) + ); + + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + engine.copyPolicy(null, null, null) + ); + + // + // Change the mockito to take a different path + // + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + setupConnection(HttpServletResponse.SC_FOUND, "localhost:5678") + ); + + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + setupConnection(200, "localhost:5678") + ); + + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + setupConnection(350, "localhost:5678") + ); + + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + setupConnection(500, "localhost:5678") + ); + + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + setupConnection(350, null) + ); } + } |