package org.jboss.weld.environment.se.test.isolation; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.test.api.ArquillianResource; import org.jboss.weld.environment.se.Weld; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; /* * Base test structure for test classes that make assumptions about the value of {@link Weld.ARCHIVE_ISOLATION_SYSTEM_PROPERTY}. * The implementing test class must contain a static method annotated @Deployment(managed = false). */ public abstract class ArchiveIsolationOverrideTestBase { private static final String isolationOriginalValue = System.getProperty(Weld.ARCHIVE_ISOLATION_SYSTEM_PROPERTY); @ArquillianResource private Deployer deployer; public abstract boolean isArchiveIsolationEnabled(); @Before public void before() { System.setProperty(Weld.ARCHIVE_ISOLATION_SYSTEM_PROPERTY, Boolean.toString(isArchiveIsolationEnabled())); deployer.deploy("_DEFAULT_"); } @After public void after() { deployer.undeploy("_DEFAULT_"); } @AfterClass public static void setIsolationBackToOriginal() { if (isolationOriginalValue == null) { System.clearProperty(Weld.ARCHIVE_ISOLATION_SYSTEM_PROPERTY); } else { System.setProperty(Weld.ARCHIVE_ISOLATION_SYSTEM_PROPERTY, isolationOriginalValue); } } }