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
     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;
     6 
     7 import java.math.BigDecimal;
     8 
     9 import org.apidesign.apifest08.currency.Convertor;
    10 import org.apidesign.apifest08.currency.Money;
    11 import org.junit.Test;
    12 
    13 public class OnlineConvertorTest {
    14 	private static final Money ONE_USD = money(1, USD);
    15 
    16 	@Test
    17 	public void testBounce()
    18 	{
    19 		Convertor c = Task3Test.createOnlineCZKUSDConvertor();
    20 		
    21 		doBounceTest(c);
    22 		doBounceTest(c);
    23 	
    24 	}
    25 
    26 	private void doBounceTest(Convertor c) {
    27 		BigDecimal expectedRate = new BigDecimal(16);
    28 		BigDecimal increment = new BigDecimal("0.01");
    29 		
    30 		for (int i=0;i<100;i++)
    31 		{
    32 			assertEquals(money(expectedRate,CZK), c.convert(ONE_USD, CZK));
    33 			expectedRate = expectedRate.subtract(increment);
    34 		}
    35 		
    36 		assertEquals(money(15,CZK), c.convert(ONE_USD, CZK));
    37 		
    38 		for (int i=0;i<99;i++)
    39 		{
    40 			expectedRate = expectedRate.add(increment);
    41 			assertEquals(money(expectedRate,CZK), c.convert(ONE_USD, CZK));
    42 		}
    43 	}
    44 }