Skip to content

Commit 24be6aa

Browse files
committed
feat: move tests to related unit test cases
1 parent 5ae5708 commit 24be6aa

File tree

8 files changed

+61
-27
lines changed

8 files changed

+61
-27
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package tv.codely.checkout;
2+
3+
public final class InvalidSubscriptionTierPrice extends RuntimeException {
4+
5+
public InvalidSubscriptionTierPrice(final String message) {
6+
super(message);
7+
}
8+
}

exercises/tiered_pricing/solutions/adrianliz/java/src/main/java/tv/codely/checkout/PriceNotFound.java

Lines changed: 0 additions & 8 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package tv.codely.checkout;
2+
3+
public final class SubscriptionTierNotFound extends RuntimeException {
4+
5+
public SubscriptionTierNotFound(int numberOfSubscriptions) {
6+
super(String.format("Subscription tier not found for %d numberOfSubscriptions",
7+
numberOfSubscriptions));
8+
}
9+
}

exercises/tiered_pricing/solutions/adrianliz/java/src/main/java/tv/codely/checkout/SubscriptionTierPrice.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,16 @@ public final class SubscriptionTierPrice {
77
private final double value;
88

99
public SubscriptionTierPrice(double value) {
10+
validate(value);
1011
this.value = value;
1112
}
1213

14+
private static void validate(double value) {
15+
if (value < 1) {
16+
throw new InvalidSubscriptionTierPrice("The price cannot be negative");
17+
}
18+
}
19+
1320
public double unitPrice() {
1421
return value;
1522
}

exercises/tiered_pricing/solutions/adrianliz/java/src/main/java/tv/codely/checkout/SubscriptionTiers.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ private SubscriptionTier findSuitableTier(int numberOfSubscriptions) {
2929
return tiers.stream()
3030
.filter(tier -> tier.isInRange(numberOfSubscriptions))
3131
.findFirst()
32-
.orElseThrow(() -> new PriceNotFound(numberOfSubscriptions));
32+
.orElseThrow(() -> new SubscriptionTierNotFound(numberOfSubscriptions));
3333
}
3434

3535
public double getTotalPrice(int numberOfSubscriptions) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package tv.codely.checkout;
2+
3+
import static org.junit.jupiter.api.Assertions.assertThrows;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
public final class SubscriptionTierPriceShould {
8+
9+
@Test
10+
void throw_invalid_subscription_tier_price_if_price_is_less_than_1() {
11+
assertThrows(InvalidSubscriptionTierPrice.class, () -> new SubscriptionTierPrice(0));
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package tv.codely.checkout;
2+
3+
import static org.junit.jupiter.api.Assertions.assertThrows;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
public final class SubscriptionTierRangeShould {
8+
9+
@Test
10+
void throw_invalid_subscription_tier_range_if_number_of_subscriptions_is_less_than_1() {
11+
assertThrows(InvalidSubscriptionTierRange.class, () -> SubscriptionTierRange.first(0));
12+
}
13+
14+
@Test
15+
void throw_invalid_subscription_tier_range_if_previous_range_does_not_exist() {
16+
assertThrows(InvalidSubscriptionTierRange.class, () -> SubscriptionTierRange.last(null));
17+
}
18+
19+
}

exercises/tiered_pricing/solutions/adrianliz/java/src/test/java/tv/codely/checkout/TieredPricingShould.java

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
44
import static org.junit.jupiter.api.Assertions.assertThrows;
5-
import static org.junit.jupiter.api.Assertions.assertTrue;
65

76
import java.util.Set;
87
import org.junit.jupiter.api.Test;
@@ -37,11 +36,6 @@ private static Set<SubscriptionTier> defaultSubscriptionTiers() {
3736
new SubscriptionTierPrice(149)));
3837
}
3938

40-
@Test
41-
void unit_test_example() {
42-
assertTrue(true);
43-
}
44-
4539
@Test
4640
void return_total_price_based_on_number_of_subscriptions() {
4741
final var subscriptionTiers = SubscriptionTierMother.randoms();
@@ -115,18 +109,10 @@ void throw_invalid_subscription_tiers_if_there_is_no_last_tier() {
115109
}
116110

117111
@Test
118-
void throw_invalid_subscription_tier_range_if_number_of_susbcriptions_is_less_than_1() {
119-
assertThrows(InvalidSubscriptionTierRange.class, () -> SubscriptionTierRange.first(0));
120-
}
121-
122-
@Test
123-
void throw_invalid_subscription_tier_range_if_previous_range_does_not_exist() {
124-
assertThrows(InvalidSubscriptionTierRange.class, () -> SubscriptionTierRange.last(null));
125-
}
126-
127-
@Test
128-
void throw_price_not_found_if_number_of_subscriptions_is_not_valid() {
112+
void throw_subscription_tier_not_found_if_number_of_subscriptions_does_not_match_any_tier() {
129113
final var tieredPricing = new TieredPricing(defaultSubscriptionTiers());
130-
assertThrows(PriceNotFound.class, () -> tieredPricing.getTotalPrice(0));
114+
final var numberOfSubscriptions = 0;
115+
assertThrows(SubscriptionTierNotFound.class,
116+
() -> tieredPricing.getTotalPrice(numberOfSubscriptions));
131117
}
132118
}

0 commit comments

Comments
 (0)