1 package org.apidesign.apifest08.test;
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;
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;
16 public class ConvertorFactoryTest {
17 @Test(expected=NullPointerException.class)
18 public void testNullSource()
20 ConvertorFactory.createConvertor(null, new MoneyImpl(1,USD));
22 @Test(expected=NullPointerException.class)
23 public void testNullDestination()
25 ConvertorFactory.createConvertor(new MoneyImpl(17,CZK), null);
30 assertNotNull(ConvertorFactory.createConvertor(new MoneyImpl(17,CZK), new MoneyImpl(1,USD)));
33 public void testOkDecimalRate()
35 Convertor c = ConvertorFactory.createConvertor(new MoneyImpl(1,CZK), new MoneyImpl(1d/17d,USD));
37 assertEquals(new MoneyImpl(17,CZK),c.convert(new MoneyImpl(1,USD), CZK));
40 public void testZeroEquivalentRate()
44 ConvertorFactory.createConvertor(new MoneyImpl(1,CZK), new MoneyImpl(0,USD));
45 fail("Exception expected");
47 catch(IllegalArgumentException e)
49 assertTrue("OK",true);