@Test
@SuppressWarnings("unchecked")
public void testBuildStringConverter09() throws Exception {

    // テスト対象のインスタンス化
    URL url = this.getClass().getResource(
            "AbstractFileLineIterator_bulidFields01.txt");
    String fileName = url.getPath();
    Map<String, ColumnParser> columnParserMap = new HashMap<String, ColumnParser>();
    columnParserMap.put("java.lang.String", new NullColumnParser());
    AbstractFileLineIteratorImpl02<AbstractFileLineIterator_Stub47> fileLineIterator = new AbstractFileLineIteratorImpl02<AbstractFileLineIterator_Stub47>(
            fileName, AbstractFileLineIterator_Stub47.class,
            columnParserMap);
    // 引数の設定
    // なし
    // 前提条件の設定
    @SuppressWarnings("rawtypes")
    Map<Class, StringConverter> cache_stringConverterCacheMap = new HashMap<Class, StringConverter>();
    ReflectionTestUtils.setField(fileLineIterator, "stringConverterCacheMap",
            cache_stringConverterCacheMap);
    Method method = AbstractFileLineIterator.class.getDeclaredMethod("buildFields");
    method.setAccessible(true);
    method.invoke(fileLineIterator);
    // テスト対象のインスタンス化ですでに設定済み
    // テスト実施
    try {
        method = AbstractFileLineIterator.class.getDeclaredMethod("buildStringConverters");
        method.setAccessible(true);
        method.invoke(fileLineIterator);
        fail("FileLineExceptionがスローされませんでした。");
    } catch (InvocationTargetException e) {
        // 返却値の確認
        // なし
        // 状態変化の確認
        StringConverter[] stringConverters = (StringConverter[]) ReflectionTestUtils.getField(fileLineIterator, "stringConverters");
        assertNull(stringConverters);
        Field field = AbstractFileLineIterator.class.getDeclaredField("stringConverterCacheMap");
        field.setAccessible(true);
        @SuppressWarnings("rawtypes")
        Map<Class, StringConverter> stringConverterCacheMap = (Map<Class, StringConverter>) field.get(fileLineIterator);
        assertEquals(1, stringConverterCacheMap.size());
        Object cacheMap01 = stringConverterCacheMap
                .get(NullStringConverter.class);
        assertSame(NullStringConverter.class, cacheMap01.getClass());
        assertEquals(FileLineException.class, e.getTargetException().getClass());
        assertEquals("Failed in an instantiate of a stringConverter.", e.getTargetException()
                .getMessage());
        assertEquals(IllegalAccessException.class, e.getTargetException().getCause().getClass());
        assertSame(fileName, ((FileLineException)e.getTargetException()).getFileName());
        assertEquals(-1, ((FileLineException)e.getTargetException()).getLineNo());
        assertEquals("column2", ((FileLineException)e.getTargetException()).getColumnName());
        assertEquals(1, ((FileLineException)e.getTargetException()).getColumnIndex());
    }
}