@Test
public void testMergeFile03() throws Exception {

    // 引数の設定
    List<String> fileList = new ArrayList<String>();
    String classFileName = this.getClass().getSimpleName() + ".class";
    URL url = this.getClass().getResource(classFileName);
    String directoryPath = url.getPath().substring(0,
            url.getPath().length() - classFileName.length());
    String newFile = directoryPath + "testMergeFile03_new.txt";
    // 前提条件の設定
    Field field = FileUtility.class.getDeclaredField("checkFileExist");
    field.setAccessible(true);
    field.set(FileUtility.class, false);        
    // テスト対象ファイルを初期化する。
    File testNewFile = new File(newFile);
    testNewFile.delete();
    testNewFile.createNewFile();
    FileWriter testNewFileFileWriter = null;
    BufferedReader postReader = null;
    try {
        testNewFileFileWriter = new FileWriter(testNewFile);
        testNewFileFileWriter.write("testMergeFile03_new.txtデータ");
        testNewFileFileWriter.flush();
        testNewFileFileWriter.close();
        PowerMockito.mockStatic(FileUtility.class, Mockito.CALLS_REAL_METHODS);
        // テスト実施
        FileUtility.mergeFile(fileList, newFile);
        fail("FileExceptionが発生しませんでした。失敗です。");
    } catch (FileException e) {
        // 例外の確認
        assertTrue(FileException.class.isAssignableFrom(e.getClass()));
        assertEquals(newFile + " is exist.", e.getMessage());
        assertEquals(newFile, e.getFileName());
        // 状態変化の確認
        PowerMockito.verifyPrivate(FileUtility.class).invoke("checkAbsolutePath", newFile);
        // マージ先のファイル内容確認
        File mergeFile = new File(newFile);
        assertTrue(mergeFile.exists());
        postReader = new BufferedReader(new InputStreamReader(
                new FileInputStream(mergeFile)));
        assertTrue(postReader.ready());
        String expectationResultData = "testMergeFile03_new.txtデータ";
        String data = "";
        for (int i = 0; i < expectationResultData.length(); i++) {
            assertTrue(i + "回目の判定で失敗しました。", postReader.ready());
            data += (char) postReader.read();
        }
        assertEquals(expectationResultData, data);
        assertFalse(postReader.ready());
    } finally {
        if (testNewFileFileWriter != null) {
            testNewFileFileWriter.close();
        }
        if (postReader != null) {
            postReader.close();
        }
        // テスト後ファイルを削除
        File file = new File(newFile);
        file.delete();
    }
}