use of com.quran.labs.androidquran.model.bookmark.BookmarkResult in project quran_android by quran.
the class BookmarkPresenterTest method testBookmarkObservableAyahBookmarksGroupedByTag.
@Test
public void testBookmarkObservableAyahBookmarksGroupedByTag() {
BookmarkModel model = new BookmarkModel(bookmarksAdapter, recentPageModel) {
@Override
public Single<BookmarkData> getBookmarkDataObservable(int sortOrder) {
return Single.zip(Single.just(TAG_LIST), Single.just(AYAH_BOOKMARKS_LIST), Single.just(new ArrayList<>()), (Function3<List<Tag>, List<Bookmark>, List<RecentPage>, BookmarkData>) BookmarkData::new);
}
};
BookmarkPresenter presenter = makeBookmarkPresenter(model);
BookmarkResult result = getBookmarkResultByDateAndValidate(presenter, true);
assertThat(result.getTagMap()).hasSize(2);
// number of tags (or 1) for each bookmark, plus number of tags (headers), plus unsorted
assertThat(result.getRows()).hasSize(AYAH_BOOKMARKS_ROW_COUNT_WHEN_GROUPED_BY_TAG + TAG_LIST.size() + 1);
}
use of com.quran.labs.androidquran.model.bookmark.BookmarkResult in project quran_android by quran.
the class BookmarkPresenterTest method testBookmarkObservableMixedBookmarksByDate.
@Test
public void testBookmarkObservableMixedBookmarksByDate() {
BookmarkModel model = new BookmarkModel(bookmarksAdapter, recentPageModel) {
@Override
public Single<BookmarkData> getBookmarkDataObservable(int sortOrder) {
return Single.zip(Single.just(new ArrayList<>()), Single.just(MIXED_BOOKMARKS_LIST), Single.just(new ArrayList<>()), (Function3<List<Tag>, List<Bookmark>, List<RecentPage>, BookmarkData>) BookmarkData::new);
}
};
BookmarkPresenter presenter = makeBookmarkPresenter(model);
BookmarkResult result = getBookmarkResultByDateAndValidate(presenter, false);
assertThat(result.getTagMap()).isEmpty();
// 1 for "page bookmarks" and 1 for "ayah bookmarks"
assertThat(result.getRows()).hasSize(MIXED_BOOKMARKS_LIST.size() + 2);
}
use of com.quran.labs.androidquran.model.bookmark.BookmarkResult in project quran_android by quran.
the class BookmarkPresenter method predictQuranListAfterDeletion.
private BookmarkResult predictQuranListAfterDeletion(List<QuranRow> remove) {
if (cachedData != null) {
List<QuranRow> placeholder = new ArrayList<>(cachedData.getRows().size() - remove.size());
List<QuranRow> rows = cachedData.getRows();
List<Long> removedTags = new ArrayList<>();
for (int i = 0, rowsSize = rows.size(); i < rowsSize; i++) {
QuranRow row = rows.get(i);
if (!remove.contains(row)) {
placeholder.add(row);
}
}
for (int i = 0, removedSize = remove.size(); i < removedSize; i++) {
QuranRow row = remove.get(i);
if (row.isHeader() && row.tagId > 0) {
removedTags.add(row.tagId);
}
}
Map<Long, Tag> tagMap;
if (removedTags.isEmpty()) {
tagMap = cachedData.getTagMap();
} else {
tagMap = new HashMap<>(cachedData.getTagMap());
for (int i = 0, removedTagsSize = removedTags.size(); i < removedTagsSize; i++) {
Long tagId = removedTags.get(i);
tagMap.remove(tagId);
}
}
return new BookmarkResult(placeholder, tagMap);
}
return null;
}
use of com.quran.labs.androidquran.model.bookmark.BookmarkResult in project quran_android by quran.
the class BookmarkPresenterTest method testBookmarkObservableAyahBookmarksByDate.
@Test
public void testBookmarkObservableAyahBookmarksByDate() {
BookmarkModel model = new BookmarkModel(bookmarksAdapter, recentPageModel) {
@Override
public Single<BookmarkData> getBookmarkDataObservable(int sortOrder) {
return Single.zip(Single.just(new ArrayList<>()), Single.just(AYAH_BOOKMARKS_LIST), Single.just(new ArrayList<>()), (Function3<List<Tag>, List<Bookmark>, List<RecentPage>, BookmarkData>) BookmarkData::new);
}
};
BookmarkPresenter presenter = makeBookmarkPresenter(model);
BookmarkResult result = getBookmarkResultByDateAndValidate(presenter, false);
assertThat(result.getTagMap()).isEmpty();
// 1 for the header, plus one row per item
assertThat(result.getRows()).hasSize(AYAH_BOOKMARKS_LIST.size() + 1);
}
use of com.quran.labs.androidquran.model.bookmark.BookmarkResult in project quran_android by quran.
the class BookmarkPresenterTest method testBookmarkObservableMixedBookmarksGroupedByTagWithRecentPage.
@Test
public void testBookmarkObservableMixedBookmarksGroupedByTagWithRecentPage() {
BookmarkModel model = new BookmarkModel(bookmarksAdapter, recentPageModel) {
@Override
public Single<BookmarkData> getBookmarkDataObservable(int sortOrder) {
return Single.zip(Single.just(TAG_LIST), Single.just(MIXED_BOOKMARKS_LIST), Single.just(RECENTS_LIST), BookmarkData::new);
}
};
BookmarkPresenter presenter = makeBookmarkPresenter(model);
BookmarkResult result = getBookmarkResultByDateAndValidate(presenter, true);
assertThat(result.getTagMap()).hasSize(2);
// number of tags (or 1) for each bookmark, plus number of tags (headers), plus unsorted, plus
// current page header, plus current page
assertThat(result.getRows()).hasSize(MIXED_BOOKMARKS_ROW_COUNT_WHEN_GROUPED_BY_TAG + TAG_LIST.size() + 1 + 2);
}
Aggregations