#2098 added tests for dialog options when deleting bookmarks/history items

This commit is contained in:
Frans-Lukas 2020-06-26 13:45:41 +02:00
parent 103d86594a
commit 453b6fe67e
2 changed files with 85 additions and 3 deletions

View File

@ -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<PublishProcessor<SideEffect<*>>>(relaxed = true)
val newBookmarksDao = mockk<NewBookmarksDao>()
val activity = mockk<BookmarksActivity>()
val showDeleteBookmarksDialog =
ShowDeleteBookmarksDialog(
effects,
bookmarkState(listOf(bookmark(isSelected = true))),
newBookmarksDao
)
val dialogShower = mockk<DialogShower>()
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<PublishProcessor<SideEffect<*>>>(relaxed = true)
val newBookmarksDao = mockk<NewBookmarksDao>()
val activity = mockk<BookmarksActivity>()
val showDeleteBookmarksDialog =
ShowDeleteBookmarksDialog(
effects,
bookmarkState(listOf(bookmark())),
newBookmarksDao
)
val dialogShower = mockk<DialogShower>()
every { activity.activityComponent.inject(showDeleteBookmarksDialog) } answers {
showDeleteBookmarksDialog.dialogShower = dialogShower
Unit
}
val lambdaSlot = slot<() -> Unit>()
showDeleteBookmarksDialog.invokeWith(activity)
verify { dialogShower.show(DeleteAllBookmarks, capture(lambdaSlot)) }
}
}

View File

@ -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<PublishProcessor<SideEffect<*>>>(relaxed = true)
val historyDao = mockk<HistoryDao>()
val activity = mockk<HistoryActivity>()
val showDeleteHistoryDialog = ShowDeleteHistoryDialog(
effects,
historyState(listOf(historyItem(isSelected = true))),
historyDao
)
val dialogShower = mockk<DialogShower>()
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<PublishProcessor<SideEffect<*>>>(relaxed = true)
val historyDao = mockk<HistoryDao>()
val activity = mockk<HistoryActivity>()
val showDeleteHistoryDialog = ShowDeleteHistoryDialog(effects, historyState(), historyDao)
val dialogShower = mockk<DialogShower>()
every { activity.activityComponent.inject(showDeleteHistoryDialog) } answers {
showDeleteHistoryDialog.dialogShower = dialogShower
Unit
}
val lambdaSlot = slot<() -> Unit>()
showDeleteHistoryDialog.invokeWith(activity)
verify { dialogShower.show(DeleteAllHistory, capture(lambdaSlot)) }
}
}