diff --git a/pom.xml b/pom.xml index 682d6db..956fa2e 100644 --- a/pom.xml +++ b/pom.xml @@ -10,5 +10,10 @@ + + junit + junit + RELEASE + \ No newline at end of file diff --git a/src/main/java/CurrencyConverter.java b/src/main/java/CurrencyConverter.java new file mode 100644 index 0000000..955f385 --- /dev/null +++ b/src/main/java/CurrencyConverter.java @@ -0,0 +1,36 @@ +import java.text.NumberFormat; +import java.util.HashMap; + +public class CurrencyConverter { + + + private HashMap converter; + + + public CurrencyConverter() { + converter = new HashMap(); + converter.put("USD", 1.00F); + converter.put("EUR", 0.94F); + converter.put("GBP", 0.82F); + converter.put("INR", 68.32F); + converter.put("AUD", 1.35F); + converter.put("CAD", 1.32F); + converter.put("SGD", 1.43F); + converter.put("CHF", 1.01F); + converter.put("MYR", 4.47F); + converter.put("JPY", 115.84F); + converter.put("CNY", 6.92F); + } + + public String makeConversion(String fromCurrencyCode, String toCurrencyCode, Float amountToConvert) { + NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance(); + String result = currencyFormatter.format(converter.get(toCurrencyCode) / (converter.get(fromCurrencyCode)) * amountToConvert); + return result; + } + + + public static void main(String[] args) { + CurrencyConverter test = new CurrencyConverter(); + System.out.println(test.makeConversion("CAD", "CHF", 200.00F)); + } +} \ No newline at end of file diff --git a/src/test/java/CurrencyConverterTest.java b/src/test/java/CurrencyConverterTest.java new file mode 100644 index 0000000..4d7b516 --- /dev/null +++ b/src/test/java/CurrencyConverterTest.java @@ -0,0 +1,102 @@ +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.HashMap; + +import static org.junit.Assert.*; + +public class CurrencyConverterTest { + private static CurrencyConverter tester; + + @Before + public void setUp() { + HashMap originalRecord = new HashMap() {{ + put("USD", 1.00F); + put("EUR", 0.94F); + put("GBP", 0.82F); + put("INR", 68.32F); + put("AUD", 1.35F); + put("CAD", 1.32F); + put("SGD", 1.43F); + put("CHF", 1.01F); + put("MYR", 4.47F); + put("JPY", 115.84F); + put("CNY", 6.92F); + }}; + tester = new CurrencyConverter(); + } + + @Test + public void dollarToEuro() { + String actual = tester.makeConversion("USD", "EUR", 500.00F); + Assert.assertEquals("$470.00", actual); + } + + @Test + public void euroToDollar() { + String actual = tester.makeConversion("EUR", "USD", 500.00F); + Assert.assertEquals("$531.91", actual); + } + + @Test + public void britishPoundToDollar() { + String actual = tester.makeConversion("GBP", "USD", 500.00F); + Assert.assertEquals("$609.76", actual); + } + + + @Test + public void euroToBritishPound() { + String actual = tester.makeConversion("EUR", "GBP", 500.00F); + Assert.assertEquals("$436.17", actual); + } + + + @Test + public void britishPoundToIndianRupee() { + String actual = tester.makeConversion("GBP", "INR", 500.00F); + Assert.assertEquals("$41,658.54", actual); + } + + + @Test + public void rupeeToCanadianDollar() { + String actual = tester.makeConversion("INR", "CAD", 500.00F); + Assert.assertEquals("$9.66", actual); + } + + + @Test + public void canadianDollarToSingaporeDollar() { + String actual = tester.makeConversion("CAD", "SGD", 500.00F); + Assert.assertEquals("$541.67", actual); + } + + @Test + public void SingaporeDollarToSwissFranc() { + String actual = tester.makeConversion("SGD", "CHF", 500.00F); + Assert.assertEquals("$353.15", actual); + } + + @Test + public void SwissFrancToMalaysianRinggit() { + String actual = tester.makeConversion("CHF", "MYR", 500.00F); + Assert.assertEquals("$2,212.87", actual); + } + + @Test + public void MalaysianRinggitToJapaneseYen() { + String actual = tester.makeConversion("MYR", "JPY", 500.00F); + Assert.assertEquals("$12,957.50", actual); + } + + @Test + public void JapaneseYenToChineseYuanRenminbi() { + String actual = tester.makeConversion("JPY", "CNY", 500.00F); + Assert.assertEquals("$29.87", actual); + } + +} + + diff --git a/target/classes/CurrencyConverter.class b/target/classes/CurrencyConverter.class new file mode 100644 index 0000000..f8eb9dd Binary files /dev/null and b/target/classes/CurrencyConverter.class differ diff --git a/target/test-classes/CurrencyConverterTest$1.class b/target/test-classes/CurrencyConverterTest$1.class new file mode 100644 index 0000000..77a6554 Binary files /dev/null and b/target/test-classes/CurrencyConverterTest$1.class differ diff --git a/target/test-classes/CurrencyConverterTest.class b/target/test-classes/CurrencyConverterTest.class new file mode 100644 index 0000000..426cb89 Binary files /dev/null and b/target/test-classes/CurrencyConverterTest.class differ