cdi project in initial revision
[utils] / support / cdi / src / test / java / org / wamblee / cdi / WeldTest.java
diff --git a/support/cdi/src/test/java/org/wamblee/cdi/WeldTest.java b/support/cdi/src/test/java/org/wamblee/cdi/WeldTest.java
new file mode 100644 (file)
index 0000000..c860882
--- /dev/null
@@ -0,0 +1,55 @@
+package org.wamblee.cdi;
+
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.AnnotatedType;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.InjectionTarget;
+
+import org.jboss.weld.environment.se.Weld;
+import org.jboss.weld.environment.se.WeldContainer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static junit.framework.TestCase.*;
+
+public class WeldTest {
+    
+    private Weld weld;
+    private WeldContainer container; 
+    private BeanManager beanManager; 
+
+    @Before
+    public void setUp() {
+        weld = new Weld();
+        container = weld.initialize(); 
+        beanManager = container.getBeanManager();
+    }
+    
+    @After
+    public void tearDown() { 
+        weld.shutdown(); 
+    }
+    
+    @Test
+    public void testGetSingleton() { 
+        AnnotatedType<MyPojo> type = beanManager.createAnnotatedType(MyPojo.class);
+        InjectionTarget<MyPojo> target = beanManager.createInjectionTarget(type);
+        CreationalContext<MyPojo> ctx = beanManager.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());
+    }
+}