Criei o LanceDaoTest e o LanceBuilder, mas está dando nullPointerException
public class LanceDaoTest {
private LanceDao dao;
private EntityManager em;
@BeforeEach
public void beforeEach() {
em = JPAUtil.getEntityManager();
this.dao = new LanceDao(em);
this.em.getTransaction().begin();
}
@AfterEach
public void afterEach() {
em.getTransaction().rollback();
}
@Test
public void deveriaBuscarMaiorLanceDoLeilao() {
Usuario usuario = new UsuarioBuilder()
.comNome("Fulano")
.comEmail("fulano@email.com")
.comSenha("12345678")
.criar();
em.persist(usuario);
Leilao leilao = new LeilaoBuilder()
.comNome("Mochila")
.comValorInicial("500")
.comData(LocalDate.now())
.comUsuario(usuario)
.criar();
em.persist(leilao);
Lance lance = new LanceBuilder()
.comUsuario(usuario)
.comValor("600")
.comLeilao(leilao)
.criar();
em.persist(lance);
Lance acheiMaiorLance = this.dao.buscarMaiorLanceDoLeilao(leilao);
assertNotNull(acheiMaiorLance);
}
}
public class LanceBuilder {
private BigDecimal valor;
private Usuario usuario;
private LocalDate data;
private Leilao leilao;
public LanceBuilder comValor(String valor){
this.valor = new BigDecimal(valor);
return this;
}
public LanceBuilder comUsuario(Usuario usuario){
this.usuario = usuario;
return this;
}
public LanceBuilder comData(LocalDate data){
this.data = data;
return this;
}
public LanceBuilder comLeilao(Leilao leilao){
this.leilao = leilao;
return this;
}
public Lance criar() {
return new Lance(usuario, valor, data);
}