my question is how do I test this 'delete' method? I can't put an ID for Message object since it is a generated value. So I can't use the findbyID(Integer id) method too.. Any help would be appreciated Thanks!
My Test
@Test
public void testDelete(){
System.out.println("delete");
Message message = new Message();
// message.setID(1) -> This is not allowed
message.setSubject("Subject");
message.setContent("Content");
messageDAO.register(message);
int count = messageDAO.getCount();
assertEquals("Check if the message has been persisted into db", 1, count);
messageDAO.delete(1); //returns null
count = messageDAO.getCount();
assertEquals("Check if the message has been deleted from db", 0, count);
}
DAO:
@Transactional
public void register(Message message) {
em.persist(message);
}
@Transactional
public void delete(Integer id) {
Message m = getMessageById(id);
em.remove(em.merge(m));
}
@Transactional
public Message getMessageById(Integer id){
return em.find(Message.class, id);
}
@Transactional
public int getCount() {
Query query = em.createNativeQuery("select count(*) from messages");
int count = ((BigInteger) query.getSingleResult()).intValue();
return count;
}
Aucun commentaire:
Enregistrer un commentaire