|
|
|
|
@ -16,7 +16,6 @@
|
|
|
|
|
|
|
|
|
|
package com.google.samples.apps.nowinandroid.core.data.test
|
|
|
|
|
|
|
|
|
|
import com.google.samples.apps.nowinandroid.core.data.di.DataModule
|
|
|
|
|
import com.google.samples.apps.nowinandroid.core.data.repository.NewsRepository
|
|
|
|
|
import com.google.samples.apps.nowinandroid.core.data.repository.RecentSearchRepository
|
|
|
|
|
import com.google.samples.apps.nowinandroid.core.data.repository.SearchContentsRepository
|
|
|
|
|
@ -29,47 +28,15 @@ import com.google.samples.apps.nowinandroid.core.data.test.repository.FakeTopics
|
|
|
|
|
import com.google.samples.apps.nowinandroid.core.data.test.repository.FakeUserDataRepository
|
|
|
|
|
import com.google.samples.apps.nowinandroid.core.data.util.NetworkMonitor
|
|
|
|
|
import com.google.samples.apps.nowinandroid.core.data.util.TimeZoneMonitor
|
|
|
|
|
import dagger.Binds
|
|
|
|
|
import dagger.Module
|
|
|
|
|
import dagger.hilt.components.SingletonComponent
|
|
|
|
|
import dagger.hilt.testing.TestInstallIn
|
|
|
|
|
|
|
|
|
|
@Module
|
|
|
|
|
@TestInstallIn(
|
|
|
|
|
components = [SingletonComponent::class],
|
|
|
|
|
replaces = [DataModule::class],
|
|
|
|
|
)
|
|
|
|
|
internal interface TestDataModule {
|
|
|
|
|
@Binds
|
|
|
|
|
fun bindsTopicRepository(
|
|
|
|
|
fakeTopicsRepository: FakeTopicsRepository,
|
|
|
|
|
): TopicsRepository
|
|
|
|
|
|
|
|
|
|
@Binds
|
|
|
|
|
fun bindsNewsResourceRepository(
|
|
|
|
|
fakeNewsRepository: FakeNewsRepository,
|
|
|
|
|
): NewsRepository
|
|
|
|
|
|
|
|
|
|
@Binds
|
|
|
|
|
fun bindsUserDataRepository(
|
|
|
|
|
userDataRepository: FakeUserDataRepository,
|
|
|
|
|
): UserDataRepository
|
|
|
|
|
|
|
|
|
|
@Binds
|
|
|
|
|
fun bindsRecentSearchRepository(
|
|
|
|
|
recentSearchRepository: FakeRecentSearchRepository,
|
|
|
|
|
): RecentSearchRepository
|
|
|
|
|
|
|
|
|
|
@Binds
|
|
|
|
|
fun bindsSearchContentsRepository(
|
|
|
|
|
searchContentsRepository: FakeSearchContentsRepository,
|
|
|
|
|
): SearchContentsRepository
|
|
|
|
|
|
|
|
|
|
@Binds
|
|
|
|
|
fun bindsNetworkMonitor(
|
|
|
|
|
networkMonitor: AlwaysOnlineNetworkMonitor,
|
|
|
|
|
): NetworkMonitor
|
|
|
|
|
|
|
|
|
|
@Binds
|
|
|
|
|
fun binds(impl: DefaultZoneIdTimeZoneMonitor): TimeZoneMonitor
|
|
|
|
|
import org.koin.core.qualifier.named
|
|
|
|
|
import org.koin.dsl.module
|
|
|
|
|
|
|
|
|
|
val testDataModule = module {
|
|
|
|
|
single<TopicsRepository> { FakeTopicsRepository(get(named("IoDispatcher")), get()) }
|
|
|
|
|
single<NewsRepository> { FakeNewsRepository(get(named("IoDispatcher")), get()) }
|
|
|
|
|
single<UserDataRepository> { FakeUserDataRepository(get()) }
|
|
|
|
|
single<RecentSearchRepository> { FakeRecentSearchRepository() }
|
|
|
|
|
single<SearchContentsRepository> { FakeSearchContentsRepository() }
|
|
|
|
|
single<NetworkMonitor> { AlwaysOnlineNetworkMonitor() }
|
|
|
|
|
single<TimeZoneMonitor> { DefaultZoneIdTimeZoneMonitor() }
|
|
|
|
|
}
|