1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/task4/solution02/test/org/apidesign/apifest08/test/OnlineConvertorTest.java Sat Oct 11 23:38:46 2008 +0200
1.3 @@ -0,0 +1,44 @@
1.4 +package org.apidesign.apifest08.test;
1.5 +import static junit.framework.Assert.assertEquals;
1.6 +import static org.apidesign.apifest08.currency.MoneyImpl.money;
1.7 +import static org.apidesign.apifest08.test.Task1Test.CZK;
1.8 +import static org.apidesign.apifest08.test.Task1Test.USD;
1.9 +
1.10 +import java.math.BigDecimal;
1.11 +
1.12 +import org.apidesign.apifest08.currency.Convertor;
1.13 +import org.apidesign.apifest08.currency.Money;
1.14 +import org.junit.Test;
1.15 +
1.16 +public class OnlineConvertorTest {
1.17 + private static final Money ONE_USD = money(1, USD);
1.18 +
1.19 + @Test
1.20 + public void testBounce()
1.21 + {
1.22 + Convertor c = Task3Test.createOnlineCZKUSDConvertor();
1.23 +
1.24 + doBounceTest(c);
1.25 + doBounceTest(c);
1.26 +
1.27 + }
1.28 +
1.29 + private void doBounceTest(Convertor c) {
1.30 + BigDecimal expectedRate = new BigDecimal(16);
1.31 + BigDecimal increment = new BigDecimal("0.01");
1.32 +
1.33 + for (int i=0;i<100;i++)
1.34 + {
1.35 + assertEquals(money(expectedRate,CZK), c.convert(ONE_USD, CZK));
1.36 + expectedRate = expectedRate.subtract(increment);
1.37 + }
1.38 +
1.39 + assertEquals(money(15,CZK), c.convert(ONE_USD, CZK));
1.40 +
1.41 + for (int i=0;i<99;i++)
1.42 + {
1.43 + expectedRate = expectedRate.add(increment);
1.44 + assertEquals(money(expectedRate,CZK), c.convert(ONE_USD, CZK));
1.45 + }
1.46 + }
1.47 +}