X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=ONAP-PAP-REST%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpap%2Ftest%2FXACMLPAPTest.java;h=f978d74646f0a2674643d68b2263de3c89ce8c04;hp=6a3a9dc8d5fca07376ba540fa97a74121a70f871;hb=refs%2Fchanges%2F84%2F98384%2F3;hpb=2903daf20f5e473a96a36342151a26e9f2e55005 diff --git a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/test/XACMLPAPTest.java b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/test/XACMLPAPTest.java index 6a3a9dc8d..f978d7464 100644 --- a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/test/XACMLPAPTest.java +++ b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/test/XACMLPAPTest.java @@ -24,22 +24,27 @@ package org.onap.policy.pap.test; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.Mockito.when; + import com.mockrunner.mock.web.MockServletInputStream; + import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.sql.SQLException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; + import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.tomcat.dbcp.dbcp2.BasicDataSource; @@ -65,8 +70,10 @@ import org.onap.policy.pap.xacml.rest.daoimpl.CommonClassDaoImpl; import org.onap.policy.pap.xacml.rest.policycontroller.PolicyCreation; import org.onap.policy.pap.xacml.rest.util.DictionaryUtils; import org.onap.policy.rest.dao.CommonClassDao; -import org.onap.policy.rest.jpa.BRMSParamTemplate; +import org.onap.policy.rest.jpa.ActionPolicyDict; +import org.onap.policy.rest.jpa.BrmsParamTemplate; import org.onap.policy.rest.jpa.Category; +import org.onap.policy.rest.jpa.FunctionDefinition; import org.onap.policy.rest.jpa.PolicyEditorScopes; import org.onap.policy.rest.jpa.UserInfo; import org.onap.policy.utils.PolicyUtils; @@ -76,7 +83,6 @@ import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockServletConfig; import org.springframework.orm.hibernate4.LocalSessionFactoryBuilder; - public class XACMLPAPTest { private static final Log logger = LogFactory.getLog(XACMLPAPTest.class); @@ -90,10 +96,6 @@ public class XACMLPAPTest { private static SessionFactory sessionFactory; private static CommonClassDao commonClassDao; - private static final String DEFAULT_DB_DRIVER = "org.h2.Driver"; - private static final String DEFAULT_DB_USER = "sa"; - private static final String DEFAULT_DB_PWD = ""; - @BeforeClass public static void beforeClassSetup() throws ServletException { sessionFactory = PolicyDBDaoTest.setupH2DbDaoImpl("xacmlpaptest"); @@ -124,6 +126,7 @@ public class XACMLPAPTest { public void testInit() { httpServletRequest = Mockito.mock(HttpServletRequest.class); httpServletResponse = Mockito.mock(MockHttpServletResponse.class); + logger.info(httpServletResponse); Mockito.when(httpServletRequest.getHeaderNames()).thenReturn(Collections.enumeration(headers)); Mockito.when(httpServletRequest.getAttributeNames()).thenReturn(Collections.enumeration(headers)); CommonClassDaoImpl.setSessionfactory(sessionFactory); @@ -160,7 +163,8 @@ public class XACMLPAPTest { MockServletInputStream mockInput = new MockServletInputStream(PolicyUtils.objectToJsonString(newPAPPolicy).getBytes()); Mockito.when(httpServletRequest.getInputStream()).thenReturn(mockInput); - + logger.info(httpServletRequest); + logger.info(httpServletResponse); pap.service(httpServletRequest, httpServletResponse); Mockito.verify(httpServletResponse).addHeader("operation", "create"); } @@ -189,6 +193,8 @@ public class XACMLPAPTest { Mockito.when(httpServletRequest.getInputStream()).thenReturn(mockInput); setPolicyCreation(); + logger.info(httpServletRequest); + logger.info(httpServletResponse); pap.service(httpServletRequest, httpServletResponse); Mockito.verify(httpServletResponse).addHeader("operation", "create"); } @@ -212,6 +218,8 @@ public class XACMLPAPTest { Mockito.when(httpServletRequest.getInputStream()).thenReturn(mockInput); setPolicyCreation(); + logger.info(httpServletRequest); + logger.info(httpServletResponse); pap.service(httpServletRequest, httpServletResponse); Mockito.verify(httpServletResponse).addHeader("operation", "create"); } @@ -235,6 +243,8 @@ public class XACMLPAPTest { Mockito.when(httpServletRequest.getInputStream()).thenReturn(mockInput); setPolicyCreation(); + logger.info(httpServletRequest); + logger.info(httpServletResponse); pap.service(httpServletRequest, httpServletResponse); Mockito.verify(httpServletResponse).addHeader("operation", "create"); } @@ -254,6 +264,8 @@ public class XACMLPAPTest { new MockServletInputStream(PolicyUtils.objectToJsonString(newPAPPolicy).getBytes()); Mockito.when(httpServletRequest.getInputStream()).thenReturn(mockInput); + logger.info(httpServletRequest); + logger.info(httpServletResponse); pap.service(httpServletRequest, httpServletResponse); Mockito.verify(httpServletResponse).addHeader("operation", "create"); } @@ -284,6 +296,8 @@ public class XACMLPAPTest { new MockServletInputStream(PolicyUtils.objectToJsonString(newPAPPolicy).getBytes()); Mockito.when(httpServletRequest.getInputStream()).thenReturn(mockInput); + logger.info(httpServletRequest); + logger.info(httpServletResponse); pap.service(httpServletRequest, httpServletResponse); Mockito.verify(httpServletResponse).addHeader("operation", "create"); } @@ -307,19 +321,20 @@ public class XACMLPAPTest { matchingAttributes.put("guardActiveEnd", "10:00"); StdPAPPolicy newPAPPolicy = - new StdPAPPolicy( - StdPAPPolicyParams.builder().policyName("testGuardMinMax").description("test rule").onapName("PDPD") - .providerComboBox("GUARD_MIN_MAX").dynamicFieldConfigAttributes(matchingAttributes) - .editPolicy(false).domain("test").highestVersion(0).build()); + new StdPAPPolicy(StdPAPPolicyParams.builder().policyName("testGuardMinMax").description("test rule") + .onapName("PDPD").providerComboBox("GUARD_MIN_MAX") + .dynamicFieldConfigAttributes(matchingAttributes).editPolicy(false).domain("test") + .highestVersion(0).build()); MockServletInputStream mockInput = new MockServletInputStream(PolicyUtils.objectToJsonString(newPAPPolicy).getBytes()); Mockito.when(httpServletRequest.getInputStream()).thenReturn(mockInput); + logger.info(httpServletRequest); + logger.info(httpServletResponse); pap.service(httpServletRequest, httpServletResponse); Mockito.verify(httpServletResponse).addHeader("operation", "create"); } - @Test public void testDecisonBLGuardPolicy() throws IOException, ServletException, SQLException { httpServletRequest = Mockito.mock(HttpServletRequest.class); @@ -343,6 +358,8 @@ public class XACMLPAPTest { new MockServletInputStream(PolicyUtils.objectToJsonString(newPAPPolicy).getBytes()); Mockito.when(httpServletRequest.getInputStream()).thenReturn(mockInput); + logger.info(httpServletRequest); + logger.info(httpServletResponse); pap.service(httpServletRequest, httpServletResponse); Mockito.verify(httpServletResponse).addHeader("operation", "create"); } @@ -366,6 +383,66 @@ public class XACMLPAPTest { new MockServletInputStream(PolicyUtils.objectToJsonString(newPAPPolicy).getBytes()); Mockito.when(httpServletRequest.getInputStream()).thenReturn(mockInput); + logger.info(httpServletRequest); + logger.info(httpServletResponse); + pap.service(httpServletRequest, httpServletResponse); + Mockito.verify(httpServletResponse).addHeader("operation", "create"); + } + + @Test + public void testActionPolicy() throws IOException, ServletException, SQLException { + setPolicyCreation(); + httpServletRequest = Mockito.mock(HttpServletRequest.class); + Mockito.when(httpServletRequest.getHeader(ENVIRONMENT_HEADER)).thenReturn("DEVL"); + Mockito.when(httpServletRequest.getMethod()).thenReturn("PUT"); + Mockito.when(httpServletRequest.getParameter("apiflag")).thenReturn("API"); + Mockito.when(httpServletRequest.getParameter("operation")).thenReturn("create"); + Mockito.when(httpServletRequest.getParameter("policyType")).thenReturn("Action"); + + CommonClassDao commonClassDao = Mockito.mock(CommonClassDao.class); + PolicyCreation.setCommonClassDao(commonClassDao); + ActionPolicyDict actionDict = new ActionPolicyDict(); + actionDict.setBody("{\"test\":\"test\"}"); + actionDict.setHeader("test122=test12:test22=test34"); + actionDict.setType("REST"); + actionDict.setMethod("GET"); + actionDict.setUrl("testsomeurl.com"); + Mockito.when(commonClassDao.getEntityItem(ActionPolicyDict.class, "attributeName", "test")) + .thenReturn(actionDict); + FunctionDefinition funcDefn = new FunctionDefinition(); + funcDefn.setXacmlid("urn:oasis:names:tc:xacml:1.0:function:and"); + Mockito.when(commonClassDao.getEntityItem(FunctionDefinition.class, "short_name", "and")).thenReturn(funcDefn); + funcDefn.setXacmlid("urn:oasis:names:tc:xacml:1.0:function:integer-equal"); + Mockito.when(commonClassDao.getEntityItem(FunctionDefinition.class, "short_name", "integer-equal")) + .thenReturn(funcDefn); + funcDefn.setXacmlid("urn:oasis:names:tc:xacml:3.0:function:string-contains"); + Mockito.when(commonClassDao.getEntityItem(FunctionDefinition.class, "short_name", "string-contains")) + .thenReturn(funcDefn); + funcDefn.setXacmlid("urn:oasis:names:tc:xacml:1.0:function:integer-greater-than"); + Mockito.when(commonClassDao.getEntityItem(FunctionDefinition.class, "short_name", "integer-greater-than")) + .thenReturn(funcDefn); + funcDefn.setXacmlid("urn:oasis:names:tc:xacml:1.0:function:or"); + Mockito.when(commonClassDao.getEntityItem(FunctionDefinition.class, "short_name", "or")).thenReturn(funcDefn); + + Map componentAttributes = new HashMap<>(); + componentAttributes.put("java", "test"); + StdPAPPolicy newPapPolicy = new StdPAPPolicy(StdPAPPolicyParams.builder().policyName("test").description("test") + .dynamicFieldConfigAttributes(componentAttributes) + .dynamicRuleAlgorithmLabels(Arrays.asList("A1", "A2", "A3", "A4", "A5", "A6", "A7")) + .dynamicRuleAlgorithmCombo(Arrays.asList("integer-equal", "string-contains", "integer-equal", "and", + "integer-greater-than", "or", "and")) + .dynamicRuleAlgorithmField1(Arrays.asList("cobal", "cap", "cobal", "A2", "Config", "A4", "A1")) + .dynamicRuleAlgorithmField2(Arrays.asList("90", "ca", "90", "A3", "45", "A5", "A6")) + .actionPerformer("PDP").actionAttribute("test").editPolicy(false).domain("com").highestVersion(0) + .build()); + newPapPolicy.setActionBody("{\"test\":\"test\"}"); + + MockServletInputStream mockInput = + new MockServletInputStream(PolicyUtils.objectToJsonString(newPapPolicy).getBytes()); + Mockito.when(httpServletRequest.getInputStream()).thenReturn(mockInput); + + logger.info(httpServletRequest); + logger.info(httpServletResponse); pap.service(httpServletRequest, httpServletResponse); Mockito.verify(httpServletResponse).addHeader("operation", "create"); } @@ -382,7 +459,7 @@ public class XACMLPAPTest { editorScope.setUserModifiedBy(userInfo); Mockito.when(commonClassDao.getEntityItem(PolicyEditorScopes.class, "scopeName", "test")) .thenReturn(editorScope); - BRMSParamTemplate template = new BRMSParamTemplate(); + BrmsParamTemplate template = new BrmsParamTemplate(); template.setRuleName("testPolicy"); template.setUserCreatedBy(userInfo); String rule = "package com.sample;\n" + "import com.sample.DroolsTest.Message;\n" + "declare Params\n" @@ -394,9 +471,8 @@ public class XACMLPAPTest { + "Params($param.samPoll > 50)\n" + "then\n" + "System.out.println(\"Firing rule 1\");\n" + "System.out.println($param);\n" + "end\n"; template.setRule(rule); - Mockito.when(commonClassDao.getEntityItem(BRMSParamTemplate.class, "ruleName", "testPolicy")) + Mockito.when(commonClassDao.getEntityItem(BrmsParamTemplate.class, "ruleName", "testPolicy")) .thenReturn(template); - } @Test @@ -423,14 +499,14 @@ public class XACMLPAPTest { // Verify Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK); // - // Check PEPOptions + // Check PepOptions // httpServletRequest = Mockito.mock(HttpServletRequest.class); httpServletResponse = Mockito.mock(MockHttpServletResponse.class); json = "{\"dictionaryFields\":{\"pepName\":\"testRestAPI\",\"description\":\"testing create\"," + "\"attributes\":[{\"option\":\"test1\",\"number\":\"test\"},{\"option\":\"test2\"," + "\"number\":\"test\"}]}}"; - dictionaryTestSetup(false, "PEPOptions", json); + dictionaryTestSetup(false, "PepOptions", json); // send Request to PAP pap.service(httpServletRequest, httpServletResponse); // Verify @@ -619,7 +695,6 @@ public class XACMLPAPTest { // Verify Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK); - httpServletRequest = Mockito.mock(HttpServletRequest.class); httpServletResponse = Mockito.mock(MockHttpServletResponse.class); json = "{\"dictionaryFields\":{\"attributeName\":\"TestMMrestAPI1\",\"type\":\"REST\",\"url\":\"testsomeurl" @@ -811,7 +886,7 @@ public class XACMLPAPTest { @Test public void getDictionary() throws ServletException, IOException { String[] dictionarys = new String[] {"Attribute", "OnapName", "Action", "BRMSParamTemplate", "VSCLAction", - "VNFType", "PEPOptions", "Varbind", "Service", "Site", "Settings", "RainyDayTreatments", + "VNFType", "PepOptions", "Varbind", "Service", "Site", "Settings", "RainyDayTreatments", "DescriptiveScope", "ActionList", "ProtocolList", "Zone", "SecurityZone", "PrefixList", "AddressGroup", "ServiceGroup", "ServiceList", "TermList", "MicroServiceLocation", "MicroServiceConfigName", "DCAEUUID", "MicroServiceModels", "PolicyScopeService", "PolicyScopeResource", "PolicyScopeType", @@ -838,14 +913,14 @@ public class XACMLPAPTest { try { Mockito.when(httpServletResponse.getOutputStream()).thenReturn(mockOutput); } catch (IOException e) { - fail(); + fail(e.getMessage()); } try { pap.service(httpServletRequest, httpServletResponse); assertTrue(true); } catch (Exception e) { - fail(); + fail(e.getMessage()); } }