@Override public BigDecimal readBigDecimal(int index) { return readBigDecimal(index, null); }
@Override public BigDecimal readBigDecimal(String name) { return readBigDecimal(name, null); }
@Override public BigDecimal readBigDecimal(String name, BigDecimal defaultValue) { try { return readBigDecimal(indexOf(name), defaultValue); } catch (NumberFormatException e) { throw new NumberFormatException(e.getMessage() + ", name: [" + name + "]"); } catch (IllegalArgumentException e) { throw new IllegalArgumentException(e.getMessage() + ", name: [" + name + "]"); } }
@Test public void testReadBigDecimalWithDefaultvalue() throws Exception { BigDecimal bd = new BigDecimal(324); assertEquals(bd, fieldSet.readBigDecimal(10, bd)); assertEquals(bd, fieldSet.readBigDecimal("Null", bd)); }
@Test public void testReadBigDecimal() throws Exception { BigDecimal bd = new BigDecimal("424.3"); assertEquals(bd, fieldSet.readBigDecimal(8)); assertEquals(bd, fieldSet.readBigDecimal("Double")); }
@Test public void testReadBigDecimalWithEuroFormat() throws Exception { fieldSet.setNumberFormat(NumberFormat.getInstance(Locale.GERMANY)); BigDecimal bd = new BigDecimal("1.3245"); assertEquals(bd, fieldSet.readBigDecimal(9)); }
@Test public void testReadBigDecimalWithFormat() throws Exception { fieldSet.setNumberFormat(NumberFormat.getInstance(Locale.US)); BigDecimal bd = new BigDecimal("424.3"); assertEquals(bd, fieldSet.readBigDecimal(8)); }
@Test public void testReadBigDecimalInvalid() { int index = 0; try { fieldSet.readBigDecimal(index); fail("field value is not a number, exception expected"); } catch (IllegalArgumentException e) { assertTrue(e.getMessage().indexOf("TestString") > 0); } }
@Test public void testReadBigDecimalByNameInvalid() throws Exception { try { fieldSet.readBigDecimal("String"); fail("field value is not a number, exception expected"); } catch (IllegalArgumentException e) { assertTrue(e.getMessage().indexOf("TestString") > 0); assertTrue(e.getMessage().indexOf("name: [String]") > 0); } }
@Test public void testReadBigBigDecimal() throws Exception { fieldSet = new DefaultFieldSet(new String[] {"12345678901234567890"}); BigDecimal bd = new BigDecimal("12345678901234567890"); assertEquals(bd, fieldSet.readBigDecimal(0)); }
@Override public BigDecimal readBigDecimal(String name) { return readBigDecimal(name, null); }
@Override public BigDecimal readBigDecimal(int index) { return readBigDecimal(index, null); }
@Override public BigDecimal readBigDecimal(String name, BigDecimal defaultValue) { try { return readBigDecimal(indexOf(name), defaultValue); } catch (NumberFormatException e) { throw new NumberFormatException(e.getMessage() + ", name: [" + name + "]"); } catch (IllegalArgumentException e) { throw new IllegalArgumentException(e.getMessage() + ", name: [" + name + "]"); } }