use of org.jboss.arquillian.container.weld.embedded.mock.TestContainer in project core by weld.
the class SubclassedComponentDescriptorTest method prepareContainer.
@BeforeClass
public void prepareContainer() {
final EjbDescriptor<Foo> fooDescriptor = new EjbDescriptorImpl<Foo>(Foo.class, Foo.class, EnhancedFoo.class, SessionBeanType.STATEFUL);
final EjbDescriptor<Bar> barDescriptor = new EjbDescriptorImpl<Bar>(Bar.class, BarLocal.class, EnhancedBar.class, SessionBeanType.STATEFUL);
final EjbDescriptor<Baz> bazDescriptor = new EjbDescriptorImpl<Baz>(Baz.class, Baz.class, EnhancedBaz.class, null);
final BeanDeploymentArchive bda = new BeanDeploymentArchiveImpl("1", Foo.class, Bar.class, BarLocal.class, BarDecorator.class, BarInterceptor.class, BarInterceptorBinding.class, Baz.class) {
@Override
public Collection<EjbDescriptor<?>> getEjbs() {
return ImmutableSet.<EjbDescriptor<?>>of(fooDescriptor, barDescriptor, bazDescriptor);
}
};
final Deployment deployment = new FlatDeployment(bda) {
@Override
public BeanDeploymentArchive loadBeanDeploymentArchive(Class<?> beanClass) {
return bda;
}
@Override
protected void configureServices(Environment environment) {
super.configureServices(environment);
getServices().add(EjbServices.class, new MockEjbServices());
}
};
container = new TestContainer(deployment).startContainer();
manager = (BeanManagerImpl) container.getBeanManager(bda);
}
use of org.jboss.arquillian.container.weld.embedded.mock.TestContainer in project core by weld.
the class NaiveClusterTest method testMultipleDependentObjectsSessionReplication.
@Test
public void testMultipleDependentObjectsSessionReplication() throws Exception {
Collection<Class<?>> classes = Arrays.<Class<?>>asList(Stable.class, Horse.class, Fodder.class);
TestContainer container1 = bootstrapContainer(1, classes);
BeanManagerImpl beanManager1 = getBeanManager(container1);
Bean<?> stableBean1 = beanManager1.resolve(beanManager1.getBeans(Stable.class));
TestContainer container2 = bootstrapContainer(2, classes);
BeanManagerImpl beanManager2 = getBeanManager(container2);
Bean<?> stableBean2 = beanManager2.resolve(beanManager2.getBeans(Stable.class));
use(1);
// Set a value into Foo1
Stable stable1 = (Stable) beanManager1.getReference(stableBean1, Stable.class, beanManager1.createCreationalContext(stableBean1));
stable1.getFodder().setAmount(10);
stable1.getHorse().setName("George");
replicateSession(1, container1, 2, container2);
use(2);
Stable stable2 = (Stable) beanManager2.getReference(stableBean2, Stable.class, beanManager2.createCreationalContext(stableBean2));
assert stable2.getFodder().getAmount() == stable1.getFodder().getAmount();
assert stable2.getHorse().getName() == null;
use(1);
assert stable1.getFodder().getAmount() == 10;
assert stable1.getHorse().getName().equals("George");
use(2);
stable2.getFodder().setAmount(11);
replicateSession(2, container2, 1, container1);
use(1);
stable1.getFodder().getAmount();
assert stable1.getFodder().getAmount() == 11;
use(1);
container1.stopContainer();
use(2);
container2.stopContainer();
}
use of org.jboss.arquillian.container.weld.embedded.mock.TestContainer in project core by weld.
the class NaiveClusterTest method testVariableBeanDeploymentStructure.
@Test(expectedExceptions = IllegalStateException.class)
public void testVariableBeanDeploymentStructure() throws Exception {
Collection<Class<?>> classes1 = Arrays.<Class<?>>asList(Stable.class, Horse.class, Fodder.class);
Collection<Class<?>> classes2 = Arrays.<Class<?>>asList(Stable.class, Horse.class, Fodder.class, Foo.class);
TestContainer container1 = bootstrapContainer(1, classes1);
BeanManagerImpl beanManager1 = getBeanManager(container1);
Bean<?> stableBean1 = beanManager1.resolve(beanManager1.getBeans(Stable.class));
TestContainer container2 = bootstrapContainer(2, classes2);
use(1);
// Set a value into Foo1
Stable stable1 = (Stable) beanManager1.getReference(stableBean1, Stable.class, beanManager1.createCreationalContext(stableBean1));
stable1.getFodder().setAmount(10);
stable1.getHorse().setName("George");
try {
replicateSession(1, container1, 2, container2);
} finally {
use(1);
container1.stopContainer();
use(2);
container2.stopContainer();
}
}
use of org.jboss.arquillian.container.weld.embedded.mock.TestContainer in project core by weld.
the class SwitchableContainerTest method test.
@Test
public void test() {
// Bootstrap container 1
SwitchableSingletonProvider.use(1);
TestContainer container1 = new TestContainer(Foo.class);
container1.startContainer();
container1.ensureRequestActive();
BeanManagerImpl beanManager1 = getBeanManager(container1);
Bean<?> fooBean1 = beanManager1.resolve(beanManager1.getBeans(Foo.class));
Foo foo1 = (Foo) beanManager1.getReference(fooBean1, Foo.class, beanManager1.createCreationalContext(fooBean1));
foo1.setName("container 1");
// Bootstrap container 2
SwitchableSingletonProvider.use(2);
TestContainer container2 = new TestContainer(Foo.class);
container2.startContainer();
container2.ensureRequestActive();
BeanManagerImpl beanManager2 = getBeanManager(container2);
Bean<?> fooBean2 = beanManager2.resolve(beanManager2.getBeans(Foo.class));
Foo foo2 = (Foo) beanManager2.getReference(fooBean2, Foo.class, beanManager2.createCreationalContext(fooBean2));
foo2.setName("container 2");
// Switch to container 1 and check value
SwitchableSingletonProvider.use(1);
foo1 = (Foo) beanManager1.getReference(fooBean1, Foo.class, beanManager1.createCreationalContext(fooBean1));
assert foo1.getName().equals("container 1");
// Switch to container 2 and check value
SwitchableSingletonProvider.use(2);
foo2 = (Foo) beanManager2.getReference(fooBean2, Foo.class, beanManager2.createCreationalContext(fooBean2));
assert foo2.getName().equals("container 2");
SwitchableSingletonProvider.use(1);
container1.stopContainer();
SwitchableSingletonProvider.use(2);
container2.stopContainer();
SingletonProvider.reset();
}
use of org.jboss.arquillian.container.weld.embedded.mock.TestContainer in project core by weld.
the class ThreadLocalTestCase method ensureNoThreadLocalLeakOnInjectionPoints.
@Test
public void ensureNoThreadLocalLeakOnInjectionPoints() throws Exception {
TestContainer container = new TestContainer(Bar.class, Baz.class);
container.startContainer();
BeanManager manager = getBeanManager(container);
Bean<?> testBean = manager.resolve(manager.getBeans(Baz.class));
Baz baz = cast(manager.getReference(testBean, Baz.class, manager.createCreationalContext(testBean)));
baz.getBar().ping();
container.stopContainer();
verifyThreadLocals();
}
Aggregations