diff --git a/src/main/java/RewardValue.java b/src/main/java/RewardValue.java new file mode 100644 index 000000000..6dab49908 --- /dev/null +++ b/src/main/java/RewardValue.java @@ -0,0 +1,27 @@ +public class RewardValue { + private double cashValue; + private double milesValue; + private static final double MILES_TO_CASH_CONVERSION_RATE = 0.0035; + + // Constructor for cash value + public RewardValue(double cashValue) { + this.cashValue = cashValue; + this.milesValue = cashValue / MILES_TO_CASH_CONVERSION_RATE; + } + + // Constructor for miles value + public RewardValue(int milesValue) { + this.milesValue = milesValue; + this.cashValue = milesValue * MILES_TO_CASH_CONVERSION_RATE; + } + + // Get the cash value + public double getCashValue() { + return cashValue; + } + + // Get the miles value + public double getMilesValue() { + return milesValue; + } +} diff --git a/src/main/java/RewardsConverter.java b/src/main/java/RewardsConverter.java index 2c35d11a5..6e2744b89 100644 --- a/src/main/java/RewardsConverter.java +++ b/src/main/java/RewardsConverter.java @@ -2,19 +2,19 @@ public class RewardsConverter { public static void main(String[] args) { - var scanner = new Scanner(System.in); + Scanner scanner = new Scanner(System.in); System.out.println("Welcome to the Credit Card Rewards Converter!"); - System.out.println("Please enter a cash value to convert to airline miles: "); - var input_value = scanner.nextLine(); + System.out.println("Please enter a cash value to convert to airline miles:"); + String inputValue = scanner.nextLine(); double cashValue; try { - cashValue = Double.parseDouble(input_value); + cashValue = Double.parseDouble(inputValue); } catch (NumberFormatException exception) { - System.out.println("Could not parse input value as a double, exiting"); + System.out.println("Could not parse input value as a double, exiting."); return; } - System.out.println("converting $" + input_value + " to miles"); - var rewardsValue = new RewardValue(cashValue); - System.out.println("$" + input_value + " is worth " + rewardsValue.getMilesValue() + " miles"); + System.out.println("Converting $" + inputValue + " to miles."); + RewardValue rewardsValue = new RewardValue(cashValue); + System.out.println("$" + inputValue + " is worth " + rewardsValue.getMilesValue() + " miles."); } -} \ No newline at end of file +} diff --git a/src/test/java/RewardValueTests.java b/src/test/java/RewardValueTests.java index b3a78de7d..840140ead 100644 --- a/src/test/java/RewardValueTests.java +++ b/src/test/java/RewardValueTests.java @@ -1,5 +1,4 @@ import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; public class RewardValueTests { @@ -7,24 +6,33 @@ public class RewardValueTests { @Test void create_with_cash_value() { double cashValue = 100; - var rewardValue = new RewardValue(cashValue); - assertEquals(cashValue, rewardValue.getCashValue()); + RewardValue rewardValue = new RewardValue(cashValue); + assertEquals(cashValue, rewardValue.getCashValue(), "Cash value should match the input value."); } @Test void create_with_miles_value() { int milesValue = 10000; - var rewardValue = new RewardValue(milesValue); - assertEquals(milesValue, rewardValue.getMilesValue()); + RewardValue rewardValue = new RewardValue(milesValue); + assertEquals(milesValue, rewardValue.getMilesValue(), "Miles value should match the input value."); } @Test void convert_from_cash_to_miles() { - assert false; + double cashValue = 100; + RewardValue rewardValue = new RewardValue(cashValue); + double expectedMiles = cashValue / 0.0035; + assertEquals(expectedMiles, rewardValue.getMilesValue(), "Conversion from cash to miles should be accurate."); } @Test void convert_from_miles_to_cash() { - assert false; + int milesValue = 10000; + RewardValue rewardValue = new RewardValue(milesValue); + double expectedCash = milesValue * 0.0035; + assertEquals(expectedCash, rewardValue.getCashValue(), "Conversion from miles to cash should be accurate."); } } + + +