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..b55a953 --- /dev/null +++ b/src/main/java/CurrencyConverter.java @@ -0,0 +1,50 @@ +import java.util.HashMap; +import java.text.DecimalFormat; + + /** + * Created by Kibret + */ + +import java.text.NumberFormat; + +public class CurrencyConverter { + + + + private HashMap exchangeRateRecord; + + + public CurrencyConverter () { + exchangeRateRecord = new HashMap(); + exchangeRateRecord.put("USD", 1.00F); + exchangeRateRecord.put("EUR", 0.94F); + exchangeRateRecord.put("GBP", 0.82F); + exchangeRateRecord.put("INR", 68.32F); + exchangeRateRecord.put("AUD", 1.35F); + exchangeRateRecord.put("CAD", 1.32F); + exchangeRateRecord.put("SGD", 1.43F); + exchangeRateRecord.put("CHF", 1.01F); + exchangeRateRecord.put("MYR", 4.47F); + exchangeRateRecord.put("JPY", 115.84F); + exchangeRateRecord.put("CNY", 6.92F); + + } + + + public String currencyConverter(String fromCurrencyCode, String toCurrencyCode, Float amountToConvert) { + DecimalFormat formatter = new DecimalFormat("0.##"); + // NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance(); + String result =formatter.format(exchangeRateRecord.get(toCurrencyCode) / (exchangeRateRecord.get(fromCurrencyCode))* amountToConvert); + return result; + + + } + + + public HashMap getExchangeRateRecord() { + return exchangeRateRecord; + } +} + + + diff --git a/src/main/java/DELETEME b/src/main/java/DELETEME deleted file mode 100644 index e69de29..0000000 diff --git a/src/test/java/CurrencyConverterTest.java b/src/test/java/CurrencyConverterTest.java new file mode 100644 index 0000000..9937fcb --- /dev/null +++ b/src/test/java/CurrencyConverterTest.java @@ -0,0 +1,103 @@ +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.HashMap; + +public class CurrencyConverterTest { + private static CurrencyConverter tester; + + @Before + public void setUp() { + tester = new CurrencyConverter(); + } + @Test + public void testCurrencyConverter() { + String expected = "609.76"; + String actual = tester.currencyConverter("GBP", "USD", 500.00F); + + Assert.assertEquals(expected, actual); + } + @Test + public void dollarToEuro() { + String expected = "470"; + String actual = tester.currencyConverter("USD", "EUR", 500.00F); + Assert.assertEquals(expected, actual); + } + + @Test + public void euroToDollar() { + String expected = "531.91"; + String actual = tester.currencyConverter("EUR", "USD", 500.00F); + Assert.assertEquals(expected, actual); + } + + @Test + public void britishPoundToDollar() { + String expected = "609.76"; + String actual = tester.currencyConverter("GBP", "USD", 500.00F); + Assert.assertEquals(expected, actual); + } + + + @Test + public void euroToBritishPound() { + String expected = "436.17"; + String actual = tester.currencyConverter("EUR", "GBP", 500.00F); + Assert.assertEquals(expected, actual); + } + + + @Test + public void britishPoundToIndianRupee() { + String expected = "41658.54"; + String actual = tester.currencyConverter("GBP", "INR", 500.00F); + Assert.assertEquals(expected, actual); + } + + + @Test + public void rupeeToCanadianDollar() { + String expected = "9.66"; + String actual = tester.currencyConverter("INR", "CAD", 500.00F); + Assert.assertEquals(expected, actual); + } + + + @Test + public void canadianDollarToSingaporeDollar() { + String expected = "541.67"; + String actual = tester.currencyConverter("CAD", "SGD", 500.00F); + Assert.assertEquals(expected, actual); + } + + @Test + public void SingaporeDollarToSwissFranc() { + String expected = "353.15"; + String actual = tester.currencyConverter("SGD", "CHF", 500.00F); + Assert.assertEquals(expected, actual); + } + + @Test + public void SwissFrancToMalaysianRinggit() { + String expected = "2212.87"; + String actual = tester.currencyConverter("CHF", "MYR", 500.00F); + Assert.assertEquals(expected, actual); + } + + @Test + public void MalaysianRinggitToJapaneseYen() { + String expected = "12957.5"; + String actual = tester.currencyConverter("MYR", "JPY", 500.00F); + Assert.assertEquals(expected, actual); + } + + @Test + public void JapaneseYenToChineseYuanRenminbi() { + String expected = "29.87"; + String actual = tester.currencyConverter("JPY", "CNY", 500.00F); + Assert.assertEquals(expected, actual); + } + + +} \ No newline at end of file diff --git a/src/test/java/DELETEME b/src/test/java/DELETEME deleted file mode 100644 index e69de29..0000000 diff --git a/target/classes/CurrencyConverter.class b/target/classes/CurrencyConverter.class new file mode 100644 index 0000000..5e0e350 Binary files /dev/null and b/target/classes/CurrencyConverter.class differ diff --git a/target/test-classes/CurrencyConverterTest.class b/target/test-classes/CurrencyConverterTest.class new file mode 100644 index 0000000..2666135 Binary files /dev/null and b/target/test-classes/CurrencyConverterTest.class differ