task4/solution02/test/org/apidesign/apifest08/test/OnlineConvertorTest.java
changeset 61 58ec6da75f6f
parent 56 a3144e7f9c90
     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 +}