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() | |
interface ActivityBuildersModule { | |
@ActivityScope | |
@ContributesAndroidInjector(modules = [LoginModule::class, LoginFragmentsBuilderModule::class]) | |
fun contributeMainActivity(): MainActivity | |
} |
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 AppModule { | |
@Singleton | |
@Provides | |
fun provideTasksRemoteDataSource( | |
apiService: ApiService | |
): DataSource { | |
return RemoteDataSource(apiService) | |
} | |
} |
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 | |
interface AppModuleBinds { | |
@Singleton | |
@Binds | |
fun bindRepository(defaultDataRepository: DefaultDataRepository): DataRepository | |
} |
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 NetworkModule { | |
@Singleton | |
@Provides | |
fun provideHttpLoggingInterceptor(): HttpLoggingInterceptor { | |
return HttpLoggingInterceptor() | |
.setLevel(HttpLoggingInterceptor.Level.BODY) | |
} | |
@Singleton | |
@Provides |
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, | |
AppModule::class, AppModuleBinds::class, | |
ViewModelBuilderModule::class, ActivityBuildersModule::class | |
] | |
) | |
interface AppComponent : AndroidInjector<DaggerApplication> { | |
@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
open class BaseApplication : DaggerApplication() { | |
override fun applicationInjector(): AndroidInjector<out DaggerApplication> { | |
return initializeDaggerComponent() | |
} | |
open fun initializeDaggerComponent(): AppComponent { | |
val component: AppComponent = DaggerAppComponent.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
class DefaultDataRepositoryTest { | |
private val remoteDataSource: DataSource = mockk() | |
private lateinit var dataRepository: DefaultDataRepository | |
@Before | |
fun setup() { | |
dataRepository = DefaultDataRepository(remoteDataSource) | |
} | |
@ExperimentalCoroutinesApi |
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
@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
class TestBaseApplication : BaseApplication() { | |
override fun initializeDaggerComponent(): AppComponent { | |
val component: TestAppComponent = DaggerTestAppComponent.factory() | |
.create(this) | |
component.inject(this) | |
return component | |
} | |
} |