aboutsummaryrefslogtreecommitdiffstats
path: root/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/util/XACMLPolicyScannerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'ONAP-XACML/src/test/java/org/onap/policy/xacml/test/util/XACMLPolicyScannerTest.java')
-rw-r--r--ONAP-XACML/src/test/java/org/onap/policy/xacml/test/util/XACMLPolicyScannerTest.java180
1 files changed, 168 insertions, 12 deletions
diff --git a/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/util/XACMLPolicyScannerTest.java b/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/util/XACMLPolicyScannerTest.java
index 0270a8901..08d899949 100644
--- a/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/util/XACMLPolicyScannerTest.java
+++ b/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/util/XACMLPolicyScannerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP-XACML
* ================================================================================
- * 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,20 +19,38 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.xacml.test.util;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+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 static org.junit.Assert.fail;
+import com.att.research.xacml.api.Advice;
+import com.att.research.xacml.api.Attribute;
+import com.att.research.xacml.api.Obligation;
+import com.att.research.xacml.util.XACMLPolicyScanner.Callback;
+import com.att.research.xacml.util.XACMLPolicyScanner.CallbackResult;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.List;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.ConditionType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.IdReferenceType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableDefinitionType;
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.XACMLPolicyScanner;
-import com.att.research.xacml.util.XACMLPolicyScanner.Callback;
public class XACMLPolicyScannerTest {
@@ -40,16 +58,17 @@ public class XACMLPolicyScannerTest {
private static Path configPolicyPathValue;
private static Path actionPolicyPathValue;
+ /**
+ * setUp.
+ */
@Before
public void setUp() {
File templateFile;
ClassLoader classLoader = getClass().getClassLoader();
try {
- templateFile =
- new File(classLoader.getResource("Config_SampleTest1206.1.xml").getFile());
+ templateFile = new File(classLoader.getResource("Config_SampleTest1206.1.xml").getFile());
configPolicyPathValue = templateFile.toPath();
- templateFile =
- new File(classLoader.getResource("Action_TestActionPolicy.1.xml").getFile());
+ templateFile = new File(classLoader.getResource("Action_TestActionPolicy.1.xml").getFile());
actionPolicyPathValue = templateFile.toPath();
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
@@ -60,11 +79,10 @@ public class XACMLPolicyScannerTest {
public void xacmlPolicyScannerTest() throws IOException {
Callback callback = null;
try {
- XACMLPolicyScanner actionScanner =
- new XACMLPolicyScanner(actionPolicyPathValue, callback);
- assertTrue(actionScanner.getPolicyObject() != null);
+ XACMLPolicyScanner actionScanner = new XACMLPolicyScanner(actionPolicyPathValue, callback);
+ assertNotNull(actionScanner.getPolicyObject());
Object actionObject = actionScanner.scan();
- assertTrue(actionObject != null);
+ assertNotNull(actionObject);
XACMLPolicyScanner scanner = new XACMLPolicyScanner(configPolicyPathValue, callback);
assertTrue(scanner.getPolicyObject() != null);
@@ -76,8 +94,7 @@ public class XACMLPolicyScannerTest {
assertTrue(version.equals("1"));
String versionFromPath = XACMLPolicyScanner.getVersion(configPolicyPathValue);
assertTrue(versionFromPath.equals("1"));
- List<String> returnValue =
- XACMLPolicyScanner.getCreatedByModifiedBy(configPolicyPathValue);
+ List<String> returnValue = XACMLPolicyScanner.getCreatedByModifiedBy(configPolicyPathValue);
assertTrue(returnValue.get(0).equals("test"));
String createdBy = XACMLPolicyScanner.getCreatedBy(configPolicyPathValue);
assertTrue(createdBy.equals("test"));
@@ -88,4 +105,143 @@ public class XACMLPolicyScannerTest {
logger.error("Exception Occured" + e);
}
}
+
+ @Test
+ public void badPolicies() throws IOException {
+ Path unknown = Paths.get("foobar.xml");
+ XACMLPolicyScanner scanner = new XACMLPolicyScanner(unknown, null);
+ assertNull(scanner.getPolicyObject());
+ assertNull(scanner.scan());
+
+ assertThatExceptionOfType(IOException.class).isThrownBy(() -> {
+ XACMLPolicyScanner.getVersion(unknown);
+ });
+
+ Path logback = Paths.get("logback-test.xml");
+ scanner = new XACMLPolicyScanner(logback, null);
+ }
+
+ @Test
+ public void testRest() {
+ PolicySetType policySet = new PolicySetType();
+ policySet.setPolicySetId("id1");
+ policySet.setVersion("v1");
+ XACMLPolicyScanner scanner = new XACMLPolicyScanner(policySet);
+ assertNotNull(scanner);
+ assertEquals(policySet, scanner.getPolicyObject());
+ assertEquals(policySet.getPolicySetId(), XACMLPolicyScanner.getID(policySet));
+ assertEquals(policySet.getVersion(), XACMLPolicyScanner.getVersion(policySet));
+
+ scanner.setCallback(new TestCallback(CallbackResult.CONTINUE));
+ assertEquals(policySet, scanner.scan());
+ assertEquals(policySet, scanner.scan(new TestCallback(CallbackResult.CONTINUE)));
+ assertEquals(policySet, scanner.scan(new TestCallback(CallbackResult.STOP)));
+
+ PolicyType policy = new PolicyType();
+ policy.setPolicyId("id2");
+ policy.setVersion("v2");
+ scanner = new XACMLPolicyScanner(policy);
+ assertNotNull(scanner);
+ assertEquals(policy, scanner.getPolicyObject());
+ assertEquals(policy.getPolicyId(), XACMLPolicyScanner.getID(policy));
+ assertEquals(policy.getVersion(), XACMLPolicyScanner.getVersion(policy));
+ policy.setVersion(null);
+ assertNull(XACMLPolicyScanner.getVersion(policy));
+
+ assertNull(XACMLPolicyScanner.getID(new String()));
+ assertNull(XACMLPolicyScanner.getVersion(new String()));
+
+ }
+
+ @Test
+ public void testPolicySet() {
+ PolicySetType policySet = new PolicySetType();
+ policySet.setPolicySetId("id1");
+ policySet.setVersion("v1");
+
+ }
+
+ class TestCallback implements Callback {
+
+ CallbackResult begin = CallbackResult.CONTINUE;
+
+ TestCallback(CallbackResult onBegin) {
+ begin = onBegin;
+ }
+
+ @Override
+ public CallbackResult onBeginScan(Object root) {
+ return begin;
+ }
+
+ @Override
+ public void onFinishScan(Object root) {
+ }
+
+ @Override
+ public CallbackResult onPreVisitPolicySet(PolicySetType parent, PolicySetType policySet) {
+ return CallbackResult.CONTINUE;
+ }
+
+ @Override
+ public CallbackResult onPostVisitPolicySet(PolicySetType parent, PolicySetType policySet) {
+ return CallbackResult.CONTINUE;
+ }
+
+ @Override
+ public CallbackResult onPreVisitPolicy(PolicySetType parent, PolicyType policy) {
+ return CallbackResult.CONTINUE;
+ }
+
+ @Override
+ public CallbackResult onPostVisitPolicy(PolicySetType parent, PolicyType policy) {
+ return CallbackResult.CONTINUE;
+ }
+
+ @Override
+ public CallbackResult onPreVisitRule(PolicyType parent, RuleType rule) {
+ return CallbackResult.CONTINUE;
+ }
+
+ @Override
+ public CallbackResult onPostVisitRule(PolicyType parent, RuleType rule) {
+ return CallbackResult.CONTINUE;
+ }
+
+ @Override
+ public CallbackResult onAttribute(Object parent, Object container, Attribute attribute) {
+ return CallbackResult.CONTINUE;
+ }
+
+ @Override
+ public CallbackResult onObligation(Object parent, ObligationExpressionType expression, Obligation obligation) {
+ return CallbackResult.CONTINUE;
+ }
+
+ @Override
+ public CallbackResult onAdvice(Object parent, AdviceExpressionType expression, Advice advice) {
+ return CallbackResult.CONTINUE;
+ }
+
+ @Override
+ public CallbackResult onVariable(PolicyType policy, VariableDefinitionType variable) {
+ return CallbackResult.CONTINUE;
+ }
+
+ @Override
+ public CallbackResult onCondition(RuleType rule, ConditionType condition) {
+ return CallbackResult.CONTINUE;
+ }
+
+ @Override
+ public CallbackResult onPolicySetIdReference(IdReferenceType reference, PolicySetType parent) {
+ return CallbackResult.CONTINUE;
+ }
+
+ @Override
+ public CallbackResult onPolicyIdReference(IdReferenceType reference, PolicySetType parent) {
+ return CallbackResult.CONTINUE;
+ }
+
+ }
}