|
5 | 5 | import java.util.stream.IntStream; |
6 | 6 |
|
7 | 7 | import static org.junit.jupiter.api.Assertions.assertEquals; |
8 | | -import static tv.codely.checkout.TieredPricing.*; |
9 | 8 |
|
10 | 9 | public class TieredPricingShould { |
11 | 10 |
|
12 | 11 | @Test |
13 | | - void calculate_total_value_for_first_pricing_range() { |
| 12 | + void calculate_total_value_for_first_pricing_tier() { |
14 | 13 | var pricing = new TieredPricing(); |
15 | | - var subscription = retrieveSubscriptionGivenRange(FIRST_RANGE_LOWER_LIMIT, FIRST_RANGE_UPPER_LIMIT); |
16 | | - assertEquals(calculateTotalPriceExpected(FIRST_RANGE_UNIT_PRICE, subscription), pricing.calculateTotalPrice(subscription)); |
| 14 | + var tier = Tier.FIRST; |
| 15 | + var subscription = retrieveSubscriptionGivenTier(tier); |
| 16 | + assertEquals(calculateTotalPriceExpected(tier.getUnitPrice(), subscription), pricing.calculateTotalPrice(subscription)); |
17 | 17 | } |
18 | 18 |
|
19 | 19 | @Test |
20 | | - void calculate_total_value_for_second_pricing_range() { |
| 20 | + void calculate_total_value_for_second_pricing_tier() { |
21 | 21 | var pricing = new TieredPricing(); |
22 | | - var subscription = retrieveSubscriptionGivenRange(SECOND_RANGE_LOWER_LIMIT,SECOND_RANGE_UPPER_LIMIT); |
23 | | - assertEquals(calculateTotalPriceExpected(SECOND_RANGE_UNIT_PRICE, subscription), pricing.calculateTotalPrice(subscription)); |
| 22 | + var tier = Tier.SECOND; |
| 23 | + var subscription = retrieveSubscriptionGivenTier(tier); |
| 24 | + assertEquals(calculateTotalPriceExpected(tier.getUnitPrice(), subscription), pricing.calculateTotalPrice(subscription)); |
24 | 25 | } |
25 | 26 |
|
26 | 27 | @Test |
27 | | - void calculate_total_value_for_third_pricing_range() { |
| 28 | + void calculate_total_value_for_third_pricing_tier() { |
28 | 29 | var pricing = new TieredPricing(); |
29 | | - var subscription = retrieveSubscriptionGivenRange(THIRD_RANGE_LOWER_LIMIT,THIRD_RANGE_UPPER_LIMIT); |
30 | | - assertEquals(calculateTotalPriceExpected(THIRD_RANGE_UNIT_PRICE, subscription), pricing.calculateTotalPrice(subscription)); |
| 30 | + var tier = Tier.THIRD; |
| 31 | + var subscription = retrieveSubscriptionGivenTier(tier); |
| 32 | + assertEquals(calculateTotalPriceExpected(tier.getUnitPrice(), subscription), pricing.calculateTotalPrice(subscription)); |
31 | 33 | } |
32 | 34 |
|
33 | | - private int retrieveSubscriptionGivenRange(int lowerLimit, int upperLimit) { |
34 | | - return IntStream.rangeClosed(lowerLimit, upperLimit).findAny().getAsInt(); |
| 35 | + private int retrieveSubscriptionGivenTier(Tier tier) { |
| 36 | + return IntStream.rangeClosed(tier.getLowerLimit(), tier.getUpperLimit()).findAny().getAsInt(); |
35 | 37 | } |
36 | 38 |
|
37 | 39 | private int calculateTotalPriceExpected(int unitPrice, int subscription) { |
|
0 commit comments