Skip to content

Commit

Permalink
Merge pull request #184 from xizzhu/improve-tests
Browse files Browse the repository at this point in the history
Added more unit tests
  • Loading branch information
xizzhu committed May 24, 2020
2 parents 50a69bf + 38e4e49 commit c0d474a
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,8 @@ abstract class BaseAnnotatedVersesPresenter<V : VerseAnnotation, A : BaseAnnotat
return items
}

protected fun openVerse(verseToOpen: VerseIndex) {
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
fun openVerse(verseToOpen: VerseIndex) {
coroutineScope.launch {
try {
viewModel.saveCurrentVerseIndex(verseToOpen)
Expand All @@ -165,5 +166,5 @@ abstract class BaseAnnotatedVersesPresenter<V : VerseAnnotation, A : BaseAnnotat
}
}

open protected fun extrasForOpeningVerse(): Bundle? = null
protected open fun extrasForOpeningVerse(): Bundle? = null
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ class ReadingProgressPresenter(
) : BaseSettingsPresenter<ReadingProgressViewHolder, ReadingProgressViewModel, ReadingProgressActivity>(
readingProgressViewModel, readingProgressActivity, coroutineScope
) {
// we also cache the state here, so that when it's re-started, we can maintain the same expanding state
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
val expanded: Array<Boolean> = Array(Bible.BOOK_COUNT) { it == 0 }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,23 @@ import kotlin.test.assertEquals
class BaseAnnotatedVersesPresenterTest : BaseUnitTest() {
@Mock
private lateinit var resources: Resources

@Mock
private lateinit var lifecycle: Lifecycle

@Mock
private lateinit var activity: TestVerseAnnotationsActivity

@Mock
private lateinit var navigator: Navigator
private val noItemText = R.string.text_no_bookmark

@Mock
private lateinit var verseAnnotationViewModel: TestVerseAnnotationViewModel

@Mock
private lateinit var loadingSpinner: ProgressBar

@Mock
private lateinit var annotatedVerseListView: CommonRecyclerView

Expand Down Expand Up @@ -232,4 +238,12 @@ class BaseAnnotatedVersesPresenterTest : BaseUnitTest() {

assertEquals(expected, actual)
}

@Test
fun testOpenVerse() = testDispatcher.runBlockingTest {
val verseIndex = VerseIndex(1, 2, 3)
baseAnnotatedVersesPresenter.openVerse(verseIndex)
verify(verseAnnotationViewModel, times(1)).saveCurrentVerseIndex(verseIndex)
verify(navigator, times(1)).navigate(activity, Navigator.SCREEN_READING)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import me.xizzhu.android.joshua.Navigator
import me.xizzhu.android.joshua.core.Bible
import me.xizzhu.android.joshua.core.ReadingProgress
import me.xizzhu.android.joshua.core.Settings
import me.xizzhu.android.joshua.core.VerseIndex
import me.xizzhu.android.joshua.tests.BaseUnitTest
import me.xizzhu.android.joshua.ui.fadeIn
import me.xizzhu.android.joshua.ui.recyclerview.BaseItem
Expand All @@ -37,14 +38,19 @@ import kotlin.test.*
class ReadingProgressPresenterTest : BaseUnitTest() {
@Mock
private lateinit var lifecycle: Lifecycle

@Mock
private lateinit var navigator: Navigator

@Mock
private lateinit var readingProgressViewModel: ReadingProgressViewModel

@Mock
private lateinit var readingProgressActivity: ReadingProgressActivity

@Mock
private lateinit var loadingSpinner: ProgressBar

@Mock
private lateinit var readingProgressListView: CommonRecyclerView

Expand Down Expand Up @@ -146,4 +152,32 @@ class ReadingProgressPresenterTest : BaseUnitTest() {

assertEquals(expected, actual)
}

@Test
fun testOpenChapter() = testDispatcher.runBlockingTest {
readingProgressPresenter.openChapter(8, 9)
verify(readingProgressViewModel, times(1)).saveCurrentVerseIndex(VerseIndex(8, 9, 0))
verify(navigator, times(1)).navigate(readingProgressActivity, Navigator.SCREEN_READING)
}

@Test
fun testOnBookClicked() {
readingProgressPresenter.expanded.forEachIndexed { index, expanded -> assertEquals(index == 0, expanded) }

readingProgressPresenter.onBookClicked(0, true)
readingProgressPresenter.expanded.forEachIndexed { index, expanded -> assertEquals(index == 0, expanded) }

readingProgressPresenter.onBookClicked(0, false)
readingProgressPresenter.expanded.forEach { assertFalse(it) }

readingProgressPresenter.onBookClicked(1, true)
readingProgressPresenter.onBookClicked(3, true)
readingProgressPresenter.onBookClicked(4, true)
readingProgressPresenter.onBookClicked(42, true)
readingProgressPresenter.onBookClicked(4, true)
readingProgressPresenter.onBookClicked(3, false)
readingProgressPresenter.expanded.forEachIndexed { index, expanded ->
assertEquals(index in listOf(1, 4, 42), expanded)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -158,4 +158,12 @@ class SearchResultListPresenterTest : BaseUnitTest() {

assertEquals(expected, actual)
}

@Test
fun testSelectVerse() = testDispatcher.runBlockingTest {
val verseIndex = VerseIndex(1, 2, 3)
searchResultListPresenter.selectVerse(verseIndex)
verify(searchViewModel, times(1)).saveCurrentVerseIndex(verseIndex)
verify(navigator, times(1)).navigate(searchActivity, Navigator.SCREEN_READING)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,19 @@ import kotlin.test.assertEquals
class StrongNumberListPresenterTest : BaseUnitTest() {
@Mock
private lateinit var lifecycle: Lifecycle

@Mock
private lateinit var navigator: Navigator

@Mock
private lateinit var strongNumberListViewModel: StrongNumberListViewModel

@Mock
private lateinit var strongNumberListActivity: StrongNumberListActivity

@Mock
private lateinit var loadingSpinner: ProgressBar

@Mock
private lateinit var strongNumberListView: CommonRecyclerView

Expand Down Expand Up @@ -123,4 +128,12 @@ class StrongNumberListPresenterTest : BaseUnitTest() {

assertEquals(expected, actual)
}

@Test
fun testOpenChapter() = testDispatcher.runBlockingTest {
val verseIndex = VerseIndex(1, 2, 3)
strongNumberListPresenter.openVerse(verseIndex)
verify(strongNumberListViewModel, times(1)).saveCurrentVerseIndex(verseIndex)
verify(navigator, times(1)).navigate(strongNumberListActivity, Navigator.SCREEN_READING)
}
}

0 comments on commit c0d474a

Please sign in to comment.