(no commit message)
[utils] / support / cdi / src / test / java / org / wamblee / cdi / SimpleInjectorTest.java
index 44c2eda222aa1ef8aec671f52c59dbbdbacdfcc8..7c4bd11297225477778b773942c1d80007c10325 100644 (file)
@@ -18,36 +18,46 @@ package org.wamblee.cdi;
 import static junit.framework.Assert.*;
 import static org.mockito.Mockito.*;
 
+import javax.enterprise.context.RequestScoped;
+import javax.inject.Inject;
 import javax.naming.InitialContext;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.wamblee.support.jndi.StubInitialContextFactory;
+import org.wamblee.inject.Injector;
+import org.wamblee.inject.InjectorFactory;
+import org.wamblee.inject.InjectorBuilder;
+import org.wamblee.inject.SimpleInjector;
+import org.wamblee.test.jndi.StubInitialContextFactory;
 
-public class SimpleInjectorTest {
+public class SimpleInjectorTest extends BaseTestFixture {
 
     private BeanManagerSetup setup;
 
     @Before
     public void setUp() throws Exception {
+        super.setUp();
         setup = new BeanManagerSetup();
         setup.initialize();
         StubInitialContextFactory.register();
         InitialContext ctx = new InitialContext();
         ctx.bind(BeanManagerLookup.BEAN_MANAGER_JNDI, setup.getBeanManager());
+        MySingleton.reset();
     }
 
     @After
-    public void tearDown() {
+    public void tearDown() throws Exception {
         StubInitialContextFactory.unregister();
         setup.shutdown();
+        super.tearDown();
     }
 
     @Test
     public void testGetSingleton() {
         MyPojo pojo = new MyPojo();
-        SimpleInjector injector = new SimpleInjector();
+        SimpleInjector injector = new SimpleInjector(new CdiInjectorFactory(
+            BeanManagerLookup.lookup()));
         injector.inject(pojo);
 
         MySingleton obj = pojo.getSingleton();
@@ -73,12 +83,38 @@ public class SimpleInjectorTest {
             @Override
             public void inject(Object aComponent) {
                 MyPojo pojo2 = (MyPojo) aComponent;
-                pojo2.setSingleton(singleton); 
+                pojo2.setSingleton(singleton);
             }
         });
-        
+
         injector.inject(pojo);
-        // verify the custom injector was called. 
+        // verify the custom injector was called.
         assertSame(singleton, pojo.getSingleton());
     }
+
+    @RequestScoped
+    public static class Y {
+
+    }
+
+    public static class X {
+        @Inject
+        private Y y;
+
+    }
+
+    @Test
+    public void testInjectStorage() throws Exception {
+        X x = new X();
+        InjectorBuilder.setInjectorFactory(null);
+        InjectorBuilder.getInjector().inject(x);
+    }
+
+    @Test
+    public void testInjectStorage2() {
+        X x = new X();
+        InjectorBuilder.setInjectorFactory(null);
+        InjectorBuilder.getInjector().inject(x);
+    }
+
 }