/*
* Beanfabrics Framework Copyright (C) by Michael Karneim, beanfabrics.org
* Use is subject to license terms. See license.txt.
*/
package org.beanfabrics.model;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Currency;
import java.util.Locale;
import junit.framework.JUnit4TestAdapter;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class MoneyPMTest {
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(MoneyPMTest.class);
}
public MoneyPMTest() {
}
@BeforeClass
public static void setUpClass()
throws Exception {
}
@AfterClass
public static void tearDownClass()
throws Exception {
}
MoneyPM create() {
MoneyPM pm = new MoneyPM();
pm.setFormat(new BigDecimalPM.Format(MoneyPM.getCurrencyFormat(Locale.GERMANY)));
return pm;
}
@Test
public void newInstance() {
create();
}
@Test
public void testCurrency() {
Currency c = Currency.getInstance(Locale.JAPAN);
String sym = c.getSymbol(Locale.US);
// System.out.println(sym);
}
@Test
public void validFormatsWithCurrencySymbol() {
MoneyPM pm = create();
pm.setText("14 \u20AC");
assertEquals("pm.isValid()", true, pm.isValid());
pm.setText("14,00 \u20AC");
assertEquals("pm.isValid()", true, pm.isValid());
pm.setText("140.000,00 \u20AC");
assertEquals("pm.isValid()", true, pm.isValid());
}
@Test
public void validFormatsWithoutCurrencySymbol() {
MoneyPM pm = create();
pm.setText("14");
assertEquals("pm.isValid()", true, pm.isValid());
pm.setText("14,00");
assertEquals("pm.isValid()", true, pm.isValid());
pm.setText("140.000,00");
assertEquals("pm.isValid()", true, pm.isValid());
}
@Test
public void invalidFormatsWithForeignCurrencySymbol() {
MoneyPM pm = create();
pm.setText("14 $");
assertEquals("pm.isValid()", false, pm.isValid());
}
@Test
public void invalidFormats() {
MoneyPM pm = create();
pm.setText("abc");
assertEquals("pm.isValid()", false, pm.isValid());
}
// @Test
// public void changeCurrency() {
// MoneyPM pm = create();
// pm.setCurrency( Currency.getInstance(Locale.US));
// pm.setText("100");
// assertEquals("pm.isValid()", true, pm.isValid());
// pm.reformat();
// String text = pm.getText();
// assertEquals("text", "100,00 $", text);
// }
@Test
public void setBigDecimal() {
MoneyPM pm = create();
BigDecimal val = new BigDecimal("1000.23");
pm.setBigDecimal(val);
BigDecimal res = pm.getBigDecimal();
assertNotNull("res", res);
assertEquals("res", val, res);
}
@Test
public void getText() {
MoneyPM pm = create();
BigDecimal val = new BigDecimal("1000.23");
pm.setBigDecimal(val);
assertEquals("pm.getText()", "1.000,23 \u20AC", pm.getText());
}
}