Atualizando os erros
Terminei o curso, porém minhas classes UsuarioDaoTest e LeilaoDaoTest estão com erros
Para ver todo o projeto segue meu github
https://github.com/carolaraujo/testes-sql-dao-java
UsuarioDaoTest
package br.com.alura.leilao.dao;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import org.junit.Assert;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import br.com.alura.leilao.model.Usuario;
import br.com.alura.leilao.util.JPAUtil;
import br.com.alura.leilao.util.builder.UsuarioBuilder;
class UsuarioDaoTest {
private UsuarioDao dao;
private EntityManager em;
@BeforeEach
public void beforeEach() {
this.em = JPAUtil.getEntityManager();
this.dao = new UsuarioDao(em);
em.getTransaction().begin();
}
@AfterEach
public void afterEach() {
em.getTransaction().rollback();
}
@Test
void deveriaEncontrarUsuarioCadastrado() {
Usuario usuario = new UsuarioBuilder()
.comNome("fulano")
.comEmail("fulano@email.com")
.comSenha("123")
.criar();
em.persist(usuario);
Usuario encontrado = this.dao.buscarPorUsername(usuario.getNome());
Assert.assertNotNull(encontrado);
}
@Test
void naoDeveriaEncontrarUsuarioCadastrado() {
new UsuarioBuilder()
.comNome("fulano")
.comEmail("fulano@email.com")
.comSenha("123")
.criar();
em.persist(usuario);
Assert.assertThrows(NoResultException.class, () -> this.dao.buscarPorUsername("beltrano"));
}
@Test
public void deveriaRemoverUmUsuario() {
Usuario usuario = new UsuarioBuilder()
.comNome("fulano")
.comEmail("fulano@email.com")
.comSenha("123")
.criar();
em.persist(usuario);
dao.deletar(usuario);
Assert.assertThrows(NoResultException.class, () -> this.dao.buscarPorUsername(usuario.getNome()));
}
}
LeilaoDaoTest
package br.com.alura.leilao.dao;
import java.math.BigDecimal;
import java.time.LocalDate;
import javax.persistence.EntityManager;
import org.junit.Assert;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import br.com.alura.leilao.model.Leilao;
import br.com.alura.leilao.model.Usuario;
import br.com.alura.leilao.util.JPAUtil;
import br.com.alura.leilao.util.builder.LeilaoBuilder;
import br.com.alura.leilao.util.builder.UsuarioBuilder;
class LeilaoDaoTest {
private LeilaoDao dao;
private EntityManager em;
@BeforeEach
public void beforeEach() {
this.em = JPAUtil.getEntityManager();
this.dao = new LeilaoDao(em);
em.getTransaction().begin();
}
@AfterEach
public void afterEach() {
em.getTransaction().rollback();
}
@Test
public void deveriaCadastrarUmLeilao() {
Usuario usuario = new UsuarioBuilder()
.comNome("fulano")
.comEmail("fulano@email.com")
.comSenha("123")
.criar();
em.persist(usuario);
Leilao leilao = new LeilaoBuilder()
.comNome("Mochila")
.comValorInicial("500")
.comData(LocalDate.now())
.comUsuario(usuario)
.criar();
leilao = dao.salvar(leilao);
Leilao salvo = dao.buscarPorId(leilao.getId());
Assert.assertNotNull(salvo);
}
@Test
public void deveriaAtualizarUmLeilao() {
Usuario usuario = new UsuarioBuilder()
.comNome("fulano")
.comEmail("fulano@email.com")
.comSenha("123")
.criar();
em.persist(usuario);
Leilao leilao = new LeilaoBuilder()
.comNome("Mochila")
.comValorInicial("500")
.comData(LocalDate.now())
.comUsuario(usuario)
.criar();
leilao = dao.salvar(leilao);
leilao.setNome("Celular");
leilao.setValorInicial(new BigDecimal("400"));
leilao = dao.salvar(leilao);
Leilao salvo = dao.buscarPorId(leilao.getId());
Assert.assertEquals("Celular", salvo.getNome());
Assert.assertEquals(new BigDecimal("400"), salvo.getValorInicial());
}
}