Estou enfrentando esse erro, porém é o mesmo código que o Professor Rodrigo corrigiu no teste. Estou quebrando a cabeça mas não conseguir saber da onde é o erro até porque é mesmo código do curso.
org.opentest4j.AssertionFailedError: Unexpected exception type thrown,
Expected :class br.com.alura.adopet.api.exception.ValidacaoException
Actual :class java.lang.NullPointerException
<Click to see difference>
Segue o Codigo abaixo:
package br.com.alura.adopet.api.validacoes;
import br.com.alura.adopet.api.dto.SolicitacaoAdocaoDto;
import br.com.alura.adopet.api.exception.ValidacaoException;
import br.com.alura.adopet.api.model.StatusAdocao;
import br.com.alura.adopet.api.repository.AdocaoRepository;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.BDDMockito.given;
;
@ExtendWith(MockitoExtension.class)
class ValidacaoTutorComLimiteDeAdocoesTest {
@InjectMocks
private ValidacaoTutorComLimiteDeAdocoes validador;
@Mock
private AdocaoRepository adocaoRepository;
@Mock
private SolicitacaoAdocaoDto dto;
@Test
void naoDeveriaPermitirSolicitacaoDeAdocaoTutorAtingiuLimiteDe5Adocoes(){
//ARRANGE
given(adocaoRepository.countByTutorIdAndStatus(dto.idTutor(), StatusAdocao.APROVADO)).willReturn(5);
//ACT + ASSERT
assertThrows(ValidacaoException.class,() -> validador.validar(dto));
}
@Test
void deveriaPermitirSolicitacaoDeAdocaoTutorNaoAtingiuLimiteDe5Adocoes(){
//ARRANGE
given(adocaoRepository.countByTutorIdAndStatus(dto.idTutor(), StatusAdocao.APROVADO)).willReturn(4);
//ACT + ASSERT
assertDoesNotThrow(() -> validador.validar(dto));
}
}