Então, o método abaixo retorna uma exceção
@Transactional
public EnderecoEntity salvar(EnderecoEntity endereco) {
Optional<RuaEntity> optional = ruaService.findByRuaPorId(endereco.getRua().getId());
if(optional.isEmpty()){
throw new CadastroException("Rua com ID " +endereco.getRua().getId()+ " não Existe");
}
RuaEntity rua = optional.get();
endereco.setRua(rua);
return enderecoRepository.save(endereco);
}
Não sei como fazer o teste no caso, fiz algo como no metodo abaixo
@Test
public void naoDeveSalvarUmEnderecoQuandoIdDaRuaNaoExiste(){
when(ruaService.findByRuaPorId(getRua().getId())).thenReturn(Optional.empty());
when(enderecoService.salvar(getEndereco())).thenThrow(new CadastroException("Rua com ID " + getRua().getId()+ " não Existe"));
EnderecoEntity endereco = enderecoService.salvar(getEndereco());
//boolean existeNome = enderecoService.salvar(getEndereco()).equals(Optional.empty());
//System.out.println(existeNome);
//assertNull(endereco);
//assertEquals("Pascoal Mazilli", endereco.getRua().getLogradouro());
verify(ruaService,times(1)).findByRuaPorId(getRua().getId());
verify(enderecoRepository,times(0)).save(getEndereco());
}
Não sei se está meio certo ou meio errado, dessa forma apenas lança a exceção abaixo:
Alguém poderia dar um norte, no que está certo ou errado ???