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/CurrencyConvert.java b/src/main/java/CurrencyConvert.java new file mode 100644 index 0000000..fe06869 --- /dev/null +++ b/src/main/java/CurrencyConvert.java @@ -0,0 +1,37 @@ +import java.text.NumberFormat; +import java.util.HashMap; + +public class CurrencyConvert { + + + private HashMap converter; + + + public CurrencyConvert() { + 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) { + CurrencyConvert test = new CurrencyConvert(); + System.out.println(test.makeConversion("CAD", "CHF", 200.00F)); + } + } + diff --git a/src/test/java/CurrencyConvertTest.java b/src/test/java/CurrencyConvertTest.java new file mode 100644 index 0000000..ead10a7 --- /dev/null +++ b/src/test/java/CurrencyConvertTest.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 CurrencyConvertTest { + private static CurrencyConvert test; + + @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); + }}; + test = new CurrencyConvert(); + } + + @Test + public void dollarToEuro() { + String actual = test.makeConversion("USD", "EUR", 500.00F); + Assert.assertEquals("$470.00", actual); + } + + @Test + public void euroToDollar() { + String actual = test.makeConversion("EUR", "USD", 500.00F); + Assert.assertEquals("$531.91", actual); + } + + @Test + public void britishPoundToDollar() { + String actual = test.makeConversion("GBP", "USD", 500.00F); + Assert.assertEquals("$609.76", actual); + } + + + @Test + public void euroToBritishPound() { + String actual = test.makeConversion("EUR", "GBP", 500.00F); + Assert.assertEquals("$436.17", actual); + } + + + @Test + public void britishPoundToIndianRupee() { + String actual = test.makeConversion("GBP", "INR", 500.00F); + Assert.assertEquals("$41,658.54", actual); + } + + + @Test + public void rupeeToCanadianDollar() { + String actual = test.makeConversion("INR", "CAD", 500.00F); + Assert.assertEquals("$9.66", actual); + } + + + @Test + public void canadianDollarToSingaporeDollar() { + String actual = test.makeConversion("CAD", "SGD", 500.00F); + Assert.assertEquals("$541.67", actual); + } + + @Test + public void SingaporeDollarToSwissFranc() { + String actual = test.makeConversion("SGD", "CHF", 500.00F); + Assert.assertEquals("$353.15", actual); + } + + @Test + public void SwissFrancToMalaysianRinggit() { + String actual = test.makeConversion("CHF", "MYR", 500.00F); + Assert.assertEquals("$2,212.87", actual); + } + + @Test + public void MalaysianRinggitToJapaneseYen() { + String actual = test.makeConversion("MYR", "JPY", 500.00F); + Assert.assertEquals("$12,957.50", actual); + } + + @Test + public void JapaneseYenToChineseYuanRenminbi() { + String actual = test.makeConversion("JPY", "CNY", 500.00F); + Assert.assertEquals("$29.87", actual); + } + + } + diff --git a/target/classes/CurrencyConvert.class b/target/classes/CurrencyConvert.class new file mode 100644 index 0000000..4b05de8 Binary files /dev/null and b/target/classes/CurrencyConvert.class differ diff --git a/target/test-classes/CurrencyConvertTest$1.class b/target/test-classes/CurrencyConvertTest$1.class new file mode 100644 index 0000000..d4fdd9a Binary files /dev/null and b/target/test-classes/CurrencyConvertTest$1.class differ diff --git a/target/test-classes/CurrencyConvertTest.class b/target/test-classes/CurrencyConvertTest.class new file mode 100644 index 0000000..0c1954f Binary files /dev/null and b/target/test-classes/CurrencyConvertTest.class differ