640608377a282edbca17c34ed9f940058f2245ae
[utils] / support / cdi / src / test / java / org / wamblee / cdi / WeldTest.java
1 package org.wamblee.cdi;
2
3 import static junit.framework.Assert.*;
4
5 import javax.enterprise.context.spi.CreationalContext;
6 import javax.enterprise.inject.spi.AnnotatedType;
7 import javax.enterprise.inject.spi.InjectionTarget;
8
9 import org.junit.After;
10 import org.junit.Before;
11 import org.junit.Test;
12
13 public class WeldTest {
14     
15     private BeanManagerSetup setup; 
16     
17     @Before
18     public void setUp() {
19         setup = new BeanManagerSetup(); 
20         setup.initialize(); 
21         MySingleton.reset();
22     }
23     
24     @After
25     public void tearDown() { 
26         setup.shutdown();
27     }
28     
29     @Test
30     public void testGetSingleton() { 
31         AnnotatedType<MyPojo> type = setup.getBeanManager().createAnnotatedType(MyPojo.class);
32         InjectionTarget<MyPojo> target = setup.getBeanManager().createInjectionTarget(type);
33         CreationalContext<MyPojo> ctx = setup.getBeanManager().createCreationalContext(null);
34         
35         MyPojo pojo = new MyPojo(); 
36         
37         target.inject(pojo, ctx); 
38         
39         MySingleton obj = pojo.getSingleton(); 
40         
41         assertNotNull(obj);
42         
43         MyPojo pojo2 = new MyPojo(); 
44         target.inject(pojo2, ctx); 
45                 
46         // Objects will not be the same as they are contextual references to the same object.
47         // assertSame(pojo2, pojo);
48
49         assertEquals(1, MySingleton.getInstances());
50     }
51     
52     @Test
53     public void testAgain() { 
54         testGetSingleton();
55     }
56 }