From b0b4b6397de13ac296ab82ed40df75fdf5846d83 Mon Sep 17 00:00:00 2001 From: bobbymander Date: Mon, 2 Apr 2018 14:35:37 -0400 Subject: [PATCH] JUnit additions for PDP,PDP-REST,SDK,XACML Issue-ID: POLICY-600 Change-Id: I8052451c3f66116f361f2963fcc2727c022dd4d9 Signed-off-by: bobbymander --- .../api/services/DecisionPolicyServiceTest.java | 186 ++++++++++++--------- .../FunctionDefinitionCustomRegexpMatchTest.java | 48 +++++- .../org/onap/portalapp/scheduler/RegisterTest.java | 59 ++++--- .../xacml/test/util/XACMLPolicyWriterTest.java | 80 +++++---- 4 files changed, 235 insertions(+), 138 deletions(-) diff --git a/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/services/DecisionPolicyServiceTest.java b/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/services/DecisionPolicyServiceTest.java index fe0668115..24b8497e3 100644 --- a/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/services/DecisionPolicyServiceTest.java +++ b/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/services/DecisionPolicyServiceTest.java @@ -19,8 +19,10 @@ */ package org.onap.policy.pdp.rest.api.services; -import static org.junit.Assert.*; - +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; import java.io.FileInputStream; import java.util.Arrays; import java.util.HashMap; @@ -29,7 +31,6 @@ import java.util.List; import java.util.Map; import java.util.Properties; import java.util.UUID; - import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -40,82 +41,107 @@ import org.onap.policy.api.PolicyParameters; public class DecisionPolicyServiceTest { - DecisionPolicyService service = null; - - @Before - public void setUp() throws Exception { - Properties prop = new Properties(); - prop.load(new FileInputStream("src/test/resources/pass.xacml.pdp.properties")); - String succeeded = prop.getProperty("xacml.rest.pap.url"); - List paps = Arrays.asList(succeeded.split(",")); - PAPServices.setPaps(paps); - PAPServices.setJunit(true); - - PolicyParameters policyParameters = new PolicyParameters(); - policyParameters.setPolicyClass(PolicyClass.Decision); - policyParameters.setPolicyName("Test.testDecisionPolicy"); - policyParameters.setOnapName("MSO"); - policyParameters.setPolicyDescription("This is a sample Decision policy UPDATE example with Settings"); - - Map configAttributes = new HashMap<>(); - configAttributes.put("Template", "UpdateTemplate"); - configAttributes.put("controller", "default"); - configAttributes.put("SamPoll", "30"); - configAttributes.put("value", "abcd"); - Map> attributes = new HashMap<>(); - attributes.put(AttributeType.MATCHING, configAttributes); - Map settingsMap = new HashMap<>(); - settingsMap.put("server", "5"); - attributes.put(AttributeType.SETTINGS, settingsMap); - policyParameters.setAttributes(attributes); - - List dynamicRuleAlgorithmLabels = new LinkedList<>(); - List dynamicRuleAlgorithmFunctions = new LinkedList<>(); - List dynamicRuleAlgorithmField1 = new LinkedList<>(); - List dynamicRuleAlgorithmField2 = new LinkedList<>(); - dynamicRuleAlgorithmLabels = Arrays.asList("A1","A2","A3","A4","A5","A6","A7"); - dynamicRuleAlgorithmField1 = Arrays.asList("S_server","cap","cobal","A2","Config","A4","A1"); - dynamicRuleAlgorithmFunctions = Arrays.asList("integer-equal","string-contains","integer-equal","and","integer-greater-than","or","and"); - dynamicRuleAlgorithmField2 = Arrays.asList("90","ca","90","A3","45","A5","A6"); - policyParameters.setDynamicRuleAlgorithmLabels(dynamicRuleAlgorithmLabels); - policyParameters.setDynamicRuleAlgorithmField1(dynamicRuleAlgorithmField1); - policyParameters.setDynamicRuleAlgorithmFunctions(dynamicRuleAlgorithmFunctions); - policyParameters.setDynamicRuleAlgorithmField2(dynamicRuleAlgorithmField2); - - policyParameters.setRequestID(UUID.randomUUID()); - policyParameters.setGuard(true); - policyParameters.setRiskLevel("5"); - policyParameters.setRiskType("TEST"); - String policyName = "testDecisionPolicy"; - String policyScope = "Test"; - service = new DecisionPolicyService(policyName, policyScope, policyParameters); - } - - @After - public void tearDown() throws Exception { - PAPServices.setPaps(null); - PAPServices.setJunit(false); - } - - @Test - public final void testDecisionPolicyService() { - assertNotNull(service); - } - - @Test - public final void testGetValidation() { - assertTrue(service.getValidation()); - } - - @Test - public final void testGetMessage() { - String message = service.getMessage(); - assertNull(message); } - - @Test - public final void testGetResult() throws PolicyException { - service.getValidation(); - String result = service.getResult(false); - assertEquals("success",result); } + DecisionPolicyService service = null; + + @Before + public void setUp() throws Exception { + Properties prop = new Properties(); + prop.load(new FileInputStream("src/test/resources/pass.xacml.pdp.properties")); + String succeeded = prop.getProperty("xacml.rest.pap.url"); + List paps = Arrays.asList(succeeded.split(",")); + PAPServices.setPaps(paps); + PAPServices.setJunit(true); + + PolicyParameters policyParameters = new PolicyParameters(); + policyParameters.setPolicyClass(PolicyClass.Decision); + policyParameters.setPolicyName("Test.testDecisionPolicy"); + policyParameters.setOnapName("MSO"); + policyParameters + .setPolicyDescription("This is a sample Decision policy UPDATE example with Settings"); + + Map configAttributes = new HashMap<>(); + configAttributes.put("Template", "UpdateTemplate"); + configAttributes.put("controller", "default"); + configAttributes.put("SamPoll", "30"); + configAttributes.put("value", "abcd"); + Map> attributes = new HashMap<>(); + attributes.put(AttributeType.MATCHING, configAttributes); + Map settingsMap = new HashMap<>(); + settingsMap.put("server", "5"); + attributes.put(AttributeType.SETTINGS, settingsMap); + policyParameters.setAttributes(attributes); + + List dynamicRuleAlgorithmLabels = new LinkedList<>(); + List dynamicRuleAlgorithmFunctions = new LinkedList<>(); + List dynamicRuleAlgorithmField1 = new LinkedList<>(); + List dynamicRuleAlgorithmField2 = new LinkedList<>(); + dynamicRuleAlgorithmLabels = Arrays.asList("A1", "A2", "A3", "A4", "A5", "A6", "A7"); + dynamicRuleAlgorithmField1 = + Arrays.asList("S_server", "cap", "cobal", "A2", "Config", "A4", "A1"); + dynamicRuleAlgorithmFunctions = Arrays.asList("integer-equal", "string-contains", + "integer-equal", "and", "integer-greater-than", "or", "and"); + dynamicRuleAlgorithmField2 = Arrays.asList("90", "ca", "90", "A3", "45", "A5", "A6"); + policyParameters.setDynamicRuleAlgorithmLabels(dynamicRuleAlgorithmLabels); + policyParameters.setDynamicRuleAlgorithmField1(dynamicRuleAlgorithmField1); + policyParameters.setDynamicRuleAlgorithmFunctions(dynamicRuleAlgorithmFunctions); + policyParameters.setDynamicRuleAlgorithmField2(dynamicRuleAlgorithmField2); + + policyParameters.setRequestID(UUID.randomUUID()); + policyParameters.setGuard(true); + policyParameters.setRiskLevel("5"); + policyParameters.setRiskType("TEST"); + String policyName = "testDecisionPolicy"; + String policyScope = "Test"; + service = new DecisionPolicyService(policyName, policyScope, policyParameters); + } + + @After + public void tearDown() throws Exception { + PAPServices.setPaps(null); + PAPServices.setJunit(false); + } + + @Test + public final void testDecisionPolicyService() { + assertNotNull(service); + } + + @Test + public final void testGetValidation() { + assertTrue(service.getValidation()); + } + + @Test + public final void testGetMessage() { + String message = service.getMessage(); + assertNull(message); + } + + @Test + public final void testGetResult() throws PolicyException { + service.getValidation(); + String result = service.getResult(false); + assertEquals("success", result); + } + + @Test + public void testExtraPaths() throws PolicyException { + // Set up test data + String value = "testVal"; + PolicyParameters params = new PolicyParameters(); + Map> attributes = + new HashMap>(); + // attributes.put(AttributeType.MATCHING, null); + attributes.put(AttributeType.SETTINGS, null); + params.setAttributes(attributes); + DecisionPolicyService service = new DecisionPolicyService(value, value, params); + + // Negative test methods + assertEquals(false, service.getValidation()); + assertEquals("success", service.getResult(true)); + attributes.remove(AttributeType.SETTINGS); + attributes.put(AttributeType.MATCHING, null); + assertEquals("success", service.getResult(true)); + } } diff --git a/ONAP-PDP/src/test/java/org/onap/policy/xacml/pdp/std/functions/FunctionDefinitionCustomRegexpMatchTest.java b/ONAP-PDP/src/test/java/org/onap/policy/xacml/pdp/std/functions/FunctionDefinitionCustomRegexpMatchTest.java index da1759a22..08a01c879 100644 --- a/ONAP-PDP/src/test/java/org/onap/policy/xacml/pdp/std/functions/FunctionDefinitionCustomRegexpMatchTest.java +++ b/ONAP-PDP/src/test/java/org/onap/policy/xacml/pdp/std/functions/FunctionDefinitionCustomRegexpMatchTest.java @@ -26,6 +26,7 @@ import com.att.research.xacml.api.Identifier; import com.att.research.xacml.api.XACML; import com.att.research.xacml.std.IdentifierImpl; import com.att.research.xacml.std.StdAttributeValue; +import com.att.research.xacml.std.StdStatusCode; import com.att.research.xacml.std.datatypes.DataTypes; import com.att.research.xacmlatt.pdp.policy.ExpressionResult; import com.att.research.xacmlatt.pdp.policy.FunctionArgument; @@ -40,7 +41,7 @@ public class FunctionDefinitionCustomRegexpMatchTest { @Test public final void testRegexp() { // Setup - final String testVal = "testVal"; + final String testVal = "testVal,testVal2"; final String testId = "function:testId"; final IdentifierImpl testFnId = new IdentifierImpl(testId); final Identifier identifier = XACML.ID_DATATYPE_STRING; @@ -49,11 +50,50 @@ public class FunctionDefinitionCustomRegexpMatchTest { final List listFa = new ArrayList(); listFa.add(fArg); listFa.add(fArg); - - // Try a match final FunctionDefinitionCustomRegexpMatch regexpMatch = new FunctionDefinitionCustomRegexpMatch(testFnId, DataTypes.DT_STRING); + + // Try a match final ExpressionResult result = regexpMatch.evaluate(null, listFa); - assertEquals(result.getStatus().isOk(), true); + assertEquals(true, result.getValue().getValue()); + + // Try error case 1 + assertEquals(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, + regexpMatch.evaluate(null, null).getStatus().getStatusCode()); + + // Try error case 2 + final Identifier identifier2 = XACML.ID_DATATYPE_BOOLEAN; + final StdAttributeValue attValue2 = new StdAttributeValue(identifier2, testVal); + final FunctionArgument fArg2 = new FunctionArgumentAttributeValue(attValue2); + final List listFa2 = new ArrayList(); + listFa2.add(fArg2); + listFa2.add(fArg2); + assertEquals(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, + regexpMatch.evaluate(null, listFa2).getStatus().getStatusCode()); + + // Try error case 3 + final List listFa3 = new ArrayList(); + listFa3.add(fArg); + listFa3.add(fArg2); + assertEquals(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, + regexpMatch.evaluate(null, listFa3).getStatus().getStatusCode()); + + // Try a mismatch + final String testVal4 = "testVal3"; + final StdAttributeValue attValue4 = new StdAttributeValue(identifier, testVal4); + final FunctionArgument fArg4 = new FunctionArgumentAttributeValue(attValue4); + final List listFa4 = new ArrayList(); + listFa4.add(fArg); + listFa4.add(fArg4); + assertEquals(false, regexpMatch.evaluate(null, listFa4).getValue().getValue()); + + // Try a comma match + final String testVal5 = "testVal2"; + final StdAttributeValue attValue5 = new StdAttributeValue(identifier, testVal5); + final FunctionArgument fArg5 = new FunctionArgumentAttributeValue(attValue5); + final List listFa5 = new ArrayList(); + listFa5.add(fArg); + listFa5.add(fArg5); + assertEquals(true, regexpMatch.evaluate(null, listFa5).getValue().getValue()); } } diff --git a/ONAP-SDK-APP/src/test/java/org/onap/portalapp/scheduler/RegisterTest.java b/ONAP-SDK-APP/src/test/java/org/onap/portalapp/scheduler/RegisterTest.java index ec7724c07..0f406b163 100644 --- a/ONAP-SDK-APP/src/test/java/org/onap/portalapp/scheduler/RegisterTest.java +++ b/ONAP-SDK-APP/src/test/java/org/onap/portalapp/scheduler/RegisterTest.java @@ -22,36 +22,45 @@ package org.onap.portalapp.scheduler; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; + import java.util.ArrayList; import java.util.List; -import org.junit.Rule; + import org.junit.Test; -import org.junit.rules.ExpectedException; import org.quartz.Trigger; import org.quartz.TriggerBuilder; public class RegisterTest { - @Rule - public final ExpectedException thrown = ExpectedException.none(); - - @Test - public void testRegister() { - Register register = new Register(); - TriggerBuilder triggerBuilder = TriggerBuilder.newTrigger(); - Trigger trigger = triggerBuilder.build(); - List triggers = new ArrayList(); - triggers.add(trigger); - - register.setScheduleTriggers(triggers); - assertEquals(register.getScheduleTriggers(), triggers); - assertEquals(register.getTriggers().length, 1); - } - - @Test - public void testRegisterNegativeCase() { - thrown.expect(NullPointerException.class); - Register register = new Register(); - register.registerTriggers(); - fail("Expecting an exception."); - } + @Test + public void testRegister() { + Register register = new Register(); + TriggerBuilder triggerBuilder = TriggerBuilder.newTrigger(); + Trigger trigger = triggerBuilder.build(); + List triggers = new ArrayList(); + triggers.add(trigger); + + register.setScheduleTriggers(triggers); + assertEquals(register.getScheduleTriggers(), triggers); + assertEquals(register.getTriggers().length, 1); + } + + @Test(expected = NullPointerException.class) + public void testRegisterNegativeCase() { + Register register = new Register(); + register.registerTriggers(); + fail("Expecting an exception."); + } + + @Test(expected = NullPointerException.class) + public void testRegisterNegativeCase2() { + // Setup test data + String value = "testVal"; + Register register = new Register(); + List triggers = new ArrayList(); + register.setScheduleTriggers(triggers); + + // Test register + register.registerTriggers(); + fail("Expecting an exception."); + } } diff --git a/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/util/XACMLPolicyWriterTest.java b/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/util/XACMLPolicyWriterTest.java index c948716dc..0a3a5e095 100644 --- a/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/util/XACMLPolicyWriterTest.java +++ b/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/util/XACMLPolicyWriterTest.java @@ -19,44 +19,66 @@ */ package org.onap.policy.xacml.test.util; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; - +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; +import java.io.OutputStream; import java.nio.file.Path; - +import java.nio.file.Paths; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Before; import org.junit.Test; import org.onap.policy.xacml.util.XACMLPolicyWriter; +import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetType; +import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType; public class XACMLPolicyWriterTest { - private static final Log logger = LogFactory.getLog(XACMLPolicyWriterTest.class); - private static Path configPolicyPathValue; - private static Path actionPolicyPathValue; - - @Before - public void setUp() { - File templateFile; - ClassLoader classLoader = getClass().getClassLoader(); - try { - templateFile = new File(classLoader.getResource("Config_SampleTest1206.1.xml").getFile()); - configPolicyPathValue = templateFile.toPath(); - templateFile = new File(classLoader.getResource("Action_TestActionPolicy.1.xml").getFile()); - actionPolicyPathValue = templateFile.toPath(); - } catch (Exception e1) { - logger.error("Exception Occured"+e1); - } - } - - @SuppressWarnings("static-access") - @Test - public void xacmlPolicyWriterTest() throws IOException{ - XACMLPolicyWriter writer = new XACMLPolicyWriter(); - String configResponseValue = writer.changeFileNameInXmlWhenRenamePolicy(configPolicyPathValue); - assertTrue(configResponseValue.equals("txt")); - String actionResponseValue = writer.changeFileNameInXmlWhenRenamePolicy(actionPolicyPathValue); - assertTrue(actionResponseValue.equals("json")); - } + private static final Log logger = LogFactory.getLog(XACMLPolicyWriterTest.class); + private static Path configPolicyPathValue; + private static Path actionPolicyPathValue; + + @Before + public void setUp() { + File templateFile; + ClassLoader classLoader = getClass().getClassLoader(); + try { + templateFile = new File(classLoader.getResource("Config_SampleTest1206.1.xml").getFile()); + configPolicyPathValue = templateFile.toPath(); + templateFile = new File(classLoader.getResource("Action_TestActionPolicy.1.xml").getFile()); + actionPolicyPathValue = templateFile.toPath(); + } catch (Exception e1) { + logger.error("Exception Occured" + e1); + } + } + + @SuppressWarnings("static-access") + @Test + public void xacmlPolicyWriterTest() throws IOException { + XACMLPolicyWriter writer = new XACMLPolicyWriter(); + String configResponseValue = writer.changeFileNameInXmlWhenRenamePolicy(configPolicyPathValue); + assertTrue(configResponseValue.equals("txt")); + String actionResponseValue = writer.changeFileNameInXmlWhenRenamePolicy(actionPolicyPathValue); + assertTrue(actionResponseValue.equals("json")); + } + + @Test + public void testWrites() { + // Set up test data + PolicyType policyType = new PolicyType(); + OutputStream os = new ByteArrayOutputStream(); + Path filename = Paths.get("/tmp/foo"); + PolicySetType policySet = new PolicySetType(); + + // Test write combinations + assertNotNull(XACMLPolicyWriter.writePolicyFile(filename, policySet)); + assertNotNull(XACMLPolicyWriter.writePolicyFile(filename, policyType)); + assertNotNull(XACMLPolicyWriter.getXmlAsInputStream(policyType)); + XACMLPolicyWriter.writePolicyFile(os, policySet); + assertNotNull(os.toString()); + XACMLPolicyWriter.writePolicyFile(os, policyType); + assertNotNull(os.toString()); + } } -- 2.16.6