package jp.terasoluna.fw.file.dao.standard; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; import java.net.URL; import java.util.HashMap; import java.util.Map; import org.junit.Test; import org.springframework.test.util.ReflectionTestUtils; import jp.terasoluna.fw.file.dao.FileLineWriter; /** * {@link jp.terasoluna.fw.file.dao.standard.PlainFileUpdateDAO} クラスのテスト。 * <p> * <h4>【クラスの概要】</h4> ファイル行オブジェクトを用いないファイル出力用のFileLineWriterを生成する。<br> * AbstractFileUpdateDAOのサブクラス。 * <p> * @see jp.terasoluna.fw.file.dao.standard.PlainFileUpdateDAO */ public class PlainFileUpdateDAOTest { /** * testExecute01() <br> * <br> * (正常系) <br> * 観点:E <br> * <br> * 入力値:(引数) fileName:PlainFileUpdateDAO01.txt<br> * データを持たないファイルのパス<br> * (引数) clazz:PlainFileUpdateDAO_Stub01<br> * 空実装<br> * (状態) AbstractFileUpdateDAO.columnFormatterMap:以下の要素を持つMap<String, ColumnFormatter>インスタンス<br> * ・"java.lang.String"=NullColumnFormatterインスタンス<br> * <br> * 期待値:(戻り値) FileLineWriter:PlainFileLineWriterのインスタンス<br> * (状態変化) PlainFileLineWriter#PlainFileLineWriter():1回呼び出されること<br> * 引数が渡されること<br> * <br> * 正常パターン<br> * 引数がそれぞれnot nullであれば、戻り値が帰ってくることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExecute01() throws Exception { // テスト対象のインスタンス化 PlainFileUpdateDAO fileUpdateDAO = new PlainFileUpdateDAO(); // 引数の設定 URL url = this.getClass().getResource("File_Empty.txt"); String fileName = url.getPath(); Class<PlainFileUpdateDAO_Stub01> clazz = PlainFileUpdateDAO_Stub01.class; // 前提条件の設定 Map<String, ColumnFormatter> columnFormatterMap = new HashMap<String, ColumnFormatter>(); columnFormatterMap.put("java.lang.String", new NullColumnFormatter()); ReflectionTestUtils.setField(fileUpdateDAO, "columnFormatterMap", columnFormatterMap); // テスト実施 FileLineWriter<PlainFileUpdateDAO_Stub01> fileLineWriter = fileUpdateDAO .execute(fileName, clazz); // 返却値の確認 assertEquals(PlainFileLineWriter.class, fileLineWriter.getClass()); assertSame(fileName, ReflectionTestUtils.getField(fileLineWriter, "fileName")); assertSame(clazz, ReflectionTestUtils.getField(fileLineWriter, "clazz")); assertSame(columnFormatterMap, ReflectionTestUtils.getField( fileLineWriter, "columnFormatterMap")); } }