/******************************************************************************* * Copyright (c) 2005-2011, G. Weirich and Elexis * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * G. Weirich - initial implementation * *******************************************************************************/ package ch.rgw.tools; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import java.text.ParseException; import org.junit.Test; public class Test_Money { @Test public void testCheckInput() throws ParseException{ assertEquals(1234, Money.checkInput("1234").doubleValue(), 0.0001); assertEquals(1234.56, Money.checkInput("1234.56").doubleValue(), 0.0001); assertEquals(1.234, Money.checkInput("1.234").doubleValue(), 0.0001); assertEquals(1234, Money.checkInput("1'234").doubleValue(), 0.0001); assertEquals(12340, Money.checkInput("1'234'0").doubleValue(), 0.0001); assertEquals(1234.56, Money.checkInput("1234,56").doubleValue(), 0.0001); assertEquals(1234, Money.checkInput("1.234,0").doubleValue(), 0.0001); assertEquals(1.234, Money.checkInput("1,234").doubleValue(), 0.0001); assertEquals(12340, Money.checkInput("1.234.0").doubleValue(), 0.0001); } @Test public void testCheckInputFail(){ try { Money.checkInput("1xyz2"); fail("Expected Exception not thrown!"); } catch (ParseException pe) {} try { Money.checkInput("1.234'00"); fail("Expected Exception not thrown!"); } catch (ParseException pe) {} try { Money.checkInput("1'234,00"); fail("Expected Exception not thrown!"); } catch (ParseException pe) {} try { Money.checkInput("1,234.00"); fail("Expected Exception not thrown!"); } catch (ParseException pe) {} try { Money.checkInput("1,234,00"); fail("Expected Exception not thrown!"); } catch (ParseException pe) {} } @Test public void testAddMoney(){ Money money = new Money(0); Money moneyOne = new Money(1.0); Money moneyPointOne = new Money(0.1); Money moneyMinusOne = new Money(-1.0); money.addMoney(moneyOne); assertEquals(1, money.getAmount(), 0.0001); money.addMoney(moneyPointOne); assertEquals(1.1, money.getAmount(), 0.0001); money.addMoney(moneyMinusOne); assertEquals(0.1, money.getAmount(), 0.0001); } @Test public void testSubstractMoney(){ Money money = new Money(1.1); Money moneyOne = new Money(1.0); Money moneyPointOne = new Money(0.1); Money moneyMinusOne = new Money(-1.0); money.subtractMoney(moneyOne); assertEquals(0.1, money.getAmount(), 0.0001); money.subtractMoney(moneyPointOne); assertEquals(0.0, money.getAmount(), 0.0001); // Subtracting a negative amount does not lead to positive result !!! // money.addMoney(moneyMinusOne); // assertEquals(1.0, money.getAmount(), 0.0001); } }