package org.jboss.weld.environment.se.test.beandiscovery; import static org.junit.Assert.assertEquals; import javax.enterprise.inject.spi.BeanManager; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.BeanArchive; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.EmptyAsset; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.jboss.weld.environment.se.Weld; import org.jboss.weld.environment.se.test.arquillian.WeldSEClassPath; import org.junit.AfterClass; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(Arquillian.class) public class BeanDiscoveryWithoutIsolationTest { @Deployment public static Archive<?> getDeployment() { oldArchiveIsolationProperty = System.getProperty(Weld.ARCHIVE_ISOLATION_SYSTEM_PROPERTY); System.setProperty(Weld.ARCHIVE_ISOLATION_SYSTEM_PROPERTY, "false"); WeldSEClassPath archives = ShrinkWrap.create(WeldSEClassPath.class); JavaArchive archive = ShrinkWrap.create(BeanArchive.class).addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml") .addClasses(Dog.class, Cat.class, Cow.class); archives.add(archive); return archives; } private static String oldArchiveIsolationProperty; @AfterClass public static void destroy() { if (oldArchiveIsolationProperty == null) { System.clearProperty(Weld.ARCHIVE_ISOLATION_SYSTEM_PROPERTY); } else { System.setProperty(Weld.ARCHIVE_ISOLATION_SYSTEM_PROPERTY, oldArchiveIsolationProperty); oldArchiveIsolationProperty = null; } } /** * Test bean discovery in SE with an empty beans XML. */ @Test public void testBeanDiscovery(BeanManager manager) { assertEquals(1, manager.getBeans(Dog.class).size()); assertEquals(1, manager.getBeans(Cat.class).size()); assertEquals(1, manager.getBeans(Cow.class).size()); } }