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.PlainFileQueryDAO} クラスのテスト。
* <p>
* <h4>【クラスの概要】</h4> ファイル行オブジェクトを使用しないのデータ取得用のFileLineIterator生成クラス。
* <p>
* @see jp.terasoluna.fw.file.dao.standard.PlainFileQueryDAO
*/
public class PlainFileQueryDAOTest {
/**
* testExcecute01() <br>
* <br>
* (正常系) <br>
* 観点:E <br>
* <br>
* 入力値:(引数) fileName:PlainFleQueryDAO01.txt<br>
* データを持たないファイルのパス<br>
* (引数) clazz:PlainFileQueryDAO_Stub01<br>
* 空実装<br>
* (状態) AbstractFileQueryDAO.columnParserMap:以下の要素を持つMap<String, ColumnParser>インスタンス<br>
* ・"java.lang.String"=NullColumnParserインスタンス<br>
* <br>
* 期待値:(戻り値) FileLineIterator:PlainFileLineIteratorのインスタンス<br>
* (状態変化) PlainFileLineIterator#PlainFileLineIterator():1回呼ばれること。<br>
* 引数が渡されることを確認する。<br>
* <br>
* PlainFileLineIteratorインスタンスが生成されることを確認する <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testExcecute01() throws Exception {
// テスト対象のインスタンス化
PlainFileQueryDAO plainFileQueryDAO = new PlainFileQueryDAO();
// 引数の設定
URL url = this.getClass().getResource("File_Empty.txt");
String fileName = url.getPath();
Class<PlainFileQueryDAO_Stub01> clazz = PlainFileQueryDAO_Stub01.class;
// 前提条件の設定
Map<String, ColumnParser> columnParserMap = new HashMap<String, ColumnParser>();
columnParserMap.put("java.lang.String", new NullColumnParser());
ReflectionTestUtils.setField(plainFileQueryDAO, "columnParserMap",
columnParserMap);
// テスト実施
FileLineIterator<PlainFileQueryDAO_Stub01> result = plainFileQueryDAO
.execute(fileName, clazz);
// 返却値の確認
assertEquals(PlainFileLineIterator.class, result.getClass());
// 状態変化の確認
assertSame(fileName, ReflectionTestUtils.getField(result, "fileName"));
assertSame(clazz, ReflectionTestUtils.getField(result, "clazz"));
assertSame(columnParserMap, ReflectionTestUtils.getField(result,
"columnParserMap"));
}
}