1.1 --- a/task2/solution04/test/org/apidesign/apifest08/test/Task1Test.java Wed Oct 01 10:43:05 2008 +0200
1.2 +++ b/task2/solution04/test/org/apidesign/apifest08/test/Task1Test.java Tue Oct 07 00:21:03 2008 +0200
1.3 @@ -3,6 +3,7 @@
1.4
1.5 import java.math.BigDecimal;
1.6 import java.util.Currency;
1.7 +import java.util.Set;
1.8 import junit.framework.TestCase;
1.9 import org.apidesign.apifest08.currency.Convertor;
1.10 import org.apidesign.apifest08.currency.ConvertorFactory;
1.11 @@ -50,7 +51,8 @@
1.12 */
1.13 public static Convertor createCZKtoUSD()
1.14 {
1.15 - return (ConvertorFactory.getConvertor("CZK", BigDecimal.valueOf(17.0), "USD", BigDecimal.valueOf(1)));
1.16 + return (ConvertorFactory.getConvertor("CZK", BigDecimal.valueOf(17.0),
1.17 + "USD", BigDecimal.valueOf(1)));
1.18 }
1.19
1.20 /** Create convertor that understands two currencies, CZK and
1.21 @@ -63,7 +65,8 @@
1.22 */
1.23 public static Convertor createSKKtoCZK()
1.24 {
1.25 - return (ConvertorFactory.getConvertor(Currency.getInstance("SKK"), BigDecimal.valueOf(100), Currency.getInstance("CZK"), BigDecimal.valueOf(80)));
1.26 + return (ConvertorFactory.getConvertor(Currency.getInstance("SKK"), BigDecimal.valueOf(100),
1.27 + Currency.getInstance("CZK"), BigDecimal.valueOf(80)));
1.28 }
1.29
1.30 /** Use the convertor from <code>createCZKtoUSD</code> method and do few conversions
1.31 @@ -180,5 +183,41 @@
1.32 assertEquals(CZK, ex.getCurrencyB());
1.33 }
1.34 }
1.35 +
1.36 + public void testGetCurrencies()
1.37 + {
1.38 + Convertor c;
1.39 + Set<Currency> currencies;
1.40 +
1.41 + c = createSKKtoCZK();
1.42 + currencies = c.getCurrencies();
1.43 + assertEquals(2, currencies.size());
1.44 + assertTrue(currencies.contains(Currency.getInstance("SKK")));
1.45 + assertTrue(currencies.contains(Currency.getInstance("CZK")));
1.46 +
1.47 + c = createCZKtoUSD();
1.48 + currencies = c.getCurrencies();
1.49 + assertEquals(2, currencies.size());
1.50 + assertTrue(currencies.contains(Currency.getInstance("USD")));
1.51 + assertTrue(currencies.contains(Currency.getInstance("CZK")));
1.52 + }
1.53 +
1.54 + public void testGetConverstionRate()
1.55 + throws InvalidConversionException
1.56 + {
1.57 + Convertor c;
1.58 +
1.59 + c = createSKKtoCZK();
1.60 + assertEquals(1.0, c.getConversionRate(Currency.getInstance("CZK"), Currency.getInstance("CZK")).doubleValue());
1.61 + assertEquals(1.0, c.getConversionRate(Currency.getInstance("SKK"), Currency.getInstance("SKK")).doubleValue());
1.62 + assertEquals(0.80, c.getConversionRate(Currency.getInstance("SKK"), Currency.getInstance("CZK")).doubleValue());
1.63 + assertEquals(1.25, c.getConversionRate(Currency.getInstance("CZK"), Currency.getInstance("SKK")).doubleValue());
1.64 +
1.65 + c = createCZKtoUSD();
1.66 + assertEquals(1.0, c.getConversionRate(Currency.getInstance("CZK"), Currency.getInstance("CZK")).doubleValue());
1.67 + assertEquals(1.0, c.getConversionRate(Currency.getInstance("USD"), Currency.getInstance("USD")).doubleValue());
1.68 + assertEquals(1.0/17.0, c.getConversionRate(Currency.getInstance("CZK"), Currency.getInstance("USD")).doubleValue(), 0.00000000000000001);
1.69 + assertEquals(17.0, c.getConversionRate(Currency.getInstance("USD"), Currency.getInstance("CZK")).doubleValue(), 0.00000000000000001);
1.70 + }
1.71 }
1.72