package eu.choreos.vvrs;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNull;
import static junit.framework.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import eu.choreos.vvrs.BookStore;
import eu.choreos.vvrs.model.Book;
import eu.choreos.vvrs.model.MockBooks;
public class BookStoreTest {
@Before
public void setUp() {
BookStore.clear();
}
@Test
public void shouldAddABook() {
Book book = new Book("O sr. Dos Anéis", "Tolkien");
int id = BookStore.addBook(book);
Book retrieved = BookStore.getBookById(id);
assertEquals(book, retrieved);
}
@Test
public void shouldUpdateABook() {
Book book = new Book("O sr. Dos Anéis", "Tolkien");
int id = BookStore.addBook(book);
book.author = "J. R. R. Tolkien";
BookStore.updateBook(id, book);
String retrieved = BookStore.getBookById(id).author;
assertEquals(book.author, retrieved);
}
@Test
public void shouldRemoveABook() {
Book book = new Book("O sr. Dos Anéis", "Tolkien");
int id = BookStore.addBook(book);
BookStore.removeBook(id);
Book retrieved = BookStore.getBookById(id);
assertNull(retrieved);
}
@Test
public void shouldGetABookByTitle() {
Book book = new Book("O sr. Dos Anéis - As duas torres", "Tolkien");
BookStore.addBook(book);
List<Book> retrieved = BookStore.getBookByTitle("O sr. dos Anéis");
assertTrue(retrieved.contains(book));
}
@Test
public void shouldGetAllBookByTitle() {
List<Book> books = new ArrayList<Book>( MockBooks.bookList.values() );
List<Book> retrieved = BookStore.getAllBooks();
assertEquals(books, retrieved);
}
}