package com.example;
import org.junit.Test;
import org.rapidoid.http.Self;
import org.rapidoid.u.U;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
public class CRUDTest extends AbstractIntegrationTest {
@Test
public void shouldInsertBooks() {
Book savedBook = Self.post("/books")
.data(javaBook())
.toBean(Book.class);
assertBookIs(savedBook, 1, "Java Book", 2016);
}
@Test
public void shouldUpdateBooks() {
Book savedBook = Self.post("/books").data(javaBook()).toBean(Book.class);
assertBookIs(savedBook, 1, "Java Book", 2016);
Book updatedBook = Self.put("/books/" + savedBook.id)
.data(U.map("year", 2017, "title", "J"))
.toBean(Book.class);
assertBookIs(updatedBook, 1, "J", 2017);
List<Map<String, Object>> books = Self.get("/books").parse();
eq(1, books.size());
eq("J", books.get(0).get("title"));
}
@Test
public void shouldReadBooks() {
List<Map<String, Object>> books = Self.get("/books").parse();
isTrue(books.isEmpty());
Self.post("/books").data(javaBook()).execute();
books = Self.get("/books").parse();
eq(1, books.size());
}
private Map<String, ? extends Serializable> javaBook() {
return U.map("title", "Java Book", "year", 2016);
}
private void assertBookIs(Book book, long id, String title, int year) {
notNull(book.id);
eq(id, book.id.longValue());
eq(title, book.title);
eq(year, book.year);
}
}