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 jp.terasoluna.fw.file.dao.FileLineIterator; import org.springframework.test.util.ReflectionTestUtils; /** * {@link jp.terasoluna.fw.file.dao.standard.FixedFileQueryDAO} クラスのテスト。 * <p> * <h4>【クラスの概要】</h4> 固定長ファイル読取用のFileLineIterator生成クラス。 * <p> * @see jp.terasoluna.fw.file.dao.standard.FixedFileQueryDAO */ public class FixedFileQueryDAOTest { /** * testExecute01() <br> * <br> * (正常系) <br> * 観点:E.F <br> * <br> * 入力値:(引数) fileName:"aaa.txt"<br> * (引数) clazz:not null(FileFormatアノテーションを持つスタブを使用)<br> * (状態) FileQueryDAO.columnParserMap:以下の設定を持つHashMapのインスタンス<br> * 要素1<br> * key:"java.lang.String"<br> * value:ColumnParserインスタンス<br> * FixedFileLineIterator_ColumnParserStub01インスタンス<br> * 空実装<br> * <br> * 期待値:(戻り値) fileLineIterator:FixedFileLineIteratorのインスタンス<br> * (状態変化) FixedFileLineIterator():FixedFileLineIterator()のコンストラクタが1回呼ばれる。<br> * 引数1:引数fileName<br> * 引数2:引数clazz<br> * 引数3:FileQueryDAO.columnParserMap<br> * <br> * 正常パターン <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExecute01() throws Exception { // テスト対象のインスタンス化 FixedFileQueryDAO fileQueryDAO = new FixedFileQueryDAO(); // 引数の設定 URL url = FixedFileLineIteratorTest.class.getResource("/aaa.txt"); String fileName = url.getPath(); Class<FixedFileQueryDAO_Stub01> clazz = FixedFileQueryDAO_Stub01.class; // 前提条件の設定 Map<String, ColumnParser> columnParser = new HashMap<String, ColumnParser>(); ColumnParser parser = new FixedFileQueryDAO_ColumnParserStub01(); columnParser.put("java.lang.String", parser); ReflectionTestUtils.setField(fileQueryDAO, "columnParserMap", columnParser); // テスト実施 FileLineIterator<FixedFileQueryDAO_Stub01> fileLineiterator = fileQueryDAO .execute(fileName, clazz); // 返却値の確認 assertEquals(FixedFileLineIterator.class, fileLineiterator.getClass()); // 状態変化の確認 assertEquals(fileName, ReflectionTestUtils.getField(fileLineiterator, "fileName")); assertEquals(clazz, ReflectionTestUtils.getField(fileLineiterator, "clazz")); assertSame(columnParser, ReflectionTestUtils.getField(fileLineiterator, "columnParserMap")); } }