task4/solution13/test/org/apidesign/apifest08/test/RemainderTest.java
changeset 63 20d332739f60
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/task4/solution13/test/org/apidesign/apifest08/test/RemainderTest.java	Fri Oct 17 17:31:48 2008 +0200
     1.3 @@ -0,0 +1,80 @@
     1.4 +/*
     1.5 + * To change this template, choose Tools | Templates
     1.6 + * and open the template in the editor.
     1.7 + */
     1.8 +
     1.9 +package org.apidesign.apifest08.test;
    1.10 +
    1.11 +import java.math.BigDecimal;
    1.12 +import java.text.SimpleDateFormat;
    1.13 +import junit.framework.TestCase;
    1.14 +import org.apidesign.apifest08.currency.ConversionResult;
    1.15 +import org.apidesign.apifest08.currency.Convertor;
    1.16 +import org.apidesign.apifest08.currency.ConvertorCurrency;
    1.17 +import org.apidesign.apifest08.currency.ExchangeRateProvider;
    1.18 +
    1.19 +/**
    1.20 + *
    1.21 + * @author arnostvalicek
    1.22 + */
    1.23 +public class RemainderTest extends TestCase {
    1.24 +    private static ConvertorCurrency CZK = ConvertorCurrency.getInstance("CZK");
    1.25 +    private static ConvertorCurrency SKK = ConvertorCurrency.getInstance("SKK");
    1.26 +    private static ConvertorCurrency USD = ConvertorCurrency.getInstance("USD");
    1.27 +    private SimpleDateFormat df;
    1.28 +    
    1.29 +    @Override
    1.30 +    protected void setUp() throws Exception {
    1.31 +        super.setUp();
    1.32 +        df = new SimpleDateFormat("yyyy-MM-dd HH:mm zzzz");
    1.33 +        
    1.34 +    }
    1.35 +
    1.36 +    @Override
    1.37 +    protected void tearDown() throws Exception {
    1.38 +        super.tearDown();
    1.39 +    }
    1.40 +    
    1.41 +    public void testRemainder1() {
    1.42 +        Convertor c = Task2Test.createUsdToSkkConvertor();
    1.43 +        {
    1.44 +            final BigDecimal convertedValue = new BigDecimal("12.34");
    1.45 +            ConversionResult result = c.convertWithReversibleRates(SKK,USD,convertedValue);
    1.46 +            //System.out.println("Result = "+result);
    1.47 +            assertEquals("Converted", new BigDecimal("0.61"),result.getConverted());
    1.48 +            assertEquals("Remainder", new BigDecimal("0.14"),result.getRemainder());
    1.49 +            
    1.50 +            ConversionResult resultBack = c.convertWithReversibleRates(USD, SKK, result.getConverted());
    1.51 +            assertEquals("Conversion back", convertedValue, resultBack.getConverted().add(result.getRemainder()));
    1.52 +            
    1.53 +        }
    1.54 +        {
    1.55 +            ConversionResult result = c.convertWithReversibleRates(SKK,USD,new BigDecimal("20.00"));
    1.56 +            //System.out.println("Result = "+result);
    1.57 +        }
    1.58 +    
    1.59 +        {
    1.60 +            ConversionResult result = c.convertWithReversibleRates(USD,SKK,new BigDecimal("1.00"));
    1.61 +            //System.out.println("Result = "+result);
    1.62 +        }
    1.63 +        
    1.64 +    }
    1.65 +    
    1.66 +    public void testRemainderStripCents() {
    1.67 +        ConvertorCurrency CZK_cents=ConvertorCurrency.getInstance("CZK", 2);
    1.68 +        ConvertorCurrency CZK_nocents=ConvertorCurrency.getInstance("CZK", 0);
    1.69 +        
    1.70 +        
    1.71 +        ExchangeRateProvider exchangeRateProvider = ExchangeRateProvider.createExchangeRateProvider();
    1.72 +        exchangeRateProvider.addFixedCurencyRate(CZK_cents, new BigDecimal(1), CZK_nocents, new BigDecimal(1));
    1.73 +        
    1.74 +        Convertor c = Convertor.createConvertor(exchangeRateProvider);
    1.75 +        
    1.76 +        ConversionResult result = c.convertWithReversibleRates(CZK_cents, CZK_nocents, new BigDecimal("2.34"));
    1.77 +        assertEquals("Converted",new BigDecimal("2"),result.getConverted());
    1.78 +        assertEquals("Remainder",new BigDecimal("0.34"),result.getRemainder());
    1.79 +    }
    1.80 +    
    1.81 +    
    1.82 +
    1.83 +}