opencv/src/test/java/pl/edu/amu/wmi/bookapi/fixtures/api/BookControllerRequest.java

61 lines
2.4 KiB
Java

package pl.edu.amu.wmi.bookapi.fixtures.api;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import java.net.URI;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
public class BookControllerRequest {
private final MockMvc mvc;
private final ObjectMapper objectMapper;
public BookControllerRequest(MockMvc mvc, ObjectMapper objectMapper) {
this.mvc = mvc;
this.objectMapper = objectMapper;
}
public ResultActions getBooksForUser(String bearer) throws Exception {
return mvc.perform(get("/api/books").header("Authorization", bearer));
}
public ResultActions getAllBooks(String bearer) throws Exception {
return mvc.perform(get("/api/books/public")
.header("Authorization", bearer));
}
public ResultActions updateBook(String bookId, String bearer, String jsonBody) throws Exception {
return mvc.perform(patch("/api/books/" + bookId)
.header("Authorization", bearer)
.contentType(MediaType.APPLICATION_JSON)
.content(jsonBody));
}
public ResultActions deleteBook(String bearer, String bookId) throws Exception {
return mvc.perform(delete("/api/books/" + bookId)
.header("Authorization", bearer));
}
public ResultActions addBook(
String bearer,
String ean,
String author,
String title
) throws Exception {
return mvc.perform(post(URI.create("/api/books"))
.header("Authorization", bearer)
.contentType(MediaType.APPLICATION_JSON)
.content("{\n" +
" \"ean\": " + objectMapper.writeValueAsString(ean) + ",\n" +
" \"author\": " + objectMapper.writeValueAsString(author) + ",\n" +
" \"title\": " + objectMapper.writeValueAsString(title) + "\n" +
"}"));
}
}