task4/solution02/test/org/apidesign/apifest08/test/OnlineConvertorTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 11 Oct 2008 23:38:46 +0200
changeset 61 58ec6da75f6f
parent 56 task3/solution02/test/org/apidesign/apifest08/test/OnlineConvertorTest.java@a3144e7f9c90
permissions -rw-r--r--
Copying structure for task4
japod@56
     1
package org.apidesign.apifest08.test;
japod@56
     2
import static junit.framework.Assert.assertEquals;
japod@56
     3
import static org.apidesign.apifest08.currency.MoneyImpl.money;
japod@56
     4
import static org.apidesign.apifest08.test.Task1Test.CZK;
japod@56
     5
import static org.apidesign.apifest08.test.Task1Test.USD;
japod@56
     6
japod@56
     7
import java.math.BigDecimal;
japod@56
     8
japod@56
     9
import org.apidesign.apifest08.currency.Convertor;
japod@56
    10
import org.apidesign.apifest08.currency.Money;
japod@56
    11
import org.junit.Test;
japod@56
    12
japod@56
    13
public class OnlineConvertorTest {
japod@56
    14
	private static final Money ONE_USD = money(1, USD);
japod@56
    15
japod@56
    16
	@Test
japod@56
    17
	public void testBounce()
japod@56
    18
	{
japod@56
    19
		Convertor c = Task3Test.createOnlineCZKUSDConvertor();
japod@56
    20
		
japod@56
    21
		doBounceTest(c);
japod@56
    22
		doBounceTest(c);
japod@56
    23
	
japod@56
    24
	}
japod@56
    25
japod@56
    26
	private void doBounceTest(Convertor c) {
japod@56
    27
		BigDecimal expectedRate = new BigDecimal(16);
japod@56
    28
		BigDecimal increment = new BigDecimal("0.01");
japod@56
    29
		
japod@56
    30
		for (int i=0;i<100;i++)
japod@56
    31
		{
japod@56
    32
			assertEquals(money(expectedRate,CZK), c.convert(ONE_USD, CZK));
japod@56
    33
			expectedRate = expectedRate.subtract(increment);
japod@56
    34
		}
japod@56
    35
		
japod@56
    36
		assertEquals(money(15,CZK), c.convert(ONE_USD, CZK));
japod@56
    37
		
japod@56
    38
		for (int i=0;i<99;i++)
japod@56
    39
		{
japod@56
    40
			expectedRate = expectedRate.add(increment);
japod@56
    41
			assertEquals(money(expectedRate,CZK), c.convert(ONE_USD, CZK));
japod@56
    42
		}
japod@56
    43
	}
japod@56
    44
}