JUnit additions for PDP,PDP-REST,SDK,XACML
[policy/engine.git] / ONAP-PDP / src / test / java / org / onap / policy / xacml / pdp / std / functions / FunctionDefinitionCustomRegexpMatchTest.java
index da1759a..08a01c8 100644 (file)
@@ -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<FunctionArgument> listFa = new ArrayList<FunctionArgument>();
         listFa.add(fArg);
         listFa.add(fArg);
-
-        // Try a match
         final FunctionDefinitionCustomRegexpMatch<String> regexpMatch =
                 new FunctionDefinitionCustomRegexpMatch<String>(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<String> attValue2 = new StdAttributeValue<String>(identifier2, testVal);
+        final FunctionArgument fArg2 = new FunctionArgumentAttributeValue(attValue2);
+        final List<FunctionArgument> listFa2 = new ArrayList<FunctionArgument>();
+        listFa2.add(fArg2);
+        listFa2.add(fArg2);
+        assertEquals(StdStatusCode.STATUS_CODE_PROCESSING_ERROR,
+                regexpMatch.evaluate(null, listFa2).getStatus().getStatusCode());
+
+        // Try error case 3
+        final List<FunctionArgument> listFa3 = new ArrayList<FunctionArgument>();
+        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<String> attValue4 = new StdAttributeValue<String>(identifier, testVal4);
+        final FunctionArgument fArg4 = new FunctionArgumentAttributeValue(attValue4);
+        final List<FunctionArgument> listFa4 = new ArrayList<FunctionArgument>();
+        listFa4.add(fArg);
+        listFa4.add(fArg4);
+        assertEquals(false, regexpMatch.evaluate(null, listFa4).getValue().getValue());
+
+        // Try a comma match
+        final String testVal5 = "testVal2";
+        final StdAttributeValue<String> attValue5 = new StdAttributeValue<String>(identifier, testVal5);
+        final FunctionArgument fArg5 = new FunctionArgumentAttributeValue(attValue5);
+        final List<FunctionArgument> listFa5 = new ArrayList<FunctionArgument>();
+        listFa5.add(fArg);
+        listFa5.add(fArg5);
+        assertEquals(true, regexpMatch.evaluate(null, listFa5).getValue().getValue());
     }
 }