1 package org.apidesign.apifest08.test;
3 import static junit.framework.Assert.assertEquals;
4 import static junit.framework.Assert.assertFalse;
5 import static junit.framework.Assert.assertTrue;
6 import static org.apidesign.apifest08.test.Task1Test.CZK;
7 import static org.apidesign.apifest08.test.Task1Test.SKK;
8 import static org.apidesign.apifest08.test.Task1Test.USD;
10 import java.math.BigDecimal;
12 import org.apidesign.apifest08.currency.ConvertorFactory;
13 import org.apidesign.apifest08.currency.ExtendedConvertor;
14 import org.apidesign.apifest08.currency.Money;
15 import org.apidesign.apifest08.currency.MoneyImpl;
16 import org.junit.Test;
19 public class ConvertorTest {
21 private static final ExtendedConvertor CZK_TO_USD_CONVERTOR = ConvertorFactory.createConvertor(new MoneyImpl(17,CZK), new MoneyImpl(1,USD));
23 public void testConvertSmall()
25 Money converted = CZK_TO_USD_CONVERTOR.convert(new MoneyImpl(0.17,CZK),USD);
26 assertEquals(new MoneyImpl(new BigDecimal("0.01"),USD),converted);
27 assertEquals(USD,converted.getCurrency());
30 public void testConvertSmallReverse()
32 Money converted = CZK_TO_USD_CONVERTOR.convert(new MoneyImpl(0.01,USD),CZK);
33 assertEquals(new MoneyImpl(new BigDecimal("0.17"),CZK),converted);
36 public void testSupports()
38 assertTrue(CZK_TO_USD_CONVERTOR.isConversionSupported(USD,CZK));
39 assertTrue(CZK_TO_USD_CONVERTOR.isConversionSupported(CZK,USD));
40 assertFalse(CZK_TO_USD_CONVERTOR.isConversionSupported(CZK,CZK));
41 assertFalse(CZK_TO_USD_CONVERTOR.isConversionSupported(CZK,SKK));