X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ONAP-XACML%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Fxacml%2Ftest%2Fstd%2Fpap%2FStdEngineFactoryTest.java;h=b7fb32a3be27ce06fb527c79ed8ba556fd65f0b9;hb=57c4294518a1d2a42c645f65edbdf0517d128ed6;hp=6ab9790c1831dd2cf415ed65a469fc47519758aa;hpb=9655c9a9f8f20418a7735c72f3479f5b9a9859ba;p=policy%2Fengine.git diff --git a/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/std/pap/StdEngineFactoryTest.java b/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/std/pap/StdEngineFactoryTest.java index 6ab9790c1..b7fb32a3b 100644 --- a/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/std/pap/StdEngineFactoryTest.java +++ b/ONAP-XACML/src/test/java/org/onap/policy/xacml/test/std/pap/StdEngineFactoryTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP-XACML * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Modifications Copyright (C) 2019 Samsung * ================================================================================ @@ -19,31 +19,74 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.xacml.test.std.pap; -import static org.junit.Assert.assertTrue; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.fail; + +import com.att.research.xacml.api.pap.PAPException; +import com.att.research.xacml.std.pap.StdEngine; +import com.att.research.xacml.util.FactoryException; +import java.io.File; import java.io.IOException; import java.util.Properties; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import org.onap.policy.xacml.api.pap.PAPPolicyEngine; import org.onap.policy.xacml.std.pap.StdEngineFactory; -import com.att.research.xacml.api.pap.PAPException; -import com.att.research.xacml.std.pap.StdEngine; -import com.att.research.xacml.util.FactoryException; public class StdEngineFactoryTest { + + private static String systemProperty; + + @Rule + public TemporaryFolder folder = new TemporaryFolder(); + + @BeforeClass + public static void saveSystemProperty() { + systemProperty = System.getProperty(StdEngine.PROP_PAP_REPO); + } + + /** + * restoreSystemProperty. + */ + @AfterClass + public static void restoreSystemProperty() { + if (systemProperty != null) { + System.setProperty(StdEngine.PROP_PAP_REPO, systemProperty); + } else { + System.clearProperty(StdEngine.PROP_PAP_REPO); + } + } + @Test public void testStdEngineFactory() throws FactoryException, PAPException, IOException { StdEngineFactory stdFactory = new StdEngineFactory(); System.setProperty("xacml.pap.pdps", "src/test/resources/pdps"); - assertTrue(stdFactory.newEngine() != null); + assertNotNull(stdFactory.newEngine()); Properties properties = new Properties(); properties.setProperty("xacml.pap.pdps", "src/test/resources/pdps"); - assertTrue(stdFactory.newEngine(properties) != null); + assertNotNull(stdFactory.newEngine(properties)); StdEngineFactory stdFactoryNew = new StdEngineFactory(); System.setProperty("xacml.pap.pdps", "src/test/resources/pdpstest"); - assertTrue(stdFactoryNew.newEngine() != null); + PAPPolicyEngine engine = stdFactoryNew.newEngine(); + assertNotNull(engine); + + assertThatExceptionOfType(NullPointerException.class).isThrownBy(() -> + engine.newGroup(null, null) + ); + + assertThatExceptionOfType(NullPointerException.class).isThrownBy(() -> + engine.movePDP(null, null) + ); + } @Test @@ -53,25 +96,54 @@ public class StdEngineFactoryTest { String tmpdir = System.getProperty("java.io.tmpdir"); props.setProperty(StdEngine.PROP_PAP_REPO, tmpdir); - // Set the system property temporarily - String systemKey = StdEngine.PROP_PAP_REPO; - String oldProperty = System.getProperty(systemKey); - System.setProperty(systemKey, tmpdir); - // Test factory failure cases try { StdEngineFactory factory = new StdEngineFactory(); - factory.newEngine(); - factory.newEngine(props); + assertNotNull(factory.newEngine()); + assertNotNull(factory.newEngine(props)); } catch (Exception ex) { fail("Not expecting any exceptions: " + ex); } - // Restore the original system property - if (oldProperty != null) { - System.setProperty(systemKey, oldProperty); - } else { - System.clearProperty(systemKey); - } + } + + @Test + public void testException() throws FactoryException, PAPException, IOException { + Properties props = new Properties(); + File myFolder = folder.newFolder("idontexist"); + props.setProperty(StdEngine.PROP_PAP_REPO, myFolder.getAbsolutePath()); + StdEngineFactory factory = new StdEngineFactory(); + assertNotNull(factory.newEngine(props)); + + // + // + // + myFolder.setReadOnly(); + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + factory.newEngine(props) + ); + + // + // + // + File myFile = folder.newFile("iamafile"); + props.setProperty(StdEngine.PROP_PAP_REPO, myFile.getAbsolutePath()); + assertThatExceptionOfType(PAPException.class).isThrownBy(() -> + factory.newEngine(props) + ); + + // + // + // + props.setProperty(StdEngine.PROP_PAP_REPO, myFolder.getAbsolutePath() + "/badparent/dontexist"); + assertNull(factory.newEngine(props)); + + // + // + // + System.setProperty(StdEngine.PROP_PAP_REPO, myFolder.getAbsolutePath() + "/badparent/dontexist"); + + assertNull(factory.newEngine()); + } }