/** * Copyright (c) 2012, 2014, Credit Suisse (Anatole Tresch), Werner Keil and others by the @author tag. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package org.javamoney.moneta; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; import java.util.Currency; import java.util.Locale; import java.util.Set; import javax.money.CurrencyUnit; import javax.money.Monetary; import org.testng.annotations.Test; /** * Tests for {@link CurrencyUnit} implementation classes. * * @author Anatole Tresch * @author Werner Keil */ public class CurrenciesTest { /** * Test method for * {@link javax.money.Monetary#getCurrency(java.lang.String, String...)} . */ @Test public void testCurrencyValues() { Currency jdkCurrency = Currency.getInstance("CHF"); CurrencyUnit cur = Monetary.getCurrency("CHF"); assertNotNull(cur); assertEquals(jdkCurrency.getCurrencyCode(), cur.getCurrencyCode()); assertEquals(jdkCurrency.getNumericCode(), cur.getNumericCode()); assertEquals(jdkCurrency.getDefaultFractionDigits(), cur.getDefaultFractionDigits()); } /** * Test method for * {@link javax.money.Monetary#getCurrency(java.lang.String, String...)} . */ @Test public void testGetCurrencyString() { CurrencyUnit cur = Monetary.getCurrency("CHF"); assertNotNull(cur); Currency jdkCurrency = Currency.getInstance("CHF"); assertEquals(jdkCurrency.getCurrencyCode(), cur.getCurrencyCode()); assertEquals(jdkCurrency.getNumericCode(), cur.getNumericCode()); assertEquals(jdkCurrency.getDefaultFractionDigits(), cur.getDefaultFractionDigits()); } /** * Test method for * {@link javax.money.Monetary#getCurrencies(java.util.Locale, String...)}. */ @Test public void testGetCurrencyLocale() { Set<CurrencyUnit> cur = Monetary.getCurrencies(Locale.US); assertNotNull(cur); assertTrue(cur.size()==1); Currency jdkCurrency = Currency.getInstance(Locale.US); CurrencyUnit unit = cur.iterator().next(); assertEquals(jdkCurrency.getCurrencyCode(), unit.getCurrencyCode()); assertEquals(jdkCurrency.getNumericCode(), unit.getNumericCode()); assertEquals(jdkCurrency.getDefaultFractionDigits(), unit.getDefaultFractionDigits()); } /** * Test method for * {@link javax.money.Monetary#getCurrency(java.lang.String, String...)}. * . */ @Test public void testGetMultipleInstancesString() { CurrencyUnit cur = Monetary.getCurrency("USD"); CurrencyUnit cur2 = Monetary.getCurrency("USD"); assertNotNull(cur2); assertTrue(cur == cur2); Currency jdkCurrency = Currency.getInstance("USD"); assertEquals(jdkCurrency.getCurrencyCode(), cur.getCurrencyCode()); assertEquals(jdkCurrency.getNumericCode(), cur.getNumericCode()); assertEquals(jdkCurrency.getDefaultFractionDigits(), cur.getDefaultFractionDigits()); } /** * Test method for * {@link javax.money.Monetary#getCurrency(java.lang.String, String...)}. */ @Test public void testGetDifferentCurrencyCodes() { CurrencyUnit cur = Monetary.getCurrency("USD"); assertEquals("USD", cur.getCurrencyCode()); cur = Monetary.getCurrency("EUR"); assertEquals("EUR", cur.getCurrencyCode()); } /** * Test Comparable method for * {@link javax.money.CurrencyUnit}s. */ @Test public void testCompareTo() { CurrencyUnit cur1 = Monetary.getCurrency("USD"); CurrencyUnit cur2 = Monetary.getCurrency("EUR"); assertNotNull(cur1); assertNotNull(cur2); assertTrue(0 < cur1.compareTo(cur2)); assertTrue(0 > cur2.compareTo(cur1)); assertEquals(0, cur1.compareTo(cur1)); assertEquals(0, cur2.compareTo(cur2)); } /** * Test method for {@link CurrencyUnit#toString()} * . */ @Test public void testToString() { CurrencyUnit cur1 = Monetary.getCurrency("USD"); String toString = cur1.toString(); assertNotNull(toString); assertTrue(toString.contains("USD"), "Does not contain currency code."); } }