package org.wamblee.cdi; import static junit.framework.Assert.*; import javax.enterprise.context.spi.CreationalContext; import javax.enterprise.inject.spi.AnnotatedType; import javax.enterprise.inject.spi.InjectionTarget; import org.junit.After; import org.junit.Before; import org.junit.Test; public class WeldTest { private BeanManagerSetup setup; @Before public void setUp() { setup = new BeanManagerSetup(); setup.initialize(); MySingleton.reset(); } @After public void tearDown() { setup.shutdown(); } @Test public void testGetSingleton() { AnnotatedType type = setup.getBeanManager() .createAnnotatedType(MyPojo.class); InjectionTarget target = setup.getBeanManager() .createInjectionTarget(type); CreationalContext ctx = setup.getBeanManager() .createCreationalContext(null); MyPojo pojo = new MyPojo(); target.inject(pojo, ctx); MySingleton obj = pojo.getSingleton(); assertNotNull(obj); MyPojo pojo2 = new MyPojo(); target.inject(pojo2, ctx); // Objects will not be the same as they are contextual references to the // same object. // assertSame(pojo2, pojo); assertEquals(1, MySingleton.getInstances()); } @Test public void testAgain() { testGetSingleton(); } }