mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-25 14:02:36 -04:00
#2154 fixed tests
This commit is contained in:
parent
969cead41d
commit
56792111da
@ -25,6 +25,7 @@ import io.mockk.mockk
|
|||||||
import io.reactivex.plugins.RxJavaPlugins
|
import io.reactivex.plugins.RxJavaPlugins
|
||||||
import io.reactivex.processors.PublishProcessor
|
import io.reactivex.processors.PublishProcessor
|
||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
import org.junit.jupiter.api.BeforeEach
|
import org.junit.jupiter.api.BeforeEach
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.junit.jupiter.api.extension.ExtendWith
|
import org.junit.jupiter.api.extension.ExtendWith
|
||||||
@ -73,8 +74,8 @@ internal class BookmarkViewModelTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `Initial state is initialising a bookmark state`() {
|
fun `Initial state returns initial state`() {
|
||||||
viewModel.state.test().assertValue(bookmarkState())
|
assertThat(viewModel.initialState()).isEqualTo(bookmarkState())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -26,21 +26,6 @@ import org.kiwix.kiwixmobile.core.page.historyState
|
|||||||
|
|
||||||
internal class HistoryStateTest {
|
internal class HistoryStateTest {
|
||||||
|
|
||||||
@Test
|
|
||||||
internal fun `visiblePageItems returns history from all books when showAll is true`() {
|
|
||||||
val item = historyItem(isSelected = false)
|
|
||||||
assertThat(historyState(listOf(item), showAll = true).visiblePageItems)
|
|
||||||
.isEqualTo(listOf(DateItem(item.dateString), item))
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
internal fun `visiblePageItems returns history from current book when showAll is false`() {
|
|
||||||
val item1 = historyItem(isSelected = false, zimId = "id1")
|
|
||||||
val item2 = historyItem(isSelected = false, zimId = "id2")
|
|
||||||
assertThat(historyState(listOf(item1, item2), showAll = false, zimId = "id1").visiblePageItems)
|
|
||||||
.isEqualTo(listOf(DateItem(item1.dateString), item1))
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
internal fun `visiblePageItems returns history based on filter`() {
|
internal fun `visiblePageItems returns history based on filter`() {
|
||||||
val matchingItem = historyItem(historyTitle = "Title")
|
val matchingItem = historyItem(historyTitle = "Title")
|
||||||
|
@ -8,6 +8,7 @@ import io.reactivex.plugins.RxJavaPlugins
|
|||||||
import io.reactivex.processors.PublishProcessor
|
import io.reactivex.processors.PublishProcessor
|
||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
import io.reactivex.schedulers.TestScheduler
|
import io.reactivex.schedulers.TestScheduler
|
||||||
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
import org.junit.jupiter.api.BeforeEach
|
import org.junit.jupiter.api.BeforeEach
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.junit.jupiter.api.extension.ExtendWith
|
import org.junit.jupiter.api.extension.ExtendWith
|
||||||
@ -57,8 +58,8 @@ internal class HistoryViewModelTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `Initial state is initialising a history state`() {
|
fun `Initial state returns initial state`() {
|
||||||
viewModel.state.test().assertValue(historyState())
|
assertThat(viewModel.initialState()).isEqualTo(historyState())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -22,6 +22,8 @@ import com.jraska.livedata.test
|
|||||||
import io.mockk.clearAllMocks
|
import io.mockk.clearAllMocks
|
||||||
import io.mockk.every
|
import io.mockk.every
|
||||||
import io.mockk.mockk
|
import io.mockk.mockk
|
||||||
|
import io.mockk.mockkObject
|
||||||
|
import io.mockk.verify
|
||||||
import io.reactivex.plugins.RxJavaPlugins
|
import io.reactivex.plugins.RxJavaPlugins
|
||||||
import io.reactivex.processors.PublishProcessor
|
import io.reactivex.processors.PublishProcessor
|
||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
@ -34,6 +36,12 @@ import org.kiwix.kiwixmobile.core.page.PageImpl
|
|||||||
import org.kiwix.kiwixmobile.core.page.adapter.Page
|
import org.kiwix.kiwixmobile.core.page.adapter.Page
|
||||||
import org.kiwix.kiwixmobile.core.page.pageState
|
import org.kiwix.kiwixmobile.core.page.pageState
|
||||||
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.Exit
|
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.Exit
|
||||||
|
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.ExitActionModeMenu
|
||||||
|
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.Filter
|
||||||
|
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.OnItemClick
|
||||||
|
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.OnItemLongClick
|
||||||
|
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.UpdatePages
|
||||||
|
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.UserClickedShowAllToggle
|
||||||
import org.kiwix.kiwixmobile.core.page.viewmodel.effects.OpenPage
|
import org.kiwix.kiwixmobile.core.page.viewmodel.effects.OpenPage
|
||||||
import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer
|
import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer
|
||||||
import org.kiwix.kiwixmobile.core.search.viewmodel.effects.Finish
|
import org.kiwix.kiwixmobile.core.search.viewmodel.effects.Finish
|
||||||
@ -78,18 +86,37 @@ internal class PageViewModelTest {
|
|||||||
viewModel.state.test().assertValue(pageState())
|
viewModel.state.test().assertValue(pageState())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `ExitActionModeMenu calls deslectAllPages`() {
|
||||||
|
mockkObject(viewModel)
|
||||||
|
viewModel.actions.offer(ExitActionModeMenu)
|
||||||
|
verify {
|
||||||
|
viewModel.deselectAllPages(pageState())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `UserClickedDeleteButton calls offerShowDeleteDialog`() {
|
||||||
|
mockkObject(viewModel)
|
||||||
|
val action = UserClickedShowAllToggle(true)
|
||||||
|
viewModel.actions.offer(action)
|
||||||
|
verify {
|
||||||
|
viewModel.offerUpdateToShowAllToggle(action, pageState())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
internal fun `OnItemClick selects item if one is selected`() {
|
internal fun `OnItemClick selects item if one is selected`() {
|
||||||
val page = PageImpl(isSelected = true)
|
val page = PageImpl(isSelected = true)
|
||||||
viewModel.state.postValue(TestablePageState(listOf(page)))
|
viewModel.state.postValue(TestablePageState(listOf(page)))
|
||||||
viewModel.actions.offer(Action.OnItemClick(page))
|
viewModel.actions.offer(OnItemClick(page))
|
||||||
viewModel.state.test().assertValue(TestablePageState(listOf(PageImpl())))
|
viewModel.state.test().assertValue(TestablePageState(listOf(PageImpl())))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
internal fun `OnItemClick offers OpenPage if none is selected`() {
|
internal fun `OnItemClick offers OpenPage if none is selected`() {
|
||||||
viewModel.state.postValue(TestablePageState(listOf(PageImpl())))
|
viewModel.state.postValue(TestablePageState(listOf(PageImpl())))
|
||||||
viewModel.effects.test().also { viewModel.actions.offer(Action.OnItemClick(PageImpl())) }
|
viewModel.effects.test().also { viewModel.actions.offer(OnItemClick(PageImpl())) }
|
||||||
.assertValue(OpenPage(PageImpl(), zimReaderContainer))
|
.assertValue(OpenPage(PageImpl(), zimReaderContainer))
|
||||||
viewModel.state.test().assertValue(TestablePageState(listOf(PageImpl())))
|
viewModel.state.test().assertValue(TestablePageState(listOf(PageImpl())))
|
||||||
}
|
}
|
||||||
@ -98,7 +125,27 @@ internal class PageViewModelTest {
|
|||||||
internal fun `OnItemLongClick selects item if none is selected`() {
|
internal fun `OnItemLongClick selects item if none is selected`() {
|
||||||
val page = PageImpl()
|
val page = PageImpl()
|
||||||
viewModel.state.postValue(TestablePageState(listOf(page)))
|
viewModel.state.postValue(TestablePageState(listOf(page)))
|
||||||
viewModel.actions.offer(Action.OnItemLongClick(page))
|
viewModel.actions.offer(OnItemLongClick(page))
|
||||||
viewModel.state.test().assertValue(TestablePageState(listOf(PageImpl(isSelected = true))))
|
viewModel.state.test().assertValue(TestablePageState(listOf(PageImpl(isSelected = true))))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `Filter calls updatePagesBasedOnFilter`() {
|
||||||
|
mockkObject(viewModel)
|
||||||
|
val action = Filter("filter")
|
||||||
|
viewModel.actions.offer(action)
|
||||||
|
verify {
|
||||||
|
viewModel.updatePagesBasedOnFilter(pageState(), action)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `UpdatePages calls updatePages`() {
|
||||||
|
mockkObject(viewModel)
|
||||||
|
val action = UpdatePages(emptyList())
|
||||||
|
viewModel.actions.offer(action)
|
||||||
|
verify {
|
||||||
|
viewModel.updatePages(pageState(), action)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user