@Test
@DisplayName("Teste findByAccountId que deve retornar 404 se não houver transações")
void findByAccountIdNoTransactions() throws Exception {
Long accountId = 12345L;
// Mock do serviço para retornar uma lista de transações vazia
when(service.findByAccountId(anyLong())).thenReturn(Collections.emptyList());
var response = mvc.perform(get("/transaction/accountId/{accountId}", accountId))
.andExpect(status().isNotFound())
.andReturn().getResponse();
}
Esse meu teste está retornando 200, mas quando disparo pelo Postman ou swagger dá 404, com a frase que configurei ""Não há registros para os parametros informados!""
public List<TransactionResponse>findByAccountId(Long accountId) {
List<Transaction> transactions = repository.findByAccountId(accountId);
if(transactions.isEmpty()) throw new EntityNotFoundException();
return transactions.stream()
.map(TransactionResponse::new)
.collect(Collectors.toList());
}
@org.springframework.web.bind.annotation.ExceptionHandler(EntityNotFoundException.class)
public ResponseEntity trataError404(EntityNotFoundException exception) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Não há registros para os parametros informados!");
}