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;fp=ONAP-XACML%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Fxacml%2Ftest%2Fstd%2Fpap%2FStdEngineFactoryTest.java;h=b7fb32a3be27ce06fb527c79ed8ba556fd65f0b9;hb=eda0ad937fc69dbf53a615f420c11eb352c9cbe7;hp=43d019d6dd48326af09cf4706bf1e2d635669167;hpb=89ef1958121b877e990ff8755f9087cd306d4b4c;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 43d019d6d..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 @@ -22,32 +22,71 @@ 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; 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 @@ -57,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()); + } }