use of rx.observers.TestSubscriber in project android-oss by kickstarter.
the class ThanksViewModelTest method testThanksViewModel_dontShowGamesNewsletterDialogIfUserHasAlreadySeen.
@Test
public void testThanksViewModel_dontShowGamesNewsletterDialogIfUserHasAlreadySeen() {
final MockBooleanPreference hasSeenGamesNewsletterPreference = new MockBooleanPreference(true);
final User user = UserFactory.user().toBuilder().gamesNewsletter(false).build();
final CurrentUserType currentUser = new MockCurrentUser(user);
final Environment environment = environment().toBuilder().currentUser(currentUser).hasSeenGamesNewsletterPreference(hasSeenGamesNewsletterPreference).build();
final ThanksViewModel vm = new ThanksViewModel(environment);
final TestSubscriber<Void> showGamesNewsletterDialogTest = new TestSubscriber<>();
vm.outputs.showGamesNewsletterDialog().subscribe(showGamesNewsletterDialogTest);
final Project project = ProjectFactory.project().toBuilder().category(CategoryFactory.tabletopGamesCategory()).build();
vm.intent(new Intent().putExtra(IntentKey.PROJECT, project));
showGamesNewsletterDialogTest.assertValueCount(0);
}
use of rx.observers.TestSubscriber in project android-oss by kickstarter.
the class ThanksViewModelTest method testThanksViewModel_share.
@Test
public void testThanksViewModel_share() {
final ThanksViewModel vm = new ThanksViewModel(environment());
final Project project = ProjectFactory.project();
final TestSubscriber<Project> startShareTest = new TestSubscriber<>();
vm.outputs.startShare().subscribe(startShareTest);
final TestSubscriber<Project> startShareOnFacebookTest = new TestSubscriber<>();
vm.outputs.startShareOnFacebook().subscribe(startShareOnFacebookTest);
final TestSubscriber<Project> startShareOnTwitterTest = new TestSubscriber<>();
vm.outputs.startShareOnTwitter().subscribe(startShareOnTwitterTest);
vm.intent(new Intent().putExtra(IntentKey.PROJECT, project));
vm.inputs.shareClick();
startShareTest.assertValues(project);
koalaTest.assertValues("Checkout Show Share Sheet");
vm.inputs.shareOnFacebookClick();
startShareOnFacebookTest.assertValues(project);
koalaTest.assertValues("Checkout Show Share Sheet", "Checkout Show Share");
vm.inputs.shareOnTwitterClick();
startShareOnTwitterTest.assertValues(project);
koalaTest.assertValues("Checkout Show Share Sheet", "Checkout Show Share", "Checkout Show Share");
}
use of rx.observers.TestSubscriber in project android-oss by kickstarter.
the class ThanksViewModelTest method testThanksViewModel_startDiscovery.
@Test
public void testThanksViewModel_startDiscovery() {
final ThanksViewModel vm = new ThanksViewModel(environment());
final Category category = CategoryFactory.category();
final TestSubscriber<DiscoveryParams> startDiscoveryTest = new TestSubscriber<>();
vm.outputs.startDiscovery().subscribe(startDiscoveryTest);
vm.inputs.categoryClick(null, category);
startDiscoveryTest.assertValues(DiscoveryParams.builder().category(category).build());
koalaTest.assertValue("Checkout Finished Discover More");
}
use of rx.observers.TestSubscriber in project android-oss by kickstarter.
the class ProjectUpdatesViewModelTest method testProjectUpdatesViewModel_StartUpdateActivity.
@Test
public void testProjectUpdatesViewModel_StartUpdateActivity() {
final ProjectUpdatesViewModel.ViewModel vm = new ProjectUpdatesViewModel.ViewModel(environment());
final Project project = ProjectFactory.project();
final Request updateRequest = new Request.Builder().url("https://kck.str/projects/param/param/posts/id").build();
final TestSubscriber<Pair<Project, Update>> startUpdateActivity = new TestSubscriber<>();
vm.outputs.startUpdateActivity().subscribe(startUpdateActivity);
vm.intent(new Intent().putExtra(IntentKey.PROJECT, project));
vm.inputs.goToUpdateRequest(updateRequest);
startUpdateActivity.assertValueCount(1);
koalaTest.assertValues(KoalaEvent.VIEWED_UPDATES, KoalaEvent.VIEWED_UPDATE);
}
use of rx.observers.TestSubscriber in project android-oss by kickstarter.
the class ProjectUpdatesViewModelTest method testProjectUpdatesViewModel_LoadsWebViewUrl.
@Test
public void testProjectUpdatesViewModel_LoadsWebViewUrl() {
final ProjectUpdatesViewModel.ViewModel vm = new ProjectUpdatesViewModel.ViewModel(environment());
final Project project = ProjectFactory.project();
final String anotherIndexUrl = "https://kck.str/projects/param/param/posts?page=another";
final Request anotherIndexRequest = new Request.Builder().url(anotherIndexUrl).build();
final TestSubscriber<String> webViewUrl = new TestSubscriber<>();
vm.outputs.webViewUrl().subscribe(webViewUrl);
// Start the intent with a project.
vm.intent(new Intent().putExtra(IntentKey.PROJECT, project));
// Initial project updates index emits.
webViewUrl.assertValues(project.updatesUrl());
koalaTest.assertValues(KoalaEvent.VIEWED_UPDATES);
// Make a request for another update index.
vm.inputs.goToUpdatesRequest(anotherIndexRequest);
// New updates index url emits. Event is not tracked again.
webViewUrl.assertValues(project.updatesUrl(), anotherIndexUrl);
koalaTest.assertValues(KoalaEvent.VIEWED_UPDATES);
}
Aggregations