package com.kickstarter.libs.utils;
import com.kickstarter.factories.RewardFactory;
import com.kickstarter.models.Reward;
import junit.framework.TestCase;
public final class RewardUtilsTest extends TestCase {
public void testHasBackers() {
assertTrue(RewardUtils.hasBackers(RewardFactory.backers()));
assertFalse(RewardUtils.hasBackers(RewardFactory.noBackers()));
}
public void testIsLimited() {
final Reward rewardWithRemaining = RewardFactory.reward().toBuilder()
.remaining(5)
.limit(10)
.build();
assertTrue(RewardUtils.isLimited(rewardWithRemaining));
final Reward rewardWithNoneRemaining = RewardFactory.reward().toBuilder()
.remaining(0)
.limit(10)
.build();
assertFalse(RewardUtils.isLimited(rewardWithNoneRemaining));
final Reward rewardWithNoLimitAndRemainingSet = RewardFactory.reward().toBuilder()
.remaining(null)
.limit(null)
.build();
assertFalse(RewardUtils.isLimited(rewardWithNoLimitAndRemainingSet));
}
public void testIsItemized() {
assertFalse(RewardUtils.isItemized(RewardFactory.reward()));
assertTrue(RewardUtils.isItemized(RewardFactory.itemized()));
}
public void testIsLimitReachedWhenLimitSetAndRemainingIsZero() {
final Reward reward = RewardFactory.reward().toBuilder()
.limit(100)
.remaining(0)
.build();
assertTrue(RewardUtils.isLimitReached(reward));
}
public void testIsLimitNotReachedWhenLimitSetButRemainingIsNull() {
final Reward reward = RewardFactory.reward().toBuilder()
.limit(100)
.build();
assertFalse(RewardUtils.isLimitReached(reward));
}
public void testIsLimitReachedWhenRemainingIsGreaterThanZero() {
final Reward reward = RewardFactory.reward().toBuilder()
.limit(100)
.remaining(50)
.build();
assertFalse(RewardUtils.isLimitReached(reward));
}
public void testIsReward() {
assertTrue(RewardUtils.isReward(RewardFactory.reward()));
assertFalse(RewardUtils.isReward(RewardFactory.noReward()));
}
public void testIsNoReward() {
assertTrue(RewardUtils.isNoReward(RewardFactory.noReward()));
assertFalse(RewardUtils.isNoReward(RewardFactory.reward()));
}
public void testIsShippable() {
final Reward rewardWithNullShippingEnabled = RewardFactory.reward().toBuilder()
.shippingEnabled(null)
.build();
assertFalse(RewardUtils.isShippable(rewardWithNullShippingEnabled));
final Reward rewardWithFalseShippingEnabled = RewardFactory.reward().toBuilder()
.shippingEnabled(false)
.build();
assertFalse(RewardUtils.isShippable(rewardWithFalseShippingEnabled));
final Reward rewardWithShippingEnabled = RewardFactory.reward().toBuilder()
.shippingEnabled(true)
.build();
assertTrue(RewardUtils.isShippable(rewardWithShippingEnabled));
}
}