(no commit message)
[utils] / support / cdi / src / test / java / org / wamblee / cdi / SimpleInjectorTest.java
index 829f5ceb531cd192d6be8e7ecec2920660b16a87..f9e77a5deb116489c513ef017afb162b09267db7 100644 (file)
@@ -18,6 +18,8 @@ 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;
@@ -25,33 +27,36 @@ import org.junit.Before;
 import org.junit.Test;
 import org.wamblee.inject.Injector;
 import org.wamblee.inject.InjectorFactory;
+import org.wamblee.inject.InjectorFactoryBuilder;
 import org.wamblee.inject.SimpleInjector;
-import org.wamblee.support.jndi.StubInitialContextFactory;
+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();
+        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(new CdiInjectorFactory());
+        SimpleInjector injector = new SimpleInjector(new CdiInjectorFactory(BeanManagerLookup.lookup()));
         injector.inject(pojo);
 
         MySingleton obj = pojo.getSingleton();
@@ -85,4 +90,29 @@ public class SimpleInjectorTest {
         // 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(); 
+        InjectorFactoryBuilder.setInjectorFactory(null);
+        InjectorFactoryBuilder.getInjector().inject(x);
+    }
+    
+    @Test 
+    public void testInjectStorage2() { 
+        X x = new X(); 
+        InjectorFactoryBuilder.setInjectorFactory(null);
+        InjectorFactoryBuilder.getInjector().inject(x);
+    }
+    
 }