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 +}