From 825332878838995745e060eb7be0ac0c0e6f91a9 Mon Sep 17 00:00:00 2001 From: Ammar Githam Date: Sat, 12 Jun 2021 13:04:55 +0900 Subject: [PATCH] Add AccountRepository to ProfileFragmentViewModel constructor --- .../fragments/main/ProfileFragment.java | 1 + .../viewmodels/ProfileFragmentViewModel.kt | 4 +++ .../ProfileFragmentViewModelTest.kt | 33 +++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java b/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java index d727e33d..56275695 100644 --- a/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java @@ -349,6 +349,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe StoriesRepository.Companion.getInstance(), MediaRepository.Companion.getInstance(), GraphQLRepository.Companion.getInstance(), + accountRepository, this, getArguments() )).get(ProfileFragmentViewModel.class); diff --git a/app/src/main/java/awais/instagrabber/viewmodels/ProfileFragmentViewModel.kt b/app/src/main/java/awais/instagrabber/viewmodels/ProfileFragmentViewModel.kt index 5234767c..9812b581 100644 --- a/app/src/main/java/awais/instagrabber/viewmodels/ProfileFragmentViewModel.kt +++ b/app/src/main/java/awais/instagrabber/viewmodels/ProfileFragmentViewModel.kt @@ -4,6 +4,7 @@ import android.os.Bundle import android.util.Log import androidx.lifecycle.* import androidx.savedstate.SavedStateRegistryOwner +import awais.instagrabber.db.repositories.AccountRepository import awais.instagrabber.repositories.responses.User import awais.instagrabber.utils.extensions.TAG import awais.instagrabber.webservices.* @@ -15,6 +16,7 @@ class ProfileFragmentViewModel( storiesRepository: StoriesRepository, mediaRepository: MediaRepository, graphQLRepository: GraphQLRepository, + accountRepository: AccountRepository, ) : ViewModel() { private val _profile = MutableLiveData() val profile: LiveData = _profile @@ -37,6 +39,7 @@ class ProfileFragmentViewModelFactory( private val storiesRepository: StoriesRepository, private val mediaRepository: MediaRepository, private val graphQLRepository: GraphQLRepository, + private val accountRepository: AccountRepository, owner: SavedStateRegistryOwner, defaultArgs: Bundle? = null, ) : AbstractSavedStateViewModelFactory(owner, defaultArgs) { @@ -52,6 +55,7 @@ class ProfileFragmentViewModelFactory( storiesRepository, mediaRepository, graphQLRepository, + accountRepository, ) as T } } diff --git a/app/src/test/java/awais/instagrabber/viewmodels/ProfileFragmentViewModelTest.kt b/app/src/test/java/awais/instagrabber/viewmodels/ProfileFragmentViewModelTest.kt index 5fe63921..11627d7f 100644 --- a/app/src/test/java/awais/instagrabber/viewmodels/ProfileFragmentViewModelTest.kt +++ b/app/src/test/java/awais/instagrabber/viewmodels/ProfileFragmentViewModelTest.kt @@ -2,6 +2,10 @@ package awais.instagrabber.viewmodels import androidx.lifecycle.SavedStateHandle import androidx.test.ext.junit.runners.AndroidJUnit4 +import awais.instagrabber.db.dao.AccountDao +import awais.instagrabber.db.datasources.AccountDataSource +import awais.instagrabber.db.entities.Account +import awais.instagrabber.db.repositories.AccountRepository import awais.instagrabber.repositories.* import awais.instagrabber.repositories.responses.* import awais.instagrabber.webservices.* @@ -132,6 +136,32 @@ internal class ProfileFragmentViewModelTest { } } + private val accountDao = object : AccountDao{ + override suspend fun getAllAccounts(): List { + TODO("Not yet implemented") + } + + override suspend fun findAccountByUid(uid: String): Account? { + TODO("Not yet implemented") + } + + override suspend fun insertAccounts(vararg accounts: Account) { + TODO("Not yet implemented") + } + + override suspend fun updateAccounts(vararg accounts: Account) { + TODO("Not yet implemented") + } + + override suspend fun deleteAccounts(vararg accounts: Account) { + TODO("Not yet implemented") + } + + override suspend fun deleteAllAccounts() { + TODO("Not yet implemented") + } + } + @Test fun testNoUsernameNoCurrentUser() { val state = SavedStateHandle( @@ -144,6 +174,8 @@ internal class ProfileFragmentViewModelTest { val storiesRepository = StoriesRepository(storiesService) val mediaRepository = MediaRepository(mediaService) val graphQLRepository = GraphQLRepository(graphQLService) + val accountDataSource = AccountDataSource(accountDao) + val accountRepository = AccountRepository(accountDataSource) val viewModel = ProfileFragmentViewModel( state, userRepository, @@ -151,6 +183,7 @@ internal class ProfileFragmentViewModelTest { storiesRepository, mediaRepository, graphQLRepository, + accountRepository, ) } } \ No newline at end of file