package com.alorma.github.di.tags; import com.alorma.github.injector.named.IOScheduler; import com.alorma.github.injector.named.MainScheduler; import com.alorma.github.presenter.repos.releases.tags.RepositoryTagsPresenter; import com.alorma.github.presenter.repos.releases.tags.TagsCacheDataSource; import org.mockito.Mockito; import javax.inject.Singleton; import core.repositories.releases.tags.TagsCloudDataSource; import core.repositories.releases.tags.TagsRetrofitWrapper; import core.repository.GenericRepository; import dagger.Module; import dagger.Provides; import rx.Scheduler; @Module public class TagsTestModule { public TagsTestModule() { } @Provides @Singleton TagsRetrofitWrapper provideTagsRetrofitWrapper(){ return Mockito.mock(TagsRetrofitWrapper.class); } @Provides @Singleton TagsCloudDataSource provideTagsCloudDataSource() { return Mockito.mock(TagsCloudDataSource.class); } @Provides @Singleton TagsCacheDataSource provideTagsCacheDataSource(){ return Mockito.mock(TagsCacheDataSource.class); } @Provides @Singleton RepositoryTagsPresenter provideRepositoryTagsPresenter( @MainScheduler Scheduler mainScheduler, @IOScheduler Scheduler ioScheduler, TagsCacheDataSource tagsCacheDataSource, TagsCloudDataSource tagsCloudDataSource) { return new RepositoryTagsPresenter( mainScheduler, ioScheduler, new GenericRepository<>(tagsCacheDataSource, tagsCloudDataSource)); } }