Witam, od niedawna zacząłem pisać programy z użyciem Hibernate/JPA i jak na razie wszystko szło spoko lecz chciałem zacząć pisać testy do metod, które używają połączenia z bazą danych i tu pojawił mi się problem bo nie wiem z której strony się za to zabrać. Mam klasę public class DatabaseFunction implements DatabaseFunctionInterface {
private EntityManager entityManager;
public DatabaseFunction(EntityManager entityManager) {
this.entityManager = entityManager;
}
public Maker returnMaker(String makerName) {
Maker maker;
try{
maker = entityManager.createQuery("select e from Maker e where e.makerName = :makerName", Maker.class)
.setParameter("makerName", makerName).getSingleResult();
}catch(NoResultException e){
return null;
}
return maker;
}
}
Metoda zwraca mi po prostu obiekt klasy Maker z bazy danych. Teraz chciałbym przetestować tą metodę ale nie mam pojęcia jak się zabrać to tego. Czy mógłby mi ktoś pomóc z tym? Próbowałem pisać coś takiego ale nie działa gdyż to nadpisuje mi moją baze danych <code> public class DatabaseFunctionTest {
static EntityManager entityManager;
static EntityManagerFactory entityManagerFactory;
DatabaseFunction function;
@BeforeClass
static public void setUp(){
DatabaseFunction function = new DatabaseFunction(entityManager);
entityManagerFactory = Persistence.createEntityManagerFactory("myDatabase");
entityManager = entityManagerFactory.createEntityManager();
}
//ReturnMakerAllTest
//================================================================================
@Test
public void returnMakerTest() {
Maker maker = new Maker();
maker.setMakerName("Hortex");
entityManager.getTransaction().begin();
entityManager.persist(maker);
entityManager.getTransaction().commit();
String makerName = ("Hortex");
Maker maker2 = function.returnMaker(makerName);
System.out.println(maker2.getMakerName());
Assert.assertNotNull(maker2);
}
@AfterClass
static public void closeConnection(){
entityManager.close();
entityManagerFactory.close();
}
Z góry dzięki za pomoc:)