package org.apache.struts2.cdi; import org.jboss.weld.environment.se.StartMain; import static org.junit.Assert.*; import org.jboss.weld.environment.se.WeldContainer; import org.junit.Before; import org.junit.Test; import org.springframework.mock.jndi.SimpleNamingContextBuilder; import javax.enterprise.inject.spi.InjectionTarget; /** * CdiObjectFactoryTest. */ public class CdiObjectFactoryTest { @Before public void setUp() throws Exception { SimpleNamingContextBuilder builder = new SimpleNamingContextBuilder(); builder.activate(); StartMain sm = new StartMain(new String[0]); WeldContainer weldContainer = sm.go(); builder.bind(CdiObjectFactory.CDI_JNDIKEY_BEANMANAGER_COMP, weldContainer.getBeanManager()); } @Test public void testFindBeanManager() throws Exception { assertNotNull(new CdiObjectFactory().findBeanManager()); } @Test public void testGetBean() throws Exception { final CdiObjectFactory cdiObjectFactory = new CdiObjectFactory(); FooConsumer fooConsumer = (FooConsumer) cdiObjectFactory.buildBean(FooConsumer.class.getCanonicalName(), null, false); assertNotNull(fooConsumer); assertNotNull(fooConsumer.fooService); } @Test public void testGetInjectionTarget() throws Exception { final CdiObjectFactory cdiObjectFactory = new CdiObjectFactory(); final InjectionTarget<?> injectionTarget = cdiObjectFactory.getInjectionTarget(FooConsumer.class); assertNotNull(injectionTarget); assertTrue(cdiObjectFactory.injectionTargetCache.containsKey(FooConsumer.class)); assertSame(cdiObjectFactory.getInjectionTarget(FooConsumer.class), injectionTarget); } }