japod@6: package org.apidesign.apifest08.test; japod@6: japod@6: import static junit.framework.Assert.assertNotNull; japod@6: import static org.apidesign.apifest08.test.Task1Test.CZK; japod@6: import static org.apidesign.apifest08.test.Task1Test.USD; japod@16: import static org.junit.Assert.assertEquals; japod@16: import static org.junit.Assert.assertTrue; japod@16: import static org.junit.Assert.fail; japod@6: japod@16: import org.apidesign.apifest08.currency.Convertor; japod@6: import org.apidesign.apifest08.currency.ConvertorFactory; japod@16: import org.apidesign.apifest08.currency.MoneyImpl; japod@6: import org.junit.Test; japod@6: japod@6: japod@6: public class ConvertorFactoryTest { japod@6: @Test(expected=NullPointerException.class) japod@6: public void testNullSource() japod@6: { japod@16: ConvertorFactory.createConvertor(null, new MoneyImpl(1,USD)); japod@6: } japod@6: @Test(expected=NullPointerException.class) japod@6: public void testNullDestination() japod@6: { japod@16: ConvertorFactory.createConvertor(new MoneyImpl(17,CZK), null); japod@6: } japod@6: @Test japod@6: public void testOk() japod@6: { japod@16: assertNotNull(ConvertorFactory.createConvertor(new MoneyImpl(17,CZK), new MoneyImpl(1,USD))); japod@6: } japod@6: @Test japod@16: public void testOkDecimalRate() japod@6: { japod@16: Convertor c = ConvertorFactory.createConvertor(new MoneyImpl(1,CZK), new MoneyImpl(1d/17d,USD)); japod@16: assertNotNull(c); japod@16: assertEquals(new MoneyImpl(17,CZK),c.convert(new MoneyImpl(1,USD), CZK)); japod@16: } japod@16: @Test japod@16: public void testZeroEquivalentRate() japod@16: { japod@16: try japod@16: { japod@16: ConvertorFactory.createConvertor(new MoneyImpl(1,CZK), new MoneyImpl(0,USD)); japod@16: fail("Exception expected"); japod@16: } japod@16: catch(IllegalArgumentException e) japod@16: { japod@16: assertTrue("OK",true); japod@16: } japod@6: } japod@6: }