From 453b6fe67e178b4cfef0199d26e28a498a82dead Mon Sep 17 00:00:00 2001 From: Frans-Lukas Date: Fri, 26 Jun 2020 13:45:41 +0200 Subject: [PATCH] #2098 added tests for dialog options when deleting bookmarks/history items --- .../effects/ShowDeleteBookmarksDialogTest.kt | 48 ++++++++++++++++++- .../effects/ShowDeleteHistoryDialogTest.kt | 40 +++++++++++++++- 2 files changed, 85 insertions(+), 3 deletions(-) diff --git a/core/src/test/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/effects/ShowDeleteBookmarksDialogTest.kt b/core/src/test/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/effects/ShowDeleteBookmarksDialogTest.kt index d898bb704..f6df95cf8 100644 --- a/core/src/test/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/effects/ShowDeleteBookmarksDialogTest.kt +++ b/core/src/test/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/effects/ShowDeleteBookmarksDialogTest.kt @@ -26,10 +26,12 @@ import io.reactivex.processors.PublishProcessor import org.junit.jupiter.api.Test import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.dao.NewBookmarksDao +import org.kiwix.kiwixmobile.core.page.bookmark import org.kiwix.kiwixmobile.core.page.bookmark.BookmarksActivity import org.kiwix.kiwixmobile.core.page.bookmarkState import org.kiwix.kiwixmobile.core.utils.DialogShower -import org.kiwix.kiwixmobile.core.utils.KiwixDialog +import org.kiwix.kiwixmobile.core.utils.KiwixDialog.DeleteAllBookmarks +import org.kiwix.kiwixmobile.core.utils.KiwixDialog.DeleteSelectedBookmarks internal class ShowDeleteBookmarksDialogTest { @@ -47,8 +49,50 @@ internal class ShowDeleteBookmarksDialogTest { } val lambdaSlot = slot<() -> Unit>() showDeleteBookmarksDialog.invokeWith(activity) - verify { dialogShower.show(KiwixDialog.DeleteAllBookmarks, capture(lambdaSlot)) } + verify { dialogShower.show(any(), capture(lambdaSlot)) } lambdaSlot.captured.invoke() verify { effects.offer(DeleteBookmarkItems(effects, bookmarkState(), newBookmarksDao)) } } + + @Test + fun `invoke with selected items shows dialog with DeleteSelectedBookmarks title`() { + val effects = mockk>>(relaxed = true) + val newBookmarksDao = mockk() + val activity = mockk() + val showDeleteBookmarksDialog = + ShowDeleteBookmarksDialog( + effects, + bookmarkState(listOf(bookmark(isSelected = true))), + newBookmarksDao + ) + val dialogShower = mockk() + every { activity.activityComponent.inject(showDeleteBookmarksDialog) } answers { + showDeleteBookmarksDialog.dialogShower = dialogShower + Unit + } + val lambdaSlot = slot<() -> Unit>() + showDeleteBookmarksDialog.invokeWith(activity) + verify { dialogShower.show(DeleteSelectedBookmarks, capture(lambdaSlot)) } + } + + @Test + fun `invoke with no selected items shows dialog with DeleteAllBookmarks title`() { + val effects = mockk>>(relaxed = true) + val newBookmarksDao = mockk() + val activity = mockk() + val showDeleteBookmarksDialog = + ShowDeleteBookmarksDialog( + effects, + bookmarkState(listOf(bookmark())), + newBookmarksDao + ) + val dialogShower = mockk() + every { activity.activityComponent.inject(showDeleteBookmarksDialog) } answers { + showDeleteBookmarksDialog.dialogShower = dialogShower + Unit + } + val lambdaSlot = slot<() -> Unit>() + showDeleteBookmarksDialog.invokeWith(activity) + verify { dialogShower.show(DeleteAllBookmarks, capture(lambdaSlot)) } + } } diff --git a/core/src/test/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/effects/ShowDeleteHistoryDialogTest.kt b/core/src/test/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/effects/ShowDeleteHistoryDialogTest.kt index f1469a51f..a453eadcc 100644 --- a/core/src/test/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/effects/ShowDeleteHistoryDialogTest.kt +++ b/core/src/test/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/effects/ShowDeleteHistoryDialogTest.kt @@ -9,9 +9,11 @@ import org.junit.jupiter.api.Test import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.dao.HistoryDao import org.kiwix.kiwixmobile.core.page.history.HistoryActivity +import org.kiwix.kiwixmobile.core.page.historyItem import org.kiwix.kiwixmobile.core.page.historyState import org.kiwix.kiwixmobile.core.utils.DialogShower import org.kiwix.kiwixmobile.core.utils.KiwixDialog.DeleteAllHistory +import org.kiwix.kiwixmobile.core.utils.KiwixDialog.DeleteSelectedHistory internal class ShowDeleteHistoryDialogTest { @@ -28,8 +30,44 @@ internal class ShowDeleteHistoryDialogTest { } val lambdaSlot = slot<() -> Unit>() showDeleteHistoryDialog.invokeWith(activity) - verify { dialogShower.show(DeleteAllHistory, capture(lambdaSlot)) } + verify { dialogShower.show(any(), capture(lambdaSlot)) } lambdaSlot.captured.invoke() verify { effects.offer(DeleteHistoryItems(historyState(), historyDao)) } } + + @Test + fun `invoke with selected item shows dialog with delete selected items title`() { + val effects = mockk>>(relaxed = true) + val historyDao = mockk() + val activity = mockk() + val showDeleteHistoryDialog = ShowDeleteHistoryDialog( + effects, + historyState(listOf(historyItem(isSelected = true))), + historyDao + ) + val dialogShower = mockk() + every { activity.activityComponent.inject(showDeleteHistoryDialog) } answers { + showDeleteHistoryDialog.dialogShower = dialogShower + Unit + } + val lambdaSlot = slot<() -> Unit>() + showDeleteHistoryDialog.invokeWith(activity) + verify { dialogShower.show(DeleteSelectedHistory, capture(lambdaSlot)) } + } + + @Test + fun `invoke with no selected items shows dialog with delete all items title`() { + val effects = mockk>>(relaxed = true) + val historyDao = mockk() + val activity = mockk() + val showDeleteHistoryDialog = ShowDeleteHistoryDialog(effects, historyState(), historyDao) + val dialogShower = mockk() + every { activity.activityComponent.inject(showDeleteHistoryDialog) } answers { + showDeleteHistoryDialog.dialogShower = dialogShower + Unit + } + val lambdaSlot = slot<() -> Unit>() + showDeleteHistoryDialog.invokeWith(activity) + verify { dialogShower.show(DeleteAllHistory, capture(lambdaSlot)) } + } }