implement testing and create a simple test for Userlist

This commit is contained in:
Carlos Martinez
2020-02-06 14:34:42 -03:00
parent 40e57a27ac
commit b720fb39e6
15 changed files with 199 additions and 25 deletions

View File

@@ -37,6 +37,10 @@ android {
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
testOptions {
unitTests.returnDefaultValues = true
}

View File

@@ -1,10 +1,8 @@
package com.hako.friendlists
import android.app.Application
import com.hako.albumlist.di.albumListModules
import com.hako.userlist.di.userlistModules
import com.hako.friendlists.di.appModules
import com.hako.photolist.di.photoListModules
import org.koin.android.ext.koin.androidContext
import org.koin.core.context.startKoin
import timber.log.Timber
@@ -28,9 +26,7 @@ class MainApplication : Application() {
modules(
listOf(
appModules,
userlistModules,
albumListModules,
photoListModules
userlistModules
)
)
}

View File

@@ -4,19 +4,35 @@ import android.os.Bundle
import androidx.annotation.IdRes
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import com.hako.albumlist.di.albumListModules
import com.hako.albumlist.feature.ALBUMLIST_FRAGMENT_BUNDLE_USER_ID
import com.hako.albumlist.navigation.AlbumlistNavigation
import com.hako.base.extensions.buildNavigation
import com.hako.base.navigation.NavigationEvent
import com.hako.friendlists.R
import com.hako.photolist.di.photoListModules
import com.hako.photolist.feature.PHOTOLIST_FRAGMENT_BUNDLE_ALBUM_ID
import com.hako.userlist.navigation.UserlistNavigation
import org.koin.core.context.loadKoinModules
// This sets the fragment title, it's referenced in every navigation
const val FRAGMENT_TITLE = "actionTitle"
class NavigationViewmodel : ViewModel() {
// Load koin modules dynamically ;)
private val albums by lazy {
loadKoinModules(albumListModules)
}
private val photos by lazy {
loadKoinModules(photoListModules)
}
private fun injectAlbums() = albums
private fun injectPhotos() = photos
val navigate = MutableLiveData<Pair<@IdRes Int, Bundle>>()
fun onNavigationEvent(event: NavigationEvent) {
@@ -28,6 +44,8 @@ class NavigationViewmodel : ViewModel() {
}
private fun handleUserlistNavigation(event: UserlistNavigation) {
injectAlbums()
when (event) {
is UserlistNavigation.ClickedOnUser -> navigate.postValue(
buildNavigation(R.id.action_userlistFragment_to_albumlistFragment, Bundle().apply {
@@ -42,6 +60,8 @@ class NavigationViewmodel : ViewModel() {
}
private fun handleAlbumlistNavigation(event: AlbumlistNavigation) {
injectPhotos()
when (event) {
is AlbumlistNavigation.ClickedOnAlbum -> navigate.postValue(
buildNavigation(R.id.action_albumlistFragment_to_photolistFragment, Bundle().apply {