task2/solution04/test/org/apidesign/apifest08/test/Task1Test.java
changeset 35 8898c620fe96
parent 29 f6073056b9fe
     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