Add exclusions parameter
[policy/xacml-pdp.git] / main / src / test / java / org / onap / policy / pdpx / main / parameters / TestXacmlPdpParameterHandler.java
index 3955031..00e95db 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2020 Nordix Foundation
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +21,7 @@
 
 package org.onap.policy.pdpx.main.parameters;
 
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -66,9 +68,9 @@ public class TestXacmlPdpParameterHandler {
         badArguments.parse(badArgumentString);
 
         assertThatThrownBy(() -> new XacmlPdpParameterHandler().getParameters(badArguments))
-                .hasMessage("error reading parameters from \"parameters/BadParameters.json\"\n"
-                        + "(JsonSyntaxException):java.lang.IllegalStateException: "
-                        "Expected a string but was BEGIN_ARRAY at line 2 column 14 path $.name");
+                .hasMessageContaining("error reading parameters from", "parameters/BadParameters.json",
+                        "JsonSyntaxException", "java.lang.IllegalStateException",
+                        "Expected a string but was BEGIN_ARRAY at line 2 column 14 path $.name");
 
     }
 
@@ -80,9 +82,9 @@ public class TestXacmlPdpParameterHandler {
         invalidArguments.parse(invalidArgumentString);
 
         assertThatThrownBy(() -> new XacmlPdpParameterHandler().getParameters(invalidArguments))
-                .hasMessage("error reading parameters from \"parameters/InvalidParameters.json\"\n"
-                        + "(JsonSyntaxException):java.lang.IllegalStateException: "
-                        "Expected a string but was BEGIN_ARRAY at line 2 column 14 path $.name");
+                .hasMessageContaining("error reading parameters from", "parameters/InvalidParameters.json",
+                        "JsonSyntaxException", "java.lang.IllegalStateException",
+                        "Expected a string but was BEGIN_ARRAY at line 2 column 14 path $.name");
     }
 
     @Test
@@ -93,11 +95,12 @@ public class TestXacmlPdpParameterHandler {
         noArguments.parse(noArgumentString);
 
         assertThatThrownBy(() -> new XacmlPdpParameterHandler().getParameters(noArguments))
-                .hasMessage("validation error(s) on parameters from \"parameters/NoParameters.json\"\nparameter group "
-                        + "\"null\" type \"org.onap.policy.pdpx.main.parameters.XacmlPdpParameterGroup\" INVALID, "
-                        + "parameter group has status INVALID\n"
-                        + "  field \"name\" type \"java.lang.String\" value \"null\" "
-                        + "INVALID, must be a non-blank string\n");
+                .hasMessageContaining("validation error(s) on parameters from \"parameters/NoParameters.json\"",
+                        "\"XacmlPdpParameterGroup\" INVALID, item has status INVALID",
+                        "\"name\" value \"null\" INVALID, is null",
+                        "\"pdpGroup\" value \"null\" INVALID, is null",
+                        "\"pdpType\" value \"null\" INVALID, is null",
+                        "\"applicationPath\" value \"null\" INVALID, is null");
     }
 
     @Test
@@ -108,7 +111,9 @@ public class TestXacmlPdpParameterHandler {
         minArguments.parse(minArgumentString);
 
         final XacmlPdpParameterGroup parGroup = new XacmlPdpParameterHandler().getParameters(minArguments);
-        assertEquals(CommonTestData.PDPX_GROUP_NAME, parGroup.getName());
+        assertEquals(CommonTestData.PDPX_PARAMETER_GROUP_NAME, parGroup.getName());
+        assertEquals(CommonTestData.PDPX_GROUP, parGroup.getPdpGroup());
+        assertEquals(CommonTestData.PDPX_TYPE, parGroup.getPdpType());
     }
 
     @Test
@@ -120,18 +125,32 @@ public class TestXacmlPdpParameterHandler {
 
         final XacmlPdpParameterGroup parGroup = new XacmlPdpParameterHandler().getParameters(arguments);
         assertTrue(arguments.checkSetConfigurationFilePath());
-        assertEquals(CommonTestData.PDPX_GROUP_NAME, parGroup.getName());
+        assertEquals(CommonTestData.PDPX_PARAMETER_GROUP_NAME, parGroup.getName());
+        assertEquals(CommonTestData.PDPX_GROUP, parGroup.getPdpGroup());
     }
 
     @Test
-    public void testXacmlPdpParameterGroup_InvalidName() throws PolicyXacmlPdpException {
+    public void testXacmlPdpParameterGroup_Invalid() throws PolicyXacmlPdpException {
         final String[] xacmlPdpConfigParameters = {"-c", "parameters/XacmlPdpConfigParameters_InvalidName.json"};
 
         final XacmlPdpCommandLineArguments arguments = new XacmlPdpCommandLineArguments();
         arguments.parse(xacmlPdpConfigParameters);
 
         assertThatThrownBy(() -> new XacmlPdpParameterHandler().getParameters(arguments)).hasMessageContaining(
-                "field \"name\" type \"java.lang.String\" value \" \" INVALID, must be a non-blank string");
+                "\"name\" value \" \" INVALID, is blank");
+        xacmlPdpConfigParameters[1] = "parameters/XacmlPdpConfigParameters_InvalidPdpGroup.json";
+
+        arguments.parse(xacmlPdpConfigParameters);
+
+        assertThatThrownBy(() -> new XacmlPdpParameterHandler().getParameters(arguments)).hasMessageContaining(
+                "\"pdpGroup\" value \" \" INVALID, is blank");
+
+        xacmlPdpConfigParameters[1] = "parameters/XacmlPdpConfigParameters_InvalidPdpType.json";
+
+        arguments.parse(xacmlPdpConfigParameters);
+
+        assertThatThrownBy(() -> new XacmlPdpParameterHandler().getParameters(arguments)).hasMessageContaining(
+                "\"pdpType\" value \"\" INVALID, is blank");
     }
 
     @Test
@@ -142,7 +161,7 @@ public class TestXacmlPdpParameterHandler {
         final XacmlPdpCommandLineArguments arguments = new XacmlPdpCommandLineArguments();
         arguments.parse(xacmlPdpConfigParameters);
 
-        final String expectedResult = new String(Files.readAllBytes(
+        new String(Files.readAllBytes(
                 Paths.get("src/test/resources/expectedValidationResults/InvalidRestServerParameters.txt")));
 
         assertThatThrownBy(() -> new XacmlPdpParameterHandler().getParameters(arguments))
@@ -150,6 +169,20 @@ public class TestXacmlPdpParameterHandler {
                         + "\"parameters/XacmlPdpConfigParameters_InvalidRestServerParameters.json\"");
     }
 
+    @Test
+    public void testXacmlPdpParameterGroup_Exclusions() throws PolicyXacmlPdpException {
+        final String[] xacmlPdpConfigParameters = {"-c", "parameters/XacmlPdpConfigParameters_Exclusions.json"};
+
+        final XacmlPdpCommandLineArguments arguments = new XacmlPdpCommandLineArguments();
+        arguments.parse(xacmlPdpConfigParameters);
+
+        final XacmlPdpParameterGroup parGroup = new XacmlPdpParameterHandler().getParameters(arguments);
+        assertTrue(arguments.checkSetConfigurationFilePath());
+        assertEquals(CommonTestData.PDPX_PARAMETER_GROUP_NAME, parGroup.getName());
+        assertEquals(CommonTestData.PDPX_GROUP, parGroup.getPdpGroup());
+        assertThat(parGroup.getApplicationParameters().getExclusions()).hasSize(2);
+    }
+
     @Test
     public void testXacmlPdpVersion() throws PolicyXacmlPdpException {
         final String[] xacmlPdpConfigParameters = {"-v"};
@@ -167,13 +200,12 @@ public class TestXacmlPdpParameterHandler {
     }
 
     @Test
-    public void testXacmlPdpInvalidOption() throws PolicyXacmlPdpException {
+    public void testXacmlPdpInvalidOption() {
         final String[] xacmlPdpConfigParameters = {"-d"};
         final XacmlPdpCommandLineArguments arguments = new XacmlPdpCommandLineArguments();
-        try {
-            arguments.parse(xacmlPdpConfigParameters);
-        } catch (final Exception exp) {
-            assertTrue(exp.getMessage().startsWith("invalid command line arguments specified"));
-        }
+        assertThatThrownBy(() ->
+            arguments.parse(xacmlPdpConfigParameters)
+        ).isInstanceOf(PolicyXacmlPdpException.class)
+        .hasMessageContaining("invalid command line arguments specified");
     }
 }