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); } } }