Mostra esse erro: java.lang.NullPointerException: Cannot read the array length because "elementData" is null at java.base/java.util.ArrayList.add(ArrayList.java:483) at java.base/java.util.ArrayList.add(ArrayList.java:497) at br.com.alura.adopet.api.service.AdocaoServiceTest.deveriaChamarvalidadoresDeAdocaoAoSolicitar(AdocaoServiceTest.java:81)
@ExtendWith(MockitoExtension.class)
class AdocaoServiceTest {
@InjectMocks
private AdocaoService adocaoService;
@Mock
private AdocaoRepository adocaoRepository;
@Mock
private PetRepository petRepository;
@Mock
private TutorRepository tutorRepository;
@Mock
private EmailService emailService;
@Spy
private List<ValidacaoSolicitacaoAdocao> validacoes = new ArrayList<>();
@Mock
private ValidacaoPetComAdocaoEmAndamento validacaoPetComAdocaoEmAndamento;
@Mock
private ValidacaoTutorComLimiteDeAdocoes validacaoTutorComLimiteDeAdocoes;
@Mock
private Pet pet;
@Mock
private Tutor tutor;
@Mock
private Abrigo abrigo;
private SolicitacaoAdocaoDto dto;
@Captor
private ArgumentCaptor<Adocao> adocaoArgumentCaptor;
@Test
void deveriaSalvarAdocaoAoSolicitar() {
this.dto = new SolicitacaoAdocaoDto(10L, 20L, "Motivo");
given(petRepository.getReferenceById(dto.idPet())).willReturn(pet);
given(tutorRepository.getReferenceById(dto.idTutor())).willReturn(tutor);
given(pet.getAbrigo()).willReturn(abrigo);
adocaoService.solicitar(dto);
then(adocaoRepository)
.should()
.save(adocaoArgumentCaptor.capture());
Adocao adocaoSalva = adocaoArgumentCaptor.getValue();
assertEquals(pet, adocaoSalva.getPet());
assertEquals(tutor, adocaoSalva.getTutor());
assertEquals(dto.motivo(), adocaoSalva.getMotivo());
}
@Test
void deveriaChamarvalidadoresDeAdocaoAoSolicitar() {
this.dto = new SolicitacaoAdocaoDto(10L, 20L, "Motivo");
given(petRepository.getReferenceById(dto.idPet())).willReturn(pet);
given(tutorRepository.getReferenceById(dto.idTutor())).willReturn(tutor);
given(pet.getAbrigo()).willReturn(abrigo);
validacoes.add(validacaoPetComAdocaoEmAndamento);
validacoes.add(validacaoTutorComLimiteDeAdocoes);
adocaoService.solicitar(dto);
then(validacaoPetComAdocaoEmAndamento)
.should()
.validar(dto);
then(validacaoTutorComLimiteDeAdocoes)
.should()
.validar(dto);
}
}