task4/solution02/test/org/apidesign/apifest08/test/ConvertorFactoryTest.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/test/ConvertorFactoryTest.java@251d0ed461fb
permissions -rw-r--r--
Copying structure for task4
     1 package org.apidesign.apifest08.test;
     2 
     3 import static junit.framework.Assert.assertNotNull;
     4 import static org.apidesign.apifest08.test.Task1Test.CZK;
     5 import static org.apidesign.apifest08.test.Task1Test.USD;
     6 import static org.junit.Assert.assertEquals;
     7 import static org.junit.Assert.assertTrue;
     8 import static org.junit.Assert.fail;
     9 
    10 import org.apidesign.apifest08.currency.Convertor;
    11 import org.apidesign.apifest08.currency.ConvertorFactory;
    12 import org.apidesign.apifest08.currency.MoneyImpl;
    13 import org.junit.Test;
    14 
    15 
    16 public class ConvertorFactoryTest {
    17 	@Test(expected=NullPointerException.class)
    18 	public void testNullSource()
    19 	{
    20 		ConvertorFactory.createConvertor(null, new MoneyImpl(1,USD));
    21 	}
    22 	@Test(expected=NullPointerException.class)
    23 	public void testNullDestination()
    24 	{
    25 		ConvertorFactory.createConvertor(new MoneyImpl(17,CZK), null);
    26 	}
    27 	@Test
    28 	public void testOk()
    29 	{
    30 		assertNotNull(ConvertorFactory.createConvertor(new MoneyImpl(17,CZK),  new MoneyImpl(1,USD)));
    31 	}
    32 	@Test
    33 	public void testOkDecimalRate()
    34 	{
    35 		Convertor c = ConvertorFactory.createConvertor(new MoneyImpl(1,CZK),  new MoneyImpl(1d/17d,USD));
    36 		assertNotNull(c);
    37 		assertEquals(new MoneyImpl(17,CZK),c.convert(new MoneyImpl(1,USD), CZK));
    38 	}
    39 	@Test
    40 	public void testZeroEquivalentRate()
    41 	{
    42 		try
    43 		{
    44 			ConvertorFactory.createConvertor(new MoneyImpl(1,CZK),  new MoneyImpl(0,USD));
    45 			fail("Exception expected");
    46 		}
    47 		catch(IllegalArgumentException e)
    48 		{
    49 			assertTrue("OK",true);
    50 		}
    51 	}
    52 }