1 package org.apidesign.apifest08.test;
2 import static junit.framework.Assert.assertEquals;
3 import static org.apidesign.apifest08.currency.MoneyImpl.money;
4 import static org.apidesign.apifest08.test.Task1Test.CZK;
5 import static org.apidesign.apifest08.test.Task1Test.USD;
7 import java.math.BigDecimal;
9 import org.apidesign.apifest08.currency.Convertor;
10 import org.apidesign.apifest08.currency.Money;
11 import org.junit.Test;
13 public class OnlineConvertorTest {
14 private static final Money ONE_USD = money(1, USD);
17 public void testBounce()
19 Convertor c = Task3Test.createOnlineCZKUSDConvertor();
26 private void doBounceTest(Convertor c) {
27 BigDecimal expectedRate = new BigDecimal(16);
28 BigDecimal increment = new BigDecimal("0.01");
30 for (int i=0;i<100;i++)
32 assertEquals(money(expectedRate,CZK), c.convert(ONE_USD, CZK));
33 expectedRate = expectedRate.subtract(increment);
36 assertEquals(money(15,CZK), c.convert(ONE_USD, CZK));
38 for (int i=0;i<99;i++)
40 expectedRate = expectedRate.add(increment);
41 assertEquals(money(expectedRate,CZK), c.convert(ONE_USD, CZK));