use of com.kickstarter.mock.services.MockApiClient in project android-oss by kickstarter.
the class MessageThreadsViewModelTest method testMailboxTitle.
@Test
public void testMailboxTitle() {
final User user = UserFactory.user();
final ApiClientType apiClient = new MockApiClient() {
@Override
@NonNull
public Observable<User> fetchCurrentUser() {
return Observable.just(user);
}
};
setUpEnvironment(environment().toBuilder().apiClient(apiClient).build());
this.vm.intent(new Intent());
this.vm.inputs.onResume();
this.mailboxTitle.assertValue(R.string.messages_navigation_inbox);
this.vm.inputs.mailbox(Mailbox.SENT);
this.mailboxTitle.assertValues(R.string.messages_navigation_inbox, R.string.messages_navigation_sent);
}
use of com.kickstarter.mock.services.MockApiClient in project android-oss by kickstarter.
the class MessageThreadsViewModelTest method testMessageThreadsEmit_WithProjectIntent.
@Test
public void testMessageThreadsEmit_WithProjectIntent() {
final CurrentUserType currentUser = new MockCurrentUser();
currentUser.login(UserFactory.user().toBuilder().unreadMessagesCount(0).build(), "beefbod5");
final MessageThreadsEnvelope inboxEnvelope = MessageThreadsEnvelopeFactory.messageThreadsEnvelope().toBuilder().messageThreads(Collections.singletonList(MessageThreadFactory.messageThread())).build();
final MessageThreadsEnvelope sentEnvelope = MessageThreadsEnvelopeFactory.messageThreadsEnvelope().toBuilder().messageThreads(Arrays.asList(MessageThreadFactory.messageThread(), MessageThreadFactory.messageThread())).build();
final Project project = ProjectFactory.project().toBuilder().unreadMessagesCount(5).build();
final ApiClientType apiClient = new MockApiClient() {
@Override
@NonNull
public Observable<MessageThreadsEnvelope> fetchMessageThreads(@Nullable final Project project, @NonNull final Mailbox mailbox) {
return Observable.just(mailbox == Mailbox.INBOX ? inboxEnvelope : sentEnvelope);
}
@Override
@NonNull
public Observable<Project> fetchProject(@NonNull final String param) {
return Observable.just(project);
}
};
setUpEnvironment(environment().toBuilder().apiClient(apiClient).currentUser(currentUser).build());
final Intent intent = new Intent().putExtra(IntentKey.PROJECT, project);
this.vm.intent(intent);
this.messageThreadList.assertValueCount(2);
this.messageThreadListCount.assertValues(0, 1);
// Same message threads should not emit again.
this.vm.inputs.onResume();
this.messageThreadList.assertValueCount(2);
this.messageThreadListCount.assertValues(0, 1);
this.vm.inputs.mailbox(Mailbox.SENT);
this.messageThreadList.assertValueCount(4);
this.messageThreadListCount.assertValues(0, 1, 0, 2);
}
use of com.kickstarter.mock.services.MockApiClient in project android-oss by kickstarter.
the class MessageThreadsViewModelTest method testNoUnreadMessages.
@Test
public void testNoUnreadMessages() {
final User user = UserFactory.user().toBuilder().unreadMessagesCount(0).build();
final ApiClientType apiClient = new MockApiClient() {
@Override
@NonNull
public Observable<User> fetchCurrentUser() {
return Observable.just(user);
}
};
setUpEnvironment(environment().toBuilder().apiClient(apiClient).build());
this.vm.intent(new Intent());
this.vm.inputs.onResume();
this.hasNoUnreadMessages.assertValues(true);
this.unreadMessagesCount.assertNoValues();
this.unreadMessagesCountIsGone.assertValue(false);
this.unreadCountTextViewColorInt.assertValues(R.color.kds_support_400);
this.unreadCountTextViewTypefaceInt.assertValues(Typeface.NORMAL);
this.unreadCountToolbarTextViewIsGone.assertValues(true);
this.vm.inputs.mailbox(Mailbox.SENT);
this.unreadMessagesCountIsGone.assertValues(false, true);
}
use of com.kickstarter.mock.services.MockApiClient in project android-oss by kickstarter.
the class ProjectNotificationsViewModelTest method testShowUnableToSaveNotificationError.
@Test
public void testShowUnableToSaveNotificationError() {
final ApiClientType client = new MockApiClient() {
@Override
@NonNull
public Observable<ProjectNotification> updateProjectNotifications(@NonNull final ProjectNotification projectNotification, final boolean checked) {
return Observable.error(ApiExceptionFactory.badRequestException());
}
};
final Environment environment = environment().toBuilder().apiClient(client).build();
this.vm = new ProjectNotificationViewModel.ViewModel(environment);
this.vm.outputs.showUnableToSaveProjectNotificationError().subscribe(this.showUnableToSaveNotificationErrorTest);
this.vm.outputs.enabledSwitch().subscribe(this.enabledSwitchTest);
// Start with a disabled notification.
final ProjectNotification projectNotification = ProjectNotificationFactory.disabled();
this.vm.inputs.projectNotification(projectNotification);
// Switch should be disabled.
this.enabledSwitchTest.assertValue(false);
// Attempt to toggle the notification to true. This should error, and the switch should still be disabled.
this.vm.enabledSwitchClick(true);
this.showUnableToSaveNotificationErrorTest.assertValueCount(1);
this.enabledSwitchTest.assertValue(false);
}
use of com.kickstarter.mock.services.MockApiClient in project android-oss by kickstarter.
the class ActivityFeedViewModelTest method testSurveys_LoggedOut.
@Test
public void testSurveys_LoggedOut() {
final List<SurveyResponse> surveyResponses = Arrays.asList(SurveyResponseFactory.surveyResponse(), SurveyResponseFactory.surveyResponse());
final MockApiClient apiClient = new MockApiClient() {
@Override
@NonNull
public Observable<List<SurveyResponse>> fetchUnansweredSurveys() {
return Observable.just(surveyResponses);
}
};
final CurrentUserType currentUser = new MockCurrentUser();
currentUser.logout();
final Environment environment = this.environment().toBuilder().apiClient(apiClient).currentUser(currentUser).build();
setUpEnvironment(environment);
this.vm.inputs.resume();
this.surveys.assertNoValues();
}
Aggregations