package org.needle4j.testng;
import javax.ejb.SessionContext;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import org.needle4j.MyComponentBean;
import org.needle4j.MyEjbComponent;
import org.needle4j.MyEjbComponentBean;
import org.needle4j.annotation.InjectIntoMany;
import org.needle4j.annotation.ObjectUnderTest;
import org.testng.Assert;
import org.testng.annotations.Test;
public class NeedleTestNGTest extends AbstractNeedleTestcase {
public NeedleTestNGTest() {
super(new DatabaseTestcase("TestDataModel"));
}
@ObjectUnderTest
private MyComponentBean componentBean;
@InjectIntoMany
@ObjectUnderTest(implementation = MyEjbComponentBean.class)
private MyEjbComponent ejbComponent;
private MyComponentBean componentBean1 = new MyComponentBean();
@ObjectUnderTest
private MyComponentBean componentBean2 = componentBean1;
@Inject
private EntityManager entityManager;
@Inject
private EntityTransaction entityTransaction;
@Test
public void testBasicInjection() throws Exception {
Assert.assertNotNull(componentBean);
Assert.assertNotNull(componentBean.getEntityManager());
Assert.assertNotNull(componentBean.getMyEjbComponent());
MyEjbComponent mock = (MyEjbComponent) getInjectedObject(MyEjbComponent.class);
Assert.assertNotNull(mock);
}
@Test
public void testResourceMock() throws Exception {
SessionContext sessionContextMock = (SessionContext) getInjectedObject(SessionContext.class);
Assert.assertNotNull(sessionContextMock);
Assert.assertNotNull(getInjectedObject("queue1"));
Assert.assertNotNull(getInjectedObject("queue2"));
}
@Test
public void testInjectInto() throws Exception {
Assert.assertNotNull(ejbComponent);
Assert.assertEquals(ejbComponent, componentBean.getMyEjbComponent());
}
@Test
public void testInitInstance() throws Exception {
Assert.assertEquals(componentBean1, componentBean2);
}
@Test
public void testGetEntityManager() throws Exception {
EntityManager entityManager = getEntityManager();
Assert.assertNotNull(entityManager);
}
@Test
public void testEntityManagerInjection() throws Exception {
Assert.assertNotNull(entityManager);
EntityManager entityManager = getEntityManager();
Assert.assertSame(this.entityManager, entityManager);
}
@Test
public void testEntityTransactionInjection() throws Exception {
Assert.assertNotNull(entityTransaction);
}
}