package org.jboss.weld.tests.metadata.scanning;
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.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.Asset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.jboss.weld.tests.metadata.Qux;
import org.jboss.weld.tests.metadata.scanning.acme.Grault;
import org.jboss.weld.tests.metadata.scanning.acme.Wibble;
import org.jboss.weld.tests.metadata.scanning.acme.corp.Wobble;
import org.jboss.weld.tests.metadata.scanning.acme.corp.Wubble;
import org.jboss.weld.tests.metadata.scanning.jboss.Baz;
import org.jboss.weld.tests.metadata.scanning.jboss.Garply;
import org.jboss.weld.tests.metadata.scanning.jboss.corp.Flob;
import org.jboss.weld.tests.metadata.scanning.jboss.corp.Fred;
import org.jboss.weld.tests.metadata.scanning.redhat.Plugh;
import org.jboss.weld.tests.metadata.scanning.redhat.Waldo;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.enterprise.inject.spi.BeanManager;
import static org.jboss.weld.tests.metadata.scanning.Utils.createBeansXml;
@RunWith(Arquillian.class)
public class MultipleDeepPackageNameIncludeExcludeTest {
public static final Asset BEANS_XML = createBeansXml(
"<weld:scan>" +
"<weld:exclude name=\"" + Baz.class.getPackage().getName() + ".**\"/>" +
"<weld:include name=\"" + Foo.class.getPackage().getName() + ".**\"/>" +
"<weld:include name=\"" + Grault.class.getPackage().getName() + ".**\"/>" +
"</weld:scan>");
@Deployment
public static Archive<?> deployment() {
return ShrinkWrap.create(JavaArchive.class).addClass(Utils.class)
.addClasses(Bar.class, Foo.class, Baz.class, Qux.class, Corge.class, Garply.class, Grault.class)
.addClasses(Wibble.class, Wobble.class, Wubble.class, Flob.class, Fred.class, Plugh.class, Waldo.class)
.addAsManifestResource(BEANS_XML, "beans.xml");
}
@Test
public void test(BeanManager beanManager) {
assert beanManager.getBeans(Foo.class).size() == 1;
assert beanManager.getBeans(Bar.class).size() == 1;
assert beanManager.getBeans(Corge.class).size() == 1;
assert beanManager.getBeans(Waldo.class).size() == 1;
assert beanManager.getBeans(Plugh.class).size() == 1;
assert beanManager.getBeans(Grault.class).size() == 1;
assert beanManager.getBeans(Wibble.class).size() == 1;
assert beanManager.getBeans(Wobble.class).size() == 1;
assert beanManager.getBeans(Wubble.class).size() == 1;
assert beanManager.getBeans(Baz.class).size() == 0;
assert beanManager.getBeans(Garply.class).size() == 0;
assert beanManager.getBeans(Flob.class).size() == 0;
assert beanManager.getBeans(Fred.class).size() == 0;
}
}