diff --git a/src/main/java/com/book/store/athena/controllers/BooksController.java b/src/main/java/com/book/store/athena/controllers/BooksController.java index 796b5c0..e5399b9 100644 --- a/src/main/java/com/book/store/athena/controllers/BooksController.java +++ b/src/main/java/com/book/store/athena/controllers/BooksController.java @@ -52,7 +52,7 @@ protected ResponseEntity > findAllBooks () { @GetMapping("/search") protected ResponseEntity > searchBooks (@RequestBody @Valid SearchBooksDTO books) { - List result = openLibraryService.search(books); + var result = openLibraryService.search(books); return ResponseEntity.status(HttpStatus.OK).body(result); diff --git a/src/test/java/com/book/store/athena/controllers/BooksControllerTest.java b/src/test/java/com/book/store/athena/controllers/BooksControllerTest.java index d04af48..1fa9587 100644 --- a/src/test/java/com/book/store/athena/controllers/BooksControllerTest.java +++ b/src/test/java/com/book/store/athena/controllers/BooksControllerTest.java @@ -1,11 +1,13 @@ package com.book.store.athena.controllers; import com.book.store.athena.api.OpenLibraryService; +import com.book.store.athena.model.dto.books.SearchBooksDTO; import com.book.store.athena.model.dto.books.UpdateBooksDTO; import com.book.store.athena.services.BooksService; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; +import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; @@ -14,7 +16,6 @@ import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; - import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -66,6 +67,22 @@ void getAllBooks_Test () throws Exception { } + @Test + void searchBooks_Test () throws Exception { + + SearchBooksDTO searchBooksDTO = new SearchBooksDTO("Tolkien"); + + Mockito.when(openLibraryService.search(searchBooksDTO)).thenReturn(Mockito.anyList()); + + mockMvc.perform(get("/books/search") + .content(new ObjectMapper().writeValueAsString(searchBooksDTO)) + .contentType("application/json")) + .andExpect(status().isOk()); + + Mockito.verify(openLibraryService, Mockito.times(1)).search(searchBooksDTO); + + } + @Test void updateBookById_Test () throws Exception {