diff --git a/core-java-modules/core-java-currency/README.md b/core-java-modules/core-java-currency/README.md new file mode 100644 index 000000000000..e9ce3350bfde --- /dev/null +++ b/core-java-modules/core-java-currency/README.md @@ -0,0 +1 @@ +#core-java-currency \ No newline at end of file diff --git a/core-java-modules/core-java-currency/pom.xml b/core-java-modules/core-java-currency/pom.xml new file mode 100644 index 000000000000..1c1845629a5e --- /dev/null +++ b/core-java-modules/core-java-currency/pom.xml @@ -0,0 +1,43 @@ + + + 4.0.0 + core-java-currency + jar + core-java-currency + + + com.baeldung.core-java-modules + core-java-modules + 0.0.1-SNAPSHOT + + + + + org.projectlombok + lombok + ${lombok.version} + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + --enable-preview + + + + + + + 17 + 17 + 1.18.24 + + + \ No newline at end of file diff --git a/core-java-modules/core-java-currency/src/main/java/com/baeldung/currency/utils/CurrencyLocaleUtil.java b/core-java-modules/core-java-currency/src/main/java/com/baeldung/currency/utils/CurrencyLocaleUtil.java new file mode 100644 index 000000000000..fb5659944996 --- /dev/null +++ b/core-java-modules/core-java-currency/src/main/java/com/baeldung/currency/utils/CurrencyLocaleUtil.java @@ -0,0 +1,11 @@ +package com.baeldung.currency.utils; + +import java.util.Currency; +import java.util.Locale; + +public class CurrencyLocaleUtil { + public String getSymbolForLocale(Locale locale) { + Currency currency = Currency.getInstance(locale); + return currency.getSymbol(); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-currency/src/main/java/com/baeldung/currency/utils/CurrencyMapUtil.java b/core-java-modules/core-java-currency/src/main/java/com/baeldung/currency/utils/CurrencyMapUtil.java new file mode 100644 index 000000000000..17ed3b9ac6a6 --- /dev/null +++ b/core-java-modules/core-java-currency/src/main/java/com/baeldung/currency/utils/CurrencyMapUtil.java @@ -0,0 +1,15 @@ +package com.baeldung.currency.utils; + +import java.util.Map; + +public class CurrencyMapUtil { + private static final Map currencymap = Map.of( + "USD", "$", + "EUR", "€", + "INR", "₹" + ); + + public static String getSymbol(String currencyCode) { + return currencymap.getOrDefault(currencyCode, "Unknown"); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-currency/src/main/java/com/baeldung/currency/utils/CurrencyUtil.java b/core-java-modules/core-java-currency/src/main/java/com/baeldung/currency/utils/CurrencyUtil.java new file mode 100644 index 000000000000..1cfe4cbade4c --- /dev/null +++ b/core-java-modules/core-java-currency/src/main/java/com/baeldung/currency/utils/CurrencyUtil.java @@ -0,0 +1,10 @@ +package com.baeldung.currency.utils; + +import java.util.Currency; + +public class CurrencyUtil { + public static String getSymbol(String currencyCode) { + Currency currency = Currency.getInstance(currencyCode); + return currency.getSymbol(); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-currency/src/test/java/com/baeldung/currency/utils/CurrencyLocaleUtilTest.java b/core-java-modules/core-java-currency/src/test/java/com/baeldung/currency/utils/CurrencyLocaleUtilTest.java new file mode 100644 index 000000000000..fbeacfdefb88 --- /dev/null +++ b/core-java-modules/core-java-currency/src/test/java/com/baeldung/currency/utils/CurrencyLocaleUtilTest.java @@ -0,0 +1,15 @@ +package com.baeldung.currency.utils; + +import org.junit.jupiter.api.Test; +import java.util.Locale; +import static org.junit.jupiter.api.Assertions.*; + +class CurrencyLocaleUtilTest { + private final CurrencyLocaleUtil currencyLocale = new CurrencyLocaleUtil(); + + @Test + void givenLocale_whenGetSymbolForLocale_thenReturnsLocalizedSymbol() { + assertEquals("$", currencyLocale.getSymbolForLocale(Locale.US)); + assertEquals("€", currencyLocale.getSymbolForLocale(Locale.FRANCE)); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-currency/src/test/java/com/baeldung/currency/utils/CurrencyMapUtilTest.java b/core-java-modules/core-java-currency/src/test/java/com/baeldung/currency/utils/CurrencyMapUtilTest.java new file mode 100644 index 000000000000..21f6e019e391 --- /dev/null +++ b/core-java-modules/core-java-currency/src/test/java/com/baeldung/currency/utils/CurrencyMapUtilTest.java @@ -0,0 +1,18 @@ +package com.baeldung.currency.utils; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +class CurrencyMapUtilTest { + @Test + void givenValidCurrencyCode_whenGetSymbol_thenReturnsCorrectSymbol() { + assertEquals("$", CurrencyMapUtil.getSymbol("USD")); + assertEquals("€", CurrencyMapUtil.getSymbol("EUR")); + assertEquals("₹", CurrencyMapUtil.getSymbol("INR")); + } + + @Test + void givenInvalidCurrencyCode_whenGetSymbol_thenReturnsUnknown() { + assertEquals("Unknown", CurrencyMapUtil.getSymbol("XYZ")); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-currency/src/test/java/com/baeldung/currency/utils/CurrencyUtilTest.java b/core-java-modules/core-java-currency/src/test/java/com/baeldung/currency/utils/CurrencyUtilTest.java new file mode 100644 index 000000000000..548cc9fc87fc --- /dev/null +++ b/core-java-modules/core-java-currency/src/test/java/com/baeldung/currency/utils/CurrencyUtilTest.java @@ -0,0 +1,17 @@ +package com.baeldung.currency.utils; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +class CurrencyUtilTest { + @Test + void givenValidCurrencyCode_whenGetSymbol_thenReturnsCorrectSymbol() { + assertEquals("$", CurrencyUtil.getSymbol("USD")); + assertEquals("€", CurrencyUtil.getSymbol("EUR")); + } + + @Test + void givenInvalidCurrencyCode_whenGetSymbol_thenThrowsException() { + assertThrows(IllegalArgumentException.class, () -> CurrencyUtil.getSymbol("INVALID")); + } +} \ No newline at end of file diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index b84baf6e3d0a..93ea3526eca0 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -123,6 +123,7 @@ core-java-concurrency-collections core-java-concurrency-collections-2 core-java-console + core-java-currency core-java-datetime-string-2 core-java-date-operations core-java-date-operations-2