Example Seam/EJB component to test:
@Stateless
@Name("personListService")
public class PersonListServiceBean implements PersonListService {
@In
private EntityManager entityManager;
@Logger
private Log log;
@In
private PersonService personService;
@SuppressWarnings("unchecked")
public List<Person> selectAllPerson() {
log.info("select all person");
final Query query = entityManager.createQuery("from Person person");
final List<Person> resultList = query.getResultList();
for (Person person : resultList) {
// do something here
personService.saveOrUpdate(person);
}
return resultList;
}
}JUnit Test:
public class PersonListBeanTest extends AbstractTestcase<PersonListServiceBean> {
public PersonListBeanTest() {
super(PersonListServiceBean.class);
}
@Test
public void testSelectAllPerson() throws Exception {
createPersons();
EasyMock.expect(this.getMock(PersonService.class).saveOrUpdate((Person) EasyMock.anyObject())).andReturn(
"success");
replayAll();
List<Person> all = this.getObjectUnderTest().selectAllPerson();
verifyAll();
Assert.assertEquals(5, all.size());
}
private void createPersons() throws Exception {
for (int i = 0; i < 5; i++) {
Person person = new Person();
person.setFirstname("firstname" + i);
person.setLastname("lastname" + i);
getDatabaseUtil().saveObject(person);
}
}
}