use of com.kickstarter.models.Reward in project android-oss by kickstarter.
the class RewardViewModelTest method testGoToCheckoutWhenProjectIsLive.
@Test
public void testGoToCheckoutWhenProjectIsLive() {
final RewardViewModel vm = new RewardViewModel(environment());
final Reward reward = RewardFactory.reward();
final TestSubscriber<Pair<Project, Reward>> startCheckoutTest = TestSubscriber.create();
vm.outputs.goToCheckout().subscribe(startCheckoutTest);
final Project liveProject = ProjectFactory.project();
vm.inputs.projectAndReward(liveProject, reward);
startCheckoutTest.assertNoValues();
// When a reward from a live project is clicked, start checkout.
vm.inputs.rewardClicked();
startCheckoutTest.assertValue(Pair.create(liveProject, reward));
}
use of com.kickstarter.models.Reward in project android-oss by kickstarter.
the class RewardViewModelTest method testUsdConversionNotShownForUSProject.
@Test
public void testUsdConversionNotShownForUSProject() {
// Set user's country to US.
final Config config = ConfigFactory.configForUSUser();
final Environment environment = environment();
final CurrentConfigType currentConfig = environment.currentConfig();
environment.currentConfig().config(config);
final RewardViewModel vm = new RewardViewModel(environment);
// Set project's country to US.
final Project project = ProjectFactory.project().toBuilder().country("US").build();
final Reward reward = RewardFactory.reward();
final TestSubscriber<String> usdConversionTextViewText = TestSubscriber.create();
vm.outputs.usdConversionTextViewText().subscribe(usdConversionTextViewText);
final TestSubscriber<Boolean> usdConversionSectionIsHidden = TestSubscriber.create();
vm.outputs.usdConversionTextViewIsHidden().subscribe(usdConversionSectionIsHidden);
// USD conversion should not be shown.
vm.inputs.projectAndReward(project, reward);
usdConversionTextViewText.assertNoValues();
usdConversionSectionIsHidden.assertValue(true);
// Set user's country to CA.
currentConfig.config(ConfigFactory.configForCAUser());
// USD conversion should still not be shown (distinct until changed).
usdConversionTextViewText.assertNoValues();
usdConversionSectionIsHidden.assertValues(true);
}
use of com.kickstarter.models.Reward in project android-oss by kickstarter.
the class RewardViewModelTest method testLimitAndRemaining.
@Test
public void testLimitAndRemaining() {
final RewardViewModel vm = new RewardViewModel(environment());
final Project project = ProjectFactory.project();
final TestSubscriber<Pair<String, String>> limitAndRemainingTextViewTextTest = TestSubscriber.create();
vm.outputs.limitAndRemainingTextViewText().subscribe(limitAndRemainingTextViewTextTest);
final TestSubscriber<Boolean> limitAndRemainingTextViewIsHiddenTest = TestSubscriber.create();
vm.outputs.limitAndRemainingTextViewIsHidden().subscribe(limitAndRemainingTextViewIsHiddenTest);
// When reward is limited, quantity should be shown.
final Reward limitedReward = RewardFactory.reward().toBuilder().limit(10).remaining(5).build();
vm.inputs.projectAndReward(project, limitedReward);
limitAndRemainingTextViewTextTest.assertValue(Pair.create("10", "5"));
limitAndRemainingTextViewIsHiddenTest.assertValue(false);
// When reward's limit has been reached, don't show quantity.
vm.inputs.projectAndReward(project, RewardFactory.limitReached());
limitAndRemainingTextViewIsHiddenTest.assertValues(false, true);
// When reward has no limit, don't show quantity (distinct until changed).
vm.inputs.projectAndReward(project, RewardFactory.reward());
limitAndRemainingTextViewIsHiddenTest.assertValues(false, true);
}
use of com.kickstarter.models.Reward in project android-oss by kickstarter.
the class RewardViewModelTest method testGoToCheckoutWhenProjectIsSuccessfulAndHasBeenBacked.
@Test
public void testGoToCheckoutWhenProjectIsSuccessfulAndHasBeenBacked() {
final RewardViewModel vm = new RewardViewModel(environment());
final Project project = ProjectFactory.backedProject().toBuilder().state(Project.STATE_SUCCESSFUL).build();
final Reward reward = project.backing().reward();
final TestSubscriber<Pair<Project, Reward>> goToCheckoutTest = TestSubscriber.create();
vm.outputs.goToCheckout().subscribe(goToCheckoutTest);
vm.inputs.projectAndReward(project, reward);
goToCheckoutTest.assertNoValues();
vm.inputs.rewardClicked();
goToCheckoutTest.assertNoValues();
}
use of com.kickstarter.models.Reward in project android-oss by kickstarter.
the class RewardViewModelTest method testUsdConversionForNonUSProject.
@Test
public void testUsdConversionForNonUSProject() {
// Set user's country to US.
final Config config = ConfigFactory.configForUSUser();
final Environment environment = environment();
final CurrentConfigType currentConfig = environment.currentConfig();
environment.currentConfig().config(config);
final RewardViewModel vm = new RewardViewModel(environment);
// Set project's country to CA.
final Project project = ProjectFactory.caProject();
final Reward reward = RewardFactory.reward();
final TestSubscriber<String> usdConversionTextViewText = TestSubscriber.create();
vm.outputs.usdConversionTextViewText().subscribe(usdConversionTextViewText);
final TestSubscriber<Boolean> usdConversionSectionIsHidden = TestSubscriber.create();
vm.outputs.usdConversionTextViewIsHidden().subscribe(usdConversionSectionIsHidden);
// USD conversion should be shown.
vm.inputs.projectAndReward(project, reward);
usdConversionTextViewText.assertValueCount(1);
usdConversionSectionIsHidden.assertValue(false);
// Set user's country to CA (any country except the US is fine).
currentConfig.config(ConfigFactory.configForCAUser());
// USD conversion should now be hidden.
usdConversionTextViewText.assertValueCount(1);
usdConversionSectionIsHidden.assertValues(false, true);
}
Aggregations