@Test
public void testBuildLineReader06() throws Exception {

    // テスト対象のインスタンス化
    URL url = this.getClass().getResource(
            "AbstractFileLineIterator_buildLineReader01.txt");
    String fileName = url.getPath();
    Map<String, ColumnParser> columnParserMap = new HashMap<String, ColumnParser>();
    columnParserMap.put("java.lang.String", new NullColumnParser());
    AbstractFileLineIteratorImpl03<AbstractFileLineIterator_Stub20> fileLineIterator = new AbstractFileLineIteratorImpl03<AbstractFileLineIterator_Stub20>(
            fileName, AbstractFileLineIterator_Stub20.class,
            columnParserMap);
    // 引数の設定
    // なし
    // 前提条件の設定
    ReflectionTestUtils.setField(fileLineIterator, "fileEncoding", "aaa");
    ReflectionTestUtils.setField(fileLineIterator, "lineReader", null);
    ReflectionTestUtils.setField(fileLineIterator, "reader", null);
    // その他は、テスト対象のインスタンス化時に設定済み
    // テスト実施
    try {
        Method method = AbstractFileLineIterator.class.getDeclaredMethod("buildLineReader");
        method.setAccessible(true);
        method.invoke(fileLineIterator);
        fail("FileExceptionがスローされませんでした。");
    } catch (InvocationTargetException e) {
        // 返却値の確認
        // なし
        // 状態変化の確認
        assertNull(ReflectionTestUtils.getField(fileLineIterator, "reader"));
        assertNull(ReflectionTestUtils.getField(fileLineIterator, "lineReader"));
        assertSame(FileException.class, e.getTargetException().getClass());
        assertEquals("Failed in generation of reader.", e.getTargetException().getMessage());
        assertSame(UnsupportedEncodingException.class, e.getTargetException().getCause()
                .getClass());
        assertSame(fileName, ((FileException)e.getTargetException()).getFileName());
    }
}