Я выполняю тесты на ejb3-проекте, используя тест сессионного компонента ejb3unit . Следующий тест не пройден с последней проверкой assertNotSame()
.
public void testSave() {
Entity myEntity = new Entity();
myEntity.setName("name1");
myEntity = getBeanToTest().save(myEntity);
assertNotSame("id should be set", 0l, myEntity.getId());
// now the problem itself ...
int count = getBeanToTest().findAll().size();
assertNotSame("should find at least 1 entity", 0, count);
}
Итак, что происходит. Метод save (entity) доставляет мой «сохраненный» объект с установленным идентификатором. Но когда я попытаюсь найти объект, используя findAll()
, он не даст ни одного результата. Как я могу заставить мой метод ServiceBean.save
работать, чтобы найти постоянную сущность?
Редактировать
Мой ServiceBean выглядит так
@Stateless
@Local(IMyServiceBean.class)
public class MyServiceBean implements IMyServiceBean {
@PersistenceContext(unitName = "appDataBase")
private EntityManager em;
public Entity save(Entity entity) {
em.merge(entity);
}
public List<Entity> findAll() {
... uses Query to find all Entities ..
}
}
и для ejb3unit ejb3unit.properties:
ejb3unit_jndi.1.isSessionBean=false
ejb3unit_jndi.1.jndiName=project/MyServiceBean/local
ejb3unit_jndi.1.className=de.prj.MyServiceBean