Estou em dúvida de como faço para escrever meu teste em Mock para o método findAll da minha API.
No meu controller/resource tenho o seguinte método que lista meus objetos com paginação:
@GetMapping
public ResponseEntity<Page<ListagemReceitasDTO>> listar(@PageableDefault(size = 10, page = 0, sort = {"descricao"}) Pageable paginacao) {
return ResponseEntity.ok().body(repository.findAll(paginacao).map(ListagemReceitasDTO::new));
}
E na classe teste está da seguinte maneira:
@Test
void whenListarThenReturnListOfReceitasDTO() {
Pageable page = Pageable.unpaged();
Page<ListagemReceitasDTO> page1 = Page.empty();
when(repository.findAll()).thenReturn(List.of(receita));
ResponseEntity<Page<ListagemReceitasDTO>> response = controller.listar();
assertNotNull(response);
assertNotNull(response.getBody());
assertEquals(ResponseEntity.class, response.getClass());
assertEquals(ArrayList.class, response.getBody().getClass());
}
Ao chamar
ResponseEntity<Page<ListagemReceitasDTO>> response = controller.listar();
o 'listar' não compila, pois acredito que falta complementar o teste para esse saber lidar com essa Page.
link do repositório: https://github.com/matthewmatheus/renda-familiar-api