task4/solution02/test/org/apidesign/apifest08/currency/CompositeConvertorTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 11 Oct 2008 23:38:46 +0200
changeset 61 58ec6da75f6f
parent 45 task3/solution02/test/org/apidesign/apifest08/currency/CompositeConvertorTest.java@251d0ed461fb
permissions -rw-r--r--
Copying structure for task4
     1 package org.apidesign.apifest08.currency;
     2 
     3 import static junit.framework.Assert.assertEquals;
     4 import static junit.framework.Assert.assertFalse;
     5 import static junit.framework.Assert.assertTrue;
     6 import static junit.framework.Assert.fail;
     7 import static org.apidesign.apifest08.test.Task1Test.CZK;
     8 import static org.apidesign.apifest08.test.Task1Test.SKK;
     9 import static org.apidesign.apifest08.test.Task1Test.USD;
    10 
    11 import org.junit.Test;
    12 
    13 public class CompositeConvertorTest {
    14 	private static final ExtendedConvertor USD_CZK_CONVERTOR = ConvertorFactory.createConvertor(new MoneyImpl(1,USD), new MoneyImpl(17,CZK));
    15 	private static final ExtendedConvertor SKK_CZK_CONVERTOR = ConvertorFactory.createConvertor(new MoneyImpl(100,SKK), new MoneyImpl(80,CZK));
    16 
    17 	@Test
    18 	public void testCompose()
    19 	{
    20 		ExtendedConvertor convertor = new CompositeConvertor(USD_CZK_CONVERTOR, SKK_CZK_CONVERTOR);
    21 		assertTrue(convertor.isConversionSupported(CZK, SKK));
    22 		assertTrue(convertor.isConversionSupported(CZK, USD));
    23 		assertFalse(convertor.isConversionSupported(SKK, USD));
    24 		assertEquals(new MoneyImpl(10,SKK), convertor.convert(new MoneyImpl(8,CZK), SKK));
    25 		assertEquals(new MoneyImpl(2,USD), convertor.convert(new MoneyImpl(34,CZK), USD));
    26 		try
    27 		{
    28 			convertor.convert(new MoneyImpl(34,SKK), USD);
    29 			fail("Exception expected");
    30 		}
    31 		catch(IllegalArgumentException e)
    32 		{
    33 			assertTrue("Ok", true);
    34 		}
    35 	}
    36 	@Test
    37 	public void testEmpty()
    38 	{
    39 		ExtendedConvertor convertor = new CompositeConvertor();
    40 		assertFalse(convertor.isConversionSupported(SKK, USD));
    41 		try
    42 		{
    43 			convertor.convert(new MoneyImpl(34,SKK), USD);
    44 			fail("Exception expected");
    45 		}
    46 		catch(IllegalArgumentException e)
    47 		{
    48 			assertTrue("Ok", true);
    49 		}
    50 	}
    51 	@Test(expected=NullPointerException.class)
    52 	public void testCreateNull()
    53 	{
    54 		new CompositeConvertor(USD_CZK_CONVERTOR, null);
    55 	}
    56 }