diff --git a/pom.xml b/pom.xml index 682d6db..38a32ed 100644 --- a/pom.xml +++ b/pom.xml @@ -9,6 +9,11 @@ 1.0-SNAPSHOT - + + junit + junit + 4.12 + test + \ No newline at end of file diff --git a/src/main/java/DELETEME b/src/main/java/DELETEME deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/java/ExchangeMaster.java b/src/main/java/ExchangeMaster.java new file mode 100644 index 0000000..ced6089 --- /dev/null +++ b/src/main/java/ExchangeMaster.java @@ -0,0 +1,64 @@ +import java.text.DecimalFormat; + +public class ExchangeMaster { + + + + public final double usDollarRate = 1; + public final double euroRate = 0.94; + public final double britishPoundRate = 0.82; + public final double indianRupeeRate = 68.32; + public final double australianDollarRate = 1.35; + public final double canadianDollarRate = 1.32; + public final double singaporeDollarRate = 1.43; + public final double swissFrancRate = 1.01; + public final double malaysianRinggitRate = 4.47; + public final double japaneseYenRate = 115.84; + public final double chineseYuanRenminbiRate = 6.92; + + public String converter (double originalCurrencyAmount, String typeOfOriginalCurrency, String currencyToConvertTo) { + double unformatted = (originalCurrencyAmount/rateReturner(typeOfOriginalCurrency))*rateReturner(currencyToConvertTo); + return formatCurrency(unformatted); + } + + public double rateReturner (String requestedRate) { + String formattedInput = requestedRate.toLowerCase(); + if (formattedInput.equals("us dollar")) { + return usDollarRate; + } else if (formattedInput.equals("british pound")) { + return britishPoundRate; + } else if (formattedInput.equals("euro")) { + return euroRate; + } else if (formattedInput.equals("indian rupee")) { + return indianRupeeRate; + } else if (formattedInput.equals("australian dollar")) { + return australianDollarRate; + } else if (formattedInput.equals("canadian dollar")) { + return canadianDollarRate; + } else if (formattedInput.equals("singapore dollar")) { + return singaporeDollarRate; + } else if (formattedInput.equals("swiss franc")) { + return swissFrancRate; + } else if (formattedInput.equals("malaysian ringgit")) { + return malaysianRinggitRate; + } else if (formattedInput.equals("japanese yen")) { + return japaneseYenRate; + } else if (formattedInput.equals("chinese yuan renminbi")) { + return chineseYuanRenminbiRate; + } else { + return usDollarRate; + } + } + + public String formatCurrency(double value){ + DecimalFormat decimalFormat = new DecimalFormat("#.##"); + String formatted = decimalFormat.format(value); + int length = formatted.length(); + if (formatted.charAt(length - 2) == '.') { + return formatted + '0'; + } else { + return formatted; + } + } + +} diff --git a/src/main/java/UserInput.java b/src/main/java/UserInput.java new file mode 100644 index 0000000..52c979a --- /dev/null +++ b/src/main/java/UserInput.java @@ -0,0 +1,24 @@ +import java.util.Scanner; + +public class UserInput { + + public static void main(String[] args) { + + ExchangeMaster m = new ExchangeMaster(); + + Scanner input = new Scanner(System.in); + + System.out.println("What kind of money you got b?"); + String startingCurrencyType = input.nextLine(); + System.out.println("How many " + startingCurrencyType + " do you have?"); + + Scanner input2 = new Scanner(System.in); + + Double startingAmount = input2.nextDouble(); + System.out.println("And what do you want to convert it to?"); + String targetCurrencyType = input.nextLine(); + System.out.println("You have $" + m.converter(startingAmount, startingCurrencyType, targetCurrencyType) + " in" + targetCurrencyType); + + } + +} diff --git a/src/test/java/DELETEME b/src/test/java/DELETEME deleted file mode 100644 index e69de29..0000000 diff --git a/src/test/java/ExchangeTester.java b/src/test/java/ExchangeTester.java new file mode 100644 index 0000000..56da209 --- /dev/null +++ b/src/test/java/ExchangeTester.java @@ -0,0 +1,138 @@ +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + + + +public class ExchangeTester { + + + @Test + public void testFormatter() { + ExchangeMaster m = new ExchangeMaster(); + double numberToFormat = 36.7569; + String expected = "36.76"; + String actual = m.formatCurrency(numberToFormat); + Assert.assertEquals(expected, actual); + } + + @Test + public void testFormatter2() { + ExchangeMaster m = new ExchangeMaster(); + double numberToFormat = 0.1; + String expected = "0.10"; + String actual = m.formatCurrency(numberToFormat); + Assert.assertEquals(expected, actual); + } + + @Test + public void testDollarToEuro() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "US Dollar"; + String convertTo = "Euro"; + String expected = "9.40"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testEuroToDollar() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "EURO"; + String convertTo = "us DOLLAR"; + String expected = "10.64"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testEuroToPound() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "eurO"; + String convertTo = "british POUnd"; + String expected = "8.72"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testPoundToRupee() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "British Pound"; + String convertTo = "indian rupee"; + String expected = "833.17"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testRupeeToCanada() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "indian ruPEE"; + String convertTo = "canadian dollar"; + String expected = "0.19"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testCanadaToSingapore() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "canadian dollar"; + String convertTo = "singAPORE Dollar"; + String expected = "10.83"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testSingaporeToFranc() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "singapore dollar"; + String convertTo = "swiss franc"; + String expected = "7.06"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testFrancToRinggit() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "SWISS franc"; + String convertTo = "malaysian ringgit"; + String expected = "44.26"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testRinggitToYen() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "MALAYSIAN RINGGIT"; + String convertTo = "japanese yen"; + String expected = "259.15"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + + @Test + public void testYenToRenminbi() { + ExchangeMaster m = new ExchangeMaster(); + double originalAmount = 10.00; + String originalCurrency = "japanese YEN"; + String convertTo = "Chinese Yuan Renminbi"; + String expected = "0.60"; + String actual = m.converter(originalAmount, originalCurrency, convertTo); + Assert.assertEquals(expected, actual); + } + +} diff --git a/target/classes/ExchangeMaster.class b/target/classes/ExchangeMaster.class new file mode 100644 index 0000000..5ae0976 Binary files /dev/null and b/target/classes/ExchangeMaster.class differ diff --git a/target/classes/UserInput.class b/target/classes/UserInput.class new file mode 100644 index 0000000..bea7afc Binary files /dev/null and b/target/classes/UserInput.class differ diff --git a/target/test-classes/ExchangeTester.class b/target/test-classes/ExchangeTester.class new file mode 100644 index 0000000..3907723 Binary files /dev/null and b/target/test-classes/ExchangeTester.class differ