use of com.khmelenko.lab.varis.network.response.User in project Varis-Android by dkhmelenko.
the class RepositoriesPresenter method reloadRepos.
/**
* Starts loading repositories
*/
public void reloadRepos() {
String accessToken = AppSettings.getAccessToken();
if (TextUtils.isEmpty(accessToken)) {
Disposable subscription = mTravisRestClient.getApiService().getRepos("").subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(reposHandler());
mSubscriptions.add(subscription);
} else {
Disposable subscription = mTravisRestClient.getApiService().getUser().doOnSuccess(this::cacheUserData).flatMap(new Function<User, SingleSource<List<Repo>>>() {
@Override
public SingleSource<List<Repo>> apply(@NonNull User user) throws Exception {
String loginName = mUser.getLogin();
return mTravisRestClient.getApiService().getUserRepos(loginName);
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(reposHandler());
mSubscriptions.add(subscription);
}
}
use of com.khmelenko.lab.varis.network.response.User in project Varis-Android by dkhmelenko.
the class TestRepositoriesPresenter method testReloadReposWithToken.
@Test
public void testReloadReposWithToken() {
User user = new User();
user.setLogin("login");
when(mTravisRestClient.getApiService().getUser()).thenReturn(Single.just(user));
// pre-setting access token
AppSettings.putAccessToken("token");
mRepositoriesPresenter.reloadRepos();
verify(mTaskManager).getUser();
ArgumentCaptor<User> userCaptor = ArgumentCaptor.forClass(User.class);
verify(mRepositoriesView, times(2)).updateUserData(userCaptor.capture());
assertNotNull(userCaptor.getValue());
assertEquals(user.getLogin(), userCaptor.getValue().getLogin());
verify(mCacheStorage).saveUser(eq(user));
verify(mTaskManager).userRepos(eq(user.getLogin()));
}
use of com.khmelenko.lab.varis.network.response.User in project Varis-Android by dkhmelenko.
the class CacheStorage method restoreUser.
/**
* Restores user from the cache
*
* @return User
*/
public User restoreUser() {
String fileData = FileUtils.readInternalFile(USER_FILE);
Gson gson = new Gson();
User user = gson.fromJson(fileData, User.class);
return user;
}
Aggregations