package net.bible.android.control.bookmark;
import net.bible.service.db.bookmark.BookmarkDto;
import org.crosswire.jsword.passage.Verse;
import org.crosswire.jsword.passage.VerseRange;
import org.crosswire.jsword.versification.BibleBook;
import org.crosswire.jsword.versification.Versification;
import org.crosswire.jsword.versification.system.Versifications;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
import edu.emory.mathcs.backport.java.util.Collections;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.contains;
/**
* @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 BookmarkDtoBibleOrderComparatorTest {
private final Versification kjv = Versifications.instance().getVersification("KJV");
private final Versification nrsv = Versifications.instance().getVersification("NRSV");
private final Versification lxx = Versifications.instance().getVersification("LXX");
private final Versification segond = Versifications.instance().getVersification("Segond");
private final Versification synodal = Versifications.instance().getVersification("Synodal");
@Test
public void compare() throws Exception {
final BookmarkDto kjvPs17_2 = getBookmark(kjv, BibleBook.PS, 17, 2);
final BookmarkDto nrsvPs17_3 = getBookmark(nrsv, BibleBook.PS, 17, 3);
final BookmarkDto lxxPs17_4 = getBookmark(lxx, BibleBook.PS, 17, 4);
final BookmarkDto synodalPs17_5 = getBookmark(synodal, BibleBook.PS, 17, 5);
final BookmarkDto kjvPs17_6 = getBookmark(kjv, BibleBook.PS, 17, 6);
final BookmarkDto kjvPs17_7 = getBookmark(nrsv, BibleBook.PS, 17, 7);
final BookmarkDto segondPs17_8 = getBookmark(segond, BibleBook.PS, 17, 8);
final List<BookmarkDto> bookmarks = Arrays.asList(
kjvPs17_2,
nrsvPs17_3,
lxxPs17_4,
synodalPs17_5,
kjvPs17_6,
kjvPs17_7,
segondPs17_8
);
Collections.sort(bookmarks, new BookmarkDtoBibleOrderComparator(bookmarks));
assertThat(bookmarks, contains(kjvPs17_2, nrsvPs17_3, lxxPs17_4, kjvPs17_6, kjvPs17_7, segondPs17_8, synodalPs17_5));
}
private BookmarkDto getBookmark(Versification v11n, BibleBook book, int chapter, int verse) {
BookmarkDto newBookmarkDto = new BookmarkDto();
final VerseRange verseRange = new VerseRange(v11n, new Verse(v11n, book, chapter, verse), new Verse(v11n, book, chapter, verse));
newBookmarkDto.setVerseRange(verseRange);
return newBookmarkDto;
}
}