Skip to content

Instantly share code, notes, and snippets.

@BartoszJarocki
Created May 13, 2017 15:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BartoszJarocki/a8773524db3e84160fafe317211f3676 to your computer and use it in GitHub Desktop.
Save BartoszJarocki/a8773524db3e84160fafe317211f3676 to your computer and use it in GitHub Desktop.
public class ContributorsPresenterTest {
private static final String REPO = "owner";
private static final String OWNER = "repo";
private static final boolean PULL_TO_REFRESH = false;
@Mock ContributorsView contributorsView;
@Mock GithubApi githubApi;
@Mock Box<ContributorEntity> localContributorBox;
LocalRepository localRepository;
RemoteRepository remoteRepository;
ContributorsJsonsToContributorListMapper mapper = new ContributorsJsonsToContributorListMapper();
AppRepository appRepository;
ThreadConfiguration threadConfiguration =
new ThreadConfiguration(Schedulers.immediate(), Schedulers.immediate());
@Before
public void before() {
MockitoAnnotations.initMocks(this);
localRepository = new LocalRepository(localContributorBox, threadConfiguration);
remoteRepository = new RemoteRepository(localRepository, githubApi, threadConfiguration);
appRepository = new AppRepository(localRepository, remoteRepository);
}
@Test
public void loadContributors() throws Exception {
ContributorsPresenter contributorsPresenter = new ContributorsPresenter(appRepository);
contributorsPresenter.attachView(contributorsView);
List<ContributorJson> contributors = getContributors();
when(githubApi.contributors(OWNER, REPO)).thenReturn(
Observable.just(Response.success(contributors)));
contributorsPresenter.loadContributors(OWNER, REPO, PULL_TO_REFRESH);
verify(contributorsView).showProgress(PULL_TO_REFRESH);
verify(githubApi).contributors(OWNER, REPO);
verify(contributorsView).showContributors(mapper.map(contributors));
verifyNoMoreInteractions(contributorsView);
verifyNoMoreInteractions(githubApi);
}
@Test
public void loadContributorsEmpty() throws Exception {
ContributorsPresenter contributorsPresenter = new ContributorsPresenter(appRepository);
contributorsPresenter.attachView(contributorsView);
when(githubApi.contributors(OWNER, REPO)).thenReturn(
Observable.just(Response.success(new ArrayList<>())));
when(localContributorBox.getAll()).thenReturn(new ArrayList<>());
contributorsPresenter.loadContributors(OWNER, REPO, PULL_TO_REFRESH);
verify(contributorsView).showProgress(PULL_TO_REFRESH);
verify(githubApi).contributors(OWNER, REPO);
verify(contributorsView).showEmpty();
verifyNoMoreInteractions(contributorsView);
verifyNoMoreInteractions(githubApi);
}
List<ContributorJson> getContributors() {
List<ContributorJson> contributors = new ArrayList<>();
contributors.add(new ContributorJson("testuser", 12, "avatar_url"));
return contributors;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment