package net.bible.android.control.navigation; import org.crosswire.jsword.book.Books; import org.crosswire.jsword.book.basic.AbstractPassageBook; import org.crosswire.jsword.versification.BibleBook; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.List; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; /** * @author Martin Denham [mjdenham at gmail dot com] * @see gnu.lgpl.License for license details.<br> * The copyright to this program is held by it's author. */ public class DocumentBibleBooksFactoryTest { private DocumentBibleBooksFactory documentBibleBooksFactory; private AbstractPassageBook esv; @Before public void setup() { documentBibleBooksFactory = new DocumentBibleBooksFactory(); esv = (AbstractPassageBook) Books.installed().getBook("ESV"); } @After public void tearDown() { // ensure it is in the list after removal by some tests Books.installed().addBook(esv); } @Test public void initialise_shouldInstallBookChangeListenersToResetCache() throws Exception { documentBibleBooksFactory.initialise(); assertThat(documentBibleBooksFactory.size(), equalTo(0)); documentBibleBooksFactory.getBooksFor(esv); assertThat(documentBibleBooksFactory.size(), equalTo(1)); Books.installed().removeBook(esv); assertThat(documentBibleBooksFactory.size(), equalTo(0)); } @Test public void getDocumentBibleBooksFor() throws Exception { final List<BibleBook> esvBibleBooks = documentBibleBooksFactory.getBooksFor(esv); assertThat(documentBibleBooksFactory.size(), equalTo(1)); assertThat(true, is(esvBibleBooks.contains(BibleBook.GEN))); } @Test public void getBooksFor() throws Exception { final List<BibleBook> esvBibleBooks = documentBibleBooksFactory.getBooksFor(esv); assertThat(true, is(esvBibleBooks.contains(BibleBook.GEN))); } }