package jp.terasoluna.fw.file.dao.standard;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.concurrent.ConcurrentHashMap;
import org.springframework.test.util.ReflectionTestUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
/**
* {@link jp.terasoluna.fw.file.dao.standard.DecimalColumnParser} クラスのテスト。
* <p>
* <h4>【クラスの概要】</h4> 指定された文字列をパーズし、BigDecimal型に変換する。<br>
* 変換結果をファイル行オブジェクトのBigDecimal型の属性に値を格納する。
* <p>
* @see jp.terasoluna.fw.file.dao.standard.DecimalColumnParser
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest(DecimalColumnParser.class)
public class DecimalColumnParserTest {
/**
* testParse01() <br>
* <br>
* (異常系) <br>
* 観点:C,E <br>
* <br>
* 入力値:(引数) column:"123456"<br>
* (引数) t:以下の情報をObjectインスタンス<br>
* ・フィールド<br>
* - フィールド名:decimal01<br>
* - 型:BigDecimal<br>
* - 初期値:null<br>
* ・メソッド<br>
* - フィールドに対するgetter、setterメソッドが存在する。<br>
* ※setterメソッドの定義は引数methodの記述に従う。<br>
* (引数) method:対象フィールドに対するsetterメソッドのインスタンス<br>
* ・可視性:public<br>
* ・引数:1つ(BigDecimal型)<br>
* ・処理:引数を対象フィールドに格納する。<br>
* (引数) columnFormat:null<br>
* <br>
* 期待値:(状態変化) t:対象フィールドにBigDecimal.valueOf(123456)値が格納される。<br>
* <br>
* 正常ケース<br>
* フォーマット用の文字列がnullの場合、 かつフィールドのsetterメソッドが正しく設定されている場合に、 引数の文字列が正しくBigDecimalに変換されて格納されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testParse01() throws Exception {
// 前処理
DecimalColumnParser decimalColumnParser = new DecimalColumnParser();
// 前処理(引数)
String column = "123456";
DecimalColumnParser_FileLineObjectStub01 stub = new DecimalColumnParser_FileLineObjectStub01();
stub.setDecimal01(null);
Method method = DecimalColumnParser_FileLineObjectStub01.class
.getDeclaredMethod("setDecimal01", new Class[] {
BigDecimal.class });
String columnFormat = null;
// テスト実施
decimalColumnParser.parse(column, stub, method, columnFormat);
// 判定
BigDecimal result = stub.getDecimal01();
assertNotNull(result);
assertEquals(BigDecimal.valueOf(123456), result);
}
/**
* testParse02() <br>
* <br>
* (正常系) <br>
* 観点:E <br>
* <br>
* 入力値:(引数) column:"-\\123,456.00"<br>
* (引数) t:以下の情報をObjectインスタンス<br>
* ・フィールド<br>
* - フィールド名:decimal02<br>
* - 型:BigDecimal<br>
* - 初期値:null<br>
* ・メソッド<br>
* - フィールドに対するgetter、setterメソッドが存在する。<br>
* ※setterメソッドの定義は引数methodの記述に従う。<br>
* (引数) method:対象フィールドに対するsetterメソッドのインスタンス<br>
* ・可視性:public<br>
* ・引数:1つ(BigDecimal型)<br>
* ・処理:引数を対象フィールドに格納する。<br>
* (引数) columnFormat:"-\\###,###,###.##"<br>
* <br>
* 期待値:(状態変化) t:対象フィールドにBigDecimal.valueOf(12345600, 2)値が格納される。<br>
* <br>
* 正常ケース<br>
* フォーマット用の文字列がある場合、 かつフィールドのsetterメソッドが正しく設定されている場合に、 引数の文字列が正しくフォーマットに従ってBigDecimalに変換されて格納されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testParse02() throws Exception {
// 前処理
DecimalColumnParser decimalColumnParser = new DecimalColumnParser();
// 前処理(引数)
String column = "-\\123,456.00";
DecimalColumnParser_FileLineObjectStub01 stub = new DecimalColumnParser_FileLineObjectStub01();
stub.setDecimal02(null);
Method method = DecimalColumnParser_FileLineObjectStub01.class
.getDeclaredMethod("setDecimal02", new Class[] {
BigDecimal.class });
String columnFormat = "-\\###,###,###.##";
// テスト実施
decimalColumnParser.parse(column, stub, method, columnFormat);
// 判定
BigDecimal result = stub.getDecimal02();
assertNotNull(result);
assertEquals(BigDecimal.valueOf(12345600, 2), result);
}
/**
* testParse03() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) column:"-\\123,456.00"<br>
* (引数) t:以下の情報をObjectインスタンス<br>
* ・フィールド<br>
* - フィールド名:decimal03<br>
* - 型:BigDecimal<br>
* - 初期値:null<br>
* ・メソッド<br>
* - フィールドに対するgetter、setterメソッドが存在する。<br>
* ※setterメソッドの定義は引数methodの記述に従う。<br>
* (引数) method:対象フィールドに対するsetterメソッドのインスタンス<br>
* ・可視性:public<br>
* ・引数:1つ(BigDecimal型)<br>
* ・処理:引数を対象フィールドに格納する。<br>
* (引数) columnFormat:"###,###,###.##"<br>
* <br>
* ※引数がフォーマットできない文字列<br>
* <br>
* 期待値:(状態変化) -:ParseExceptionが発生することを確認する。<br>
* <br>
* 異常ケース<br>
* フォーマット文字列でパーシングできないデータが渡された場合、 ParseExceptionが発生することを確認する <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testParse03() throws Exception {
// 前処理
DecimalColumnParser decimalColumnParser = new DecimalColumnParser();
// 前処理(引数)
String column = "-\\123,456.00";
DecimalColumnParser_FileLineObjectStub01 stub = new DecimalColumnParser_FileLineObjectStub01();
stub.setDecimal03(null);
Method method = DecimalColumnParser_FileLineObjectStub01.class
.getDeclaredMethod("setDecimal03", new Class[] {
BigDecimal.class });
String columnFormat = "###,###,###.##";
try {
// テスト実施
decimalColumnParser.parse(column, stub, method, columnFormat);
fail("ParseExceptionが発生しませんでした。");
} catch (ParseException e) {
// 判定
assertTrue(e instanceof ParseException);
}
}
/**
* testParse04() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) column:"-\\123,456.00"<br>
* (引数) t:以下の情報をObjectインスタンス<br>
* ・フィールド<br>
* - フィールド名:decimal04<br>
* - 型:BigDecimal<br>
* - 初期値:null<br>
* ・メソッド<br>
* - フィールドに対するgetter、setterメソッドが存在する。<br>
* ※setterメソッドの定義は引数methodの記述に従う。<br>
* (引数) method:対象フィールドに対するsetterメソッドのインスタンス<br>
* ・可視性:private<br>
* ・引数:1つ(BigDecimal型)<br>
* ・処理:引数を対象フィールドに格納する。<br>
* (引数) columnFormat:"-\\###,###,###.##"<br>
* <br>
* 期待値:(状態変化) -:IllegalAccessExceptionが発生することを確認する。<br>
* <br>
* 異常ケース<br>
* フィールドのsetterメソッドがprivateで宣言された場合、 IllegalAccessExceptionが発生することを確認する <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testParse04() throws Exception {
// 前処理
DecimalColumnParser decimalColumnParser = new DecimalColumnParser();
// 前処理(引数)
String column = "-\\123,456.00";
DecimalColumnParser_FileLineObjectStub01 stub = new DecimalColumnParser_FileLineObjectStub01();
ReflectionTestUtils.setField(stub, "decimal04", null);
Method method = DecimalColumnParser_FileLineObjectStub01.class
.getDeclaredMethod("setDecimal04", new Class[] {
BigDecimal.class });
String columnFormat = "\\###,###,###.##";
try {
// テスト実施
decimalColumnParser.parse(column, stub, method, columnFormat);
fail("IllegalAccessExceptionが発生しませんでした。");
} catch (IllegalAccessException e) {
// 判定
assertTrue(e instanceof IllegalAccessException);
}
}
/**
* testParse05() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) column:"-\\123,456.00"<br>
* (引数) t:以下の情報をObjectインスタンス<br>
* ・フィールド<br>
* - フィールド名:decimal05<br>
* - 型:BigDecimal<br>
* - 初期値:null<br>
* ・メソッド<br>
* - フィールドに対するgetter、setterメソッドが存在する。<br>
* ※setterメソッドの定義は引数methodの記述に従う。<br>
* (引数) method:対象フィールドに対するsetterメソッドのインスタンス<br>
* ・可視性:public<br>
* ・引数:1つ(BigDecimal型)<br>
* ・処理:例外が発生する。<br>
* (引数) columnFormat:"-\\###,###,###.##"<br>
* <br>
* 期待値:(状態変化) -:InvocationTargetExceptionが発生することを確認する。<br>
* <br>
* 異常ケース<br>
* フィールドのsetterメソッドの処理で例外が発生した場合、 IvocationTargetExceptionが発生することを確認する <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testParse05() throws Exception {
// 前処理
DecimalColumnParser decimalColumnParser = new DecimalColumnParser();
// 前処理(引数)
String column = "-\\123,456.00";
DecimalColumnParser_FileLineObjectStub01 stub = new DecimalColumnParser_FileLineObjectStub01();
ReflectionTestUtils.setField(stub, "decimal05", null);
Method method = DecimalColumnParser_FileLineObjectStub01.class
.getDeclaredMethod("setDecimal05", new Class[] {
BigDecimal.class });
String columnFormat = "-\\###,###,###.##";
try {
// テスト実施
decimalColumnParser.parse(column, stub, method, columnFormat);
fail("InvocationTargetExceptionが発生しませんでした。");
} catch (InvocationTargetException e) {
// 判定
assertTrue(e instanceof InvocationTargetException);
}
}
/**
* testParse06() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) column:"-\\123,456.00"<br>
* (引数) t:以下の情報をObjectインスタンス<br>
* ・フィールド<br>
* - フィールド名:decimal06<br>
* - 型:BigDecimal<br>
* - 初期値:null<br>
* ・メソッド<br>
* - フィールドに対するgetter、setterメソッドが存在する。<br>
* ※setterメソッドの定義は引数methodの記述に従う。<br>
* (引数) method:対象フィールドに対するsetterメソッドのインスタンス<br>
* ・可視性:public<br>
* ・引数:2つ(BigDecimal型2つ)<br>
* ・処理:一番目の引数を対象フィールドに格納する。<br>
* (引数) columnFormat:"-\\###,###,###.##"<br>
* <br>
* 期待値:(状態変化) -:IllegalArgumentExceptionが発生することを確認する。<br>
* <br>
* 異常ケース<br>
* フィールドのsetterメソッドが引数でBigDecimal型1つ以外を持つ場合、 llegalArgumentExceptionが発生することを確認する <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testParse06() throws Exception {
// 前処理
DecimalColumnParser decimalColumnParser = new DecimalColumnParser();
// 前処理(引数)
String column = "-\\123,456.00";
DecimalColumnParser_FileLineObjectStub01 stub = new DecimalColumnParser_FileLineObjectStub01();
ReflectionTestUtils.setField(stub, "decimal06", null);
Method method = DecimalColumnParser_FileLineObjectStub01.class
.getDeclaredMethod("setDecimal06", new Class[] {
BigDecimal.class, BigDecimal.class });
String columnFormat = "-\\###,###,###.##";
try {
// テスト実施
decimalColumnParser.parse(column, stub, method, columnFormat);
fail("IllegalArgumentExceptionが発生しませんでした。");
} catch (IllegalArgumentException e) {
// 判定
assertTrue(e instanceof IllegalArgumentException);
}
}
/**
* testParse07() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) column:null<br>
* (引数) t:以下の情報をObjectインスタンス<br>
* ・フィールド<br>
* - フィールド名:decimal06<br>
* - 型:BigDecimal<br>
* - 初期値:null<br>
* ・メソッド<br>
* - フィールドに対するgetter、setterメソッドが存在する。<br>
* ※setterメソッドの定義は引数methodの記述に従う。<br>
* (引数) method:対象フィールドに対するsetterメソッドのインスタンス<br>
* ・可視性:public<br>
* ・引数:1つ(BigDecimal型)<br>
* ・処理:引数を対象フィールドに格納する。<br>
* (引数) columnFormat:"-\\###,###,###.##"<br>
* <br>
* 期待値:(状態変化) -:NullPointerExceptionが発生することを確認する。<br>
* <br>
* 異常ケース<br>
* 引数がnullの場合、NullPointerExceptionが発生することを確認する <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testParse07() throws Exception {
// 前処理
DecimalColumnParser decimalColumnParser = new DecimalColumnParser();
// 前処理(引数)
String column = null;
DecimalColumnParser_FileLineObjectStub01 stub = new DecimalColumnParser_FileLineObjectStub01();
ReflectionTestUtils.setField(stub, "decimal07", null);
Method method = DecimalColumnParser_FileLineObjectStub01.class
.getDeclaredMethod("setDecimal07", new Class[] {
BigDecimal.class });
String columnFormat = "-\\###,###,###.##";
try {
// テスト実施
decimalColumnParser.parse(column, stub, method, columnFormat);
fail("NullPointerExceptionが発生しませんでした。");
} catch (NullPointerException e) {
// 判定
assertTrue(e instanceof NullPointerException);
}
}
/**
* testParse08() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) column:"abcあいうアイウ愛有"<br>
* (引数) t:以下の情報をObjectインスタンス<br>
* ・フィールド<br>
* - フィールド名:decimal06<br>
* - 型:BigDecimal<br>
* - 初期値:null<br>
* ・メソッド<br>
* - フィールドに対するgetter、setterメソッドが存在する。<br>
* ※setterメソッドの定義は引数methodの記述に従う。<br>
* (引数) method:対象フィールドに対するsetterメソッドのインスタンス<br>
* ・可視性:public<br>
* ・引数:1つ(BigDecimal型)<br>
* ・処理:引数を対象フィールドに格納する。<br>
* (引数) columnFormat:"-\\###,###,###.##"<br>
* <br>
* 期待値:(状態変化) -:ParseExceptionが発生することを確認する。<br>
* <br>
* 異常ケース<br>
* 引数が数字ではない場合、ParseExceptionが発生することを確認する <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testParse08() throws Exception {
// 前処理
DecimalColumnParser decimalColumnParser = new DecimalColumnParser();
// 前処理(引数)
String column = "abcあいうアイウ愛有";
DecimalColumnParser_FileLineObjectStub01 stub = new DecimalColumnParser_FileLineObjectStub01();
ReflectionTestUtils.setField(stub, "decimal08", null);
Method method = DecimalColumnParser_FileLineObjectStub01.class
.getDeclaredMethod("setDecimal08", new Class[] {
BigDecimal.class });
String columnFormat = "-\\###,###,###.##";
try {
// テスト実施
decimalColumnParser.parse(column, stub, method, columnFormat);
fail("ParseExceptionが発生しませんでした。");
} catch (ParseException e) {
// 判定
assertTrue(e instanceof ParseException);
String errorMessage = "Unparseable number: \"abcあいうアイウ愛有\"";
assertEquals(errorMessage, e.getMessage());
}
}
/**
* testParse09() <br>
* <br>
* (正常系) <br>
* 観点:C,E <br>
* <br>
* 入力値:(引数) column:"123456"<br>
* (引数) t:以下の情報をObjectインスタンス<br>
* ・フィールド<br>
* - フィールド名:decimal09<br>
* - 型:BigDecimal<br>
* - 初期値:null<br>
* ・メソッド<br>
* - フィールドに対するgetter、setterメソッドが存在する。<br>
* ※setterメソッドの定義は引数methodの記述に従う。<br>
* (引数) method:対象フィールドに対するsetterメソッドのインスタンス<br>
* ・可視性:public<br>
* ・引数:1つ(BigDecimal型)<br>
* ・処理:引数を対象フィールドに格納する。<br>
* (引数) columnFormat:""<br>
* <br>
* 期待値:(状態変化) t:対象フィールドにBigDecimal.valueOf(123456)値が格納される。<br>
* <br>
* 正常ケース<br>
* フォーマット用の文字列が空文字の場合、 かつフィールドのsetterメソッドが正しく設定されている場合に、 引数の文字列が正しくBigDecimalに変換されて格納されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testParse09() throws Exception {
// 前処理
DecimalColumnParser decimalColumnParser = new DecimalColumnParser();
// 前処理(引数)
String column = "123456";
DecimalColumnParser_FileLineObjectStub01 stub = new DecimalColumnParser_FileLineObjectStub01();
stub.setDecimal09(null);
Method method = DecimalColumnParser_FileLineObjectStub01.class
.getDeclaredMethod("setDecimal09", new Class[] {
BigDecimal.class });
String columnFormat = "";
// テスト実施
decimalColumnParser.parse(column, stub, method, columnFormat);
// 判定
BigDecimal result = stub.getDecimal09();
assertNotNull(result);
assertEquals(BigDecimal.valueOf(123456), result);
}
/**
* testParse10() <br>
* <br>
* (正常系) <br>
* 観点:E <br>
* <br>
* 入力値:(引数) column:"-\\123,456.00"<br>
* (引数) t:以下の情報をObjectインスタンス<br>
* ・フィールド<br>
* - フィールド名:decimal02<br>
* - 型:BigDecimal<br>
* - 初期値:null<br>
* ・メソッド<br>
* - フィールドに対するgetter、setterメソッドが存在する。<br>
* ※setterメソッドの定義は引数methodの記述に従う。<br>
* (引数) method:対象フィールドに対するsetterメソッドのインスタンス<br>
* ・可視性:public<br>
* ・引数:1つ(BigDecimal型)<br>
* ・処理:引数を対象フィールドに格納する。<br>
* (引数) columnFormat:"-\\###,###,###.##"<br>
* (状態) dfMap:要素を持たないConcurrentHashMapインスタンス<br>
* <br>
* 期待値:(状態変化) t:対象フィールドにBigDecimal.valueOf(12345600, 2)値が格納される。<br>
* (状態変化) DecimalFormatLocal#<init>:1回呼ばれる<br>
* <br>
* 正常ケース<br>
* フォーマット用の文字列に対するDecimalFormatLocalがキャッシュに存在しない場合、 問題なく実行されることを確認する。<br>
* また、新しく生成されたフォーマット用の文字列に対する DecimalFormatLocalがキャッシュされることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testParse10() throws Exception {
// 前処理
DecimalColumnParser decimalColumnParser = new DecimalColumnParser();
// 前処理(引数)
String column = "-\\123,456.00";
DecimalColumnParser_FileLineObjectStub01 stub = new DecimalColumnParser_FileLineObjectStub01();
stub.setDecimal10(null);
Method method = DecimalColumnParser_FileLineObjectStub01.class
.getDeclaredMethod("setDecimal10", new Class[] {
BigDecimal.class });
String columnFormat = "-\\###,###,###.##";
ConcurrentHashMap<String, DecimalFormatLocal> dfMap = new ConcurrentHashMap<String, DecimalFormatLocal>();
ReflectionTestUtils.setField(decimalColumnParser, "dfMap", dfMap);
dfMap.clear();
DecimalFormatLocal dfl = Mockito.spy(
new DecimalFormatLocal(columnFormat));
PowerMockito.whenNew(DecimalFormatLocal.class).withArguments(
columnFormat).thenReturn(dfl);
// テスト実施
decimalColumnParser.parse(column, stub, method, columnFormat);
// 判定
BigDecimal result = stub.getDecimal10();
assertNotNull(result);
assertEquals(BigDecimal.valueOf(12345600, 2), result);
assertSame(dfMap, ReflectionTestUtils.getField(decimalColumnParser,
"dfMap"));
assertEquals(1, dfMap.size());
assertTrue(dfMap.containsKey(columnFormat));
DecimalFormatLocal dfMapValue = dfMap.get(columnFormat);
assertNotNull(dfMapValue);
assertEquals(columnFormat, ReflectionTestUtils.getField(dfMapValue,
"pattern"));
PowerMockito.verifyNew(DecimalFormatLocal.class).withArguments(
columnFormat);
}
/**
* testParse11() <br>
* <br>
* (正常系) <br>
* 観点:E <br>
* <br>
* 入力値:(引数) column:"-\\123,456.00"<br>
* (引数) t:以下の情報をObjectインスタンス<br>
* ・フィールド<br>
* - フィールド名:decimal02<br>
* - 型:BigDecimal<br>
* - 初期値:null<br>
* ・メソッド<br>
* - フィールドに対するgetter、setterメソッドが存在する。<br>
* ※setterメソッドの定義は引数methodの記述に従う。<br>
* (引数) method:対象フィールドに対するsetterメソッドのインスタンス<br>
* ・可視性:public<br>
* ・引数:1つ(BigDecimal型)<br>
* ・処理:引数を対象フィールドに格納する。<br>
* (引数) columnFormat:"-\\###,###,###.##"<br>
* (状態) dfMap:以下の要素を持つConcurrentHashMapインスタンス<br>
* ・key:"-\\###,###,###.##"<br>
* value:キーに対するDecimalFormatLocalインスタンス<br>
* <br>
* 期待値:(状態変化) t:対象フィールドにBigDecimal.valueOf(12345600, 2)値が格納される。<br>
* (状態変化) dfMap:以下の要素を持つConcurrentHashMapインスタンス<br>
* ・key:"-\\###,###,###.##"<br>
* value:キーに対するDecimalFormatLocalインスタンス<br>
* (状態変化) DecimalFormatLocal#<init>:呼ばれない<br>
* <br>
* 正常ケース<br>
* フォーマット用の文字列に対するDecimalFormatLocalがキャッシュに存在する場合、 問題なく実行されることを確認する。<br>
* また、フォーマット用の文字列に対する DecimalFormatLocalが新しく生成されないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testParse11() throws Exception {
DecimalColumnParser decimalColumnParser = new DecimalColumnParser();
// 前処理(引数)
String column = "-\\123,456.00";
DecimalColumnParser_FileLineObjectStub01 stub = new DecimalColumnParser_FileLineObjectStub01();
stub.setDecimal11(null);
Method method = DecimalColumnParser_FileLineObjectStub01.class
.getDeclaredMethod("setDecimal11", new Class[] {
BigDecimal.class });
String columnFormat = "-\\###,###,###.##";
ConcurrentHashMap<String, DecimalFormatLocal> dfMap = new ConcurrentHashMap<String, DecimalFormatLocal>();
DecimalFormatLocal dfMapValue = new DecimalFormatLocal(columnFormat);
dfMap.put(columnFormat, dfMapValue);
ReflectionTestUtils.setField(decimalColumnParser, "dfMap", dfMap);
// テスト実施
decimalColumnParser.parse(column, stub, method, columnFormat);
// 判定
BigDecimal result = stub.getDecimal11();
assertNotNull(result);
assertEquals(BigDecimal.valueOf(12345600, 2), result);
assertSame(dfMap, ReflectionTestUtils.getField(decimalColumnParser,
"dfMap"));
assertEquals(1, dfMap.size());
assertTrue(dfMap.containsKey(columnFormat));
DecimalFormatLocal formatLocal = dfMap.get(columnFormat);
assertSame(dfMapValue, formatLocal);
}
}