This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class MainViewModel : ViewModel() { | |
private var isSessionExpired = false | |
suspend fun checkSessionExpiry(): Boolean { | |
withContext(Dispatchers.IO) { | |
delay(5_000) // to simulate a heavy weight operations | |
isSessionExpired = true | |
} | |
return isSessionExpired |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class MainViewModel : ViewModel() { | |
private var isSessionExpired = false | |
suspend fun checkSessionExpiry(): Boolean { | |
withContext(Dispatchers.IO) { | |
delay(5_000) // to simulate a heavy weight operations | |
isSessionExpired = true | |
} | |
return isSessionExpired |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Top-level build file where you can add configuration options common to all sub-projects/modules. | |
buildscript { | |
ext.kotlinVersion = "1.4.21" | |
ext.jacoco_version = '0.8.6' | |
repositories { | |
google() | |
jcenter() | |
} | |
dependencies { | |
classpath 'com.android.tools.build:gradle:4.1.2' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class DefaultDataRepositoryTest { | |
@Inject | |
lateinit var dataRepository: DefaultDataRepository | |
@Inject | |
lateinit var remoteDataSource: DataSource | |
@Before | |
fun setup() { | |
val component: TestAppComponent = DaggerTestAppComponent.factory() | |
.create(TestBaseApplication()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
android { | |
compileSdkVersion 30 | |
buildToolsVersion "30.0.2" | |
defaultConfig { | |
applicationId "com.example.dagger" | |
minSdkVersion 16 | |
targetSdkVersion 30 | |
versionCode 1 | |
versionName "1.0" | |
multiDexEnabled true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class CustomTestRunner : AndroidJUnitRunner() { | |
override fun newApplication(cl: ClassLoader?, name: String?, context: Context?): Application { | |
return super.newApplication(cl, TestBaseApplication::class.java.name, context) | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class TestBaseApplication : BaseApplication() { | |
override fun initializeDaggerComponent(): AppComponent { | |
val component: TestAppComponent = DaggerTestAppComponent.factory() | |
.create(this) | |
component.inject(this) | |
return component | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Singleton | |
@Component( | |
modules = [ | |
AndroidInjectionModule::class, NetworkModule::class, | |
TestAppModule::class, AppModuleBinds::class, | |
ViewModelBuilderModule::class, ActivityBuildersModule::class | |
] | |
) | |
interface TestAppComponent : AppComponent { | |
@Component.Factory |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Module | |
class TestAppModule { | |
@Singleton | |
@Provides | |
fun provideTasksRemoteDataSource( | |
apiService: ApiService | |
): DataSource { | |
return mockk() | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class DefaultDataRepositoryTest { | |
private val remoteDataSource: DataSource = mockk() | |
private lateinit var dataRepository: DefaultDataRepository | |
@Before | |
fun setup() { | |
dataRepository = DefaultDataRepository(remoteDataSource) | |
} | |
@ExperimentalCoroutinesApi |