japod@56: package org.apidesign.apifest08.test; japod@56: import static junit.framework.Assert.assertEquals; japod@56: import static org.apidesign.apifest08.currency.MoneyImpl.money; japod@56: import static org.apidesign.apifest08.test.Task1Test.CZK; japod@56: import static org.apidesign.apifest08.test.Task1Test.USD; japod@56: japod@56: import java.math.BigDecimal; japod@56: japod@56: import org.apidesign.apifest08.currency.Convertor; japod@56: import org.apidesign.apifest08.currency.Money; japod@56: import org.junit.Test; japod@56: japod@56: public class OnlineConvertorTest { japod@56: private static final Money ONE_USD = money(1, USD); japod@56: japod@56: @Test japod@56: public void testBounce() japod@56: { japod@56: Convertor c = Task3Test.createOnlineCZKUSDConvertor(); japod@56: japod@56: doBounceTest(c); japod@56: doBounceTest(c); japod@56: japod@56: } japod@56: japod@56: private void doBounceTest(Convertor c) { japod@56: BigDecimal expectedRate = new BigDecimal(16); japod@56: BigDecimal increment = new BigDecimal("0.01"); japod@56: japod@56: for (int i=0;i<100;i++) japod@56: { japod@56: assertEquals(money(expectedRate,CZK), c.convert(ONE_USD, CZK)); japod@56: expectedRate = expectedRate.subtract(increment); japod@56: } japod@56: japod@56: assertEquals(money(15,CZK), c.convert(ONE_USD, CZK)); japod@56: japod@56: for (int i=0;i<99;i++) japod@56: { japod@56: expectedRate = expectedRate.add(increment); japod@56: assertEquals(money(expectedRate,CZK), c.convert(ONE_USD, CZK)); japod@56: } japod@56: } japod@56: }