package jp.terasoluna.fw.file.dao.standard;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import jp.terasoluna.fw.file.annotation.PaddingType;
import jp.terasoluna.fw.file.annotation.TrimType;
import jp.terasoluna.fw.file.dao.FileException;
import org.junit.Test;
/**
* {@link jp.terasoluna.fw.file.dao.standard.FileDAOUtility} クラスのテスト。
* <p>
* <h4>【クラスの概要】</h4> パディング、トリム処理を提供する。
* <p>
* @see jp.terasoluna.fw.file.dao.standard.FileDAOUtility
*/
public class FileDAOUtilityTest {
/**
* testPadding01() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:0<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (左パディング)<br>
* 引数columnBytesがcolumnStringより小さい場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding01() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = 0;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.LEFT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
/**
* testPadding02() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:1<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (左パディング)<br>
* 引数columnBytesがcolumnStringのバイト数と同じ場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding02() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = 1;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.LEFT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
/**
* testPadding03() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:" 1"(1の左に半角スペース2文字)<br>
* <br>
* 正常ケース<br>
* (左パディング)<br>
* 引数columnStringに不足した長さ分を元データの左にpaddingCharで埋めて文字列が取得されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding03() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = 3;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.LEFT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals(" 1", result);
}
/**
* testPadding04() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:0<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.RIGHT<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (右パディング)<br>
* 引数columnBytesがcolumnStringより小さい場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding04() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = 0;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.RIGHT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
/**
* testPadding05() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:1<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.RIGHT<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (右パディング)<br>
* 引数columnBytesがcolumnStringのバイト数と同じ場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding05() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = 1;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.RIGHT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
/**
* testPadding06() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.RIGHT<br>
* <br>
* 期待値:(戻り値) 文字列:"1 "(1の右に半角スペース2文字)<br>
* <br>
* 正常ケース<br>
* (右パディング)<br>
* 引数columnStringに不足した長さ分を元データの右にpaddingCharで埋めて文字列が取得されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding06() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = 3;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.RIGHT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("1 ", result);
}
/**
* testPadding07() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.NONE<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (パディングなし)<br>
* columnStringがそのまま取得されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding07() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = 3;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.NONE;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
/**
* testPadding08() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:' '(全角空白文字)<br>
* (引数) paddingType:PaddingType.LEFT<br>
* <br>
* 期待値:(状態変化) -:以下の情報を持つFileExceptionが発生する。<br>
* ・メッセージ:"Padding char is not half-width character."<br>
* <br>
* 異常ケース<br>
* (パディングあり)<br>
* パディング文字は半角文字ではない場合、例外が発生することを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding08() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = 3;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.LEFT;
try {
// テスト実施
FileDAOUtility.padding(columnString, fileEncoding, columnBytes,
paddingChar, paddingType);
fail("FileException例外が発生しませんでした。");
} catch (FileException e) {
// 判定
assertEquals("Padding char is not half-width character.", e
.getMessage());
}
}
/**
* testPadding09() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:"XXX"<br>
* ※存在しないエンコーディング<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.LEFT<br>
* <br>
* 期待値:(状態変化) -:以下の設定を持つFileExceptionが発生する。<br>
* ・メッセージ:"Specified Encoding : XXX is not supported"<br>
* ・原因例外:UnsupportedEncodingException<br>
* <br>
* 異常ケース<br>
* (パディングあり)<br>
* 存在しないエンコーディングが指定された場合、例外が発生することを確認する <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding09() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "XXX";
int columnBytes = 3;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.LEFT;
try {
// テスト実施
FileDAOUtility.padding(columnString, fileEncoding, columnBytes,
paddingChar, paddingType);
fail("FileException例外が発生しませんでした。");
} catch (FileException e) {
// 判定
assertEquals("Specified Encoding : XXX is not supported", e
.getMessage());
assertTrue(e.getCause() instanceof UnsupportedEncodingException);
}
}
/**
* testPadding10() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:"XXX"<br>
* ※存在しないエンコーディング<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:' '(全角空白文字)<br>
* (引数) paddingType:PaddingType.NONE<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (パディングなし)<br>
* 他引数の状態と関係なくcolumnStringがそのまま取得されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding10() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "XXX";
int columnBytes = 3;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.NONE;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
/**
* testPadding11() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:""<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:0<br>
* (引数) paddingChar:'!'(半角文字)<br>
* (引数) paddingType:PaddingType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:""<br>
* <br>
* 正常ケース<br>
* (左パディング、対象データが空文字)<br>
* 引数columnBytesがcolumnStringより小さい場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding11() throws Exception {
// 前処理(引数)
String columnString = "";
String fileEncoding = "Shift_JIS";
int columnBytes = 0;
char paddingChar = '!';
PaddingType paddingType = PaddingType.LEFT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("", result);
}
/**
* testPadding12() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:""<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:0<br>
* (引数) paddingChar:'!'(半角文字)<br>
* (引数) paddingType:PaddingType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:""<br>
* <br>
* 正常ケース<br>
* (左パディング、対象データが空文字)<br>
* 引数columnBytesがcolumnStringのバイト数と同じ場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding12() throws Exception {
// 前処理(引数)
String columnString = "";
String fileEncoding = "Shift_JIS";
int columnBytes = 0;
char paddingChar = '!';
PaddingType paddingType = PaddingType.LEFT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("", result);
}
/**
* testPadding13() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:""<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:'!'(半角文字)<br>
* (引数) paddingType:PaddingType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:"!!!"<br>
* <br>
* 正常ケース<br>
* (左パディング、対象データが空文字)<br>
* 引数columnStringに不足した長さ分を元データの左にpaddingCharで埋めて文字列が 取得されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding13() throws Exception {
// 前処理(引数)
String columnString = "";
String fileEncoding = "Shift_JIS";
int columnBytes = 3;
char paddingChar = '!';
PaddingType paddingType = PaddingType.LEFT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("!!!", result);
}
/**
* testPadding14() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:""<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:0<br>
* (引数) paddingChar:'!'(半角文字)<br>
* (引数) paddingType:PaddingType.RIGHT<br>
* <br>
* 期待値:(戻り値) 文字列:""<br>
* <br>
* 正常ケース<br>
* (右パディング、対象データが空文字)<br>
* 引数columnBytesがcolumnStringより小さい場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding14() throws Exception {
// 前処理(引数)
String columnString = "";
String fileEncoding = "Shift_JIS";
int columnBytes = 0;
char paddingChar = '!';
PaddingType paddingType = PaddingType.RIGHT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("", result);
}
/**
* testPadding15() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:""<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:0<br>
* (引数) paddingChar:'!'(半角文字)<br>
* (引数) paddingType:PaddingType.RIGHT<br>
* <br>
* 期待値:(戻り値) 文字列:""<br>
* <br>
* 正常ケース<br>
* (右パディング、対象データが空文字)<br>
* 引数columnBytesがcolumnStringのバイト数と同じ場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding15() throws Exception {
// 前処理(引数)
String columnString = "";
String fileEncoding = "Shift_JIS";
int columnBytes = 0;
char paddingChar = '!';
PaddingType paddingType = PaddingType.RIGHT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("", result);
}
/**
* testPadding16() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:""<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:'!'(半角文字)<br>
* (引数) paddingType:PaddingType.RIGHT<br>
* <br>
* 期待値:(戻り値) 文字列:"!!!"<br>
* <br>
* 正常ケース<br>
* (右パディング、対象データが空文字)<br>
* 引数columnStringに不足した長さ分を元データの右にpaddingCharで埋めて文字列が 取得されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding16() throws Exception {
// 前処理(引数)
String columnString = "";
String fileEncoding = "Shift_JIS";
int columnBytes = 3;
char paddingChar = '!';
PaddingType paddingType = PaddingType.RIGHT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("!!!", result);
}
/**
* testPadding17() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:""<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:'!'(半角文字)<br>
* (引数) paddingType:PaddingType.NONE<br>
* <br>
* 期待値:(戻り値) 文字列:""<br>
* <br>
* 正常ケース<br>
* (パディングなし、対象データが空文字)<br>
* columnStringがそのまま取得されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding17() throws Exception {
// 前処理(引数)
String columnString = "";
String fileEncoding = "Shift_JIS";
int columnBytes = 3;
char paddingChar = '!';
PaddingType paddingType = PaddingType.NONE;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("", result);
}
/**
* testPadding18() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) columnString:null<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.LEFT<br>
* <br>
* 期待値:(状態変化) -:NullPointerExceptionが発生する。<br>
* <br>
* 異常ケース<br>
* 引数columnStringにnullの場合、例外が発生することを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding18() throws Exception {
// 前処理(引数)
String columnString = null;
String fileEncoding = "Shift_JIS";
int columnBytes = 3;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.LEFT;
try {
// テスト実施
FileDAOUtility.padding(columnString, fileEncoding, columnBytes,
paddingChar, paddingType);
fail("NullPointerExceptionが発生しませんでした。");
} catch (NullPointerException e) {
// 判定
assertTrue(e instanceof NullPointerException);
}
}
/**
* testPadding19() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:null<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.LEFT<br>
* <br>
* 期待値:(状態変化) -:NullPointerExceptionが発生する。<br>
* <br>
* 異常ケース<br>
* 引数fileEncodingにnullの場合、例外が発生することを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding19() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = null;
int columnBytes = 3;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.LEFT;
try {
// テスト実施
FileDAOUtility.padding(columnString, fileEncoding, columnBytes,
paddingChar, paddingType);
fail("NullPointerExceptionが発生しませんでした。");
} catch (NullPointerException e) {
// 判定
assertTrue(e instanceof NullPointerException);
}
}
/**
* testPadding20() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:-3<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (左パディング)<br>
* 引数columnBytesが0より小さい場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding20() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = -3;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.LEFT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
/**
* testPadding21() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:null<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* 引数paddingTypeがnullの場合、処理を行わないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding21() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = 3;
char paddingChar = ' ';
PaddingType paddingType = null;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
/**
* testPadding22() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"(全角文字)<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:" 1"(1の左に半角スペース1文字)<br>
* <br>
* 正常ケース<br>
* (左パディング、全角文字)<br>
* 引数columnStringに不足した長さ分を元データの左にpaddingCharで 埋めて文字列が取得されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding22() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = 3;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.LEFT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals(" 1", result);
}
/**
* testPadding23() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"(全角文字)<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.RIGHT<br>
* <br>
* 期待値:(戻り値) 文字列:"1 "(1の右に半角スペース1文字)<br>
* <br>
* 正常ケース<br>
* (右パディング、全角文字)<br>
* 引数columnStringに不足した長さ分を元データの右にpaddingCharで埋めて文字列が取得されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding23() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = 3;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.RIGHT;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("1 ", result);
}
/**
* testPadding24() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"(全角文字)<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) columnBytes:3<br>
* (引数) paddingChar:' '(半角空白文字)<br>
* (引数) paddingType:PaddingType.NONE<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (パディングなし、全角文字)<br>
* columnStringがそのまま取得されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testPadding24() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
int columnBytes = 3;
char paddingChar = ' ';
PaddingType paddingType = PaddingType.NONE;
// テスト実施
String result = FileDAOUtility.padding(columnString, fileEncoding,
columnBytes, paddingChar, paddingType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
/**
* testTrim01() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (左トリム)<br>
* trimCharで設定した文字がcolumnStringにない場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim01() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.LEFT;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
/**
* testTrim02() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1aaa"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:"1aaa"<br>
* <br>
* 正常ケース<br>
* (左トリム)<br>
* 文字列の左側にtrimCharで設定した文字がない場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim02() throws Exception {
// 前処理(引数)
String columnString = "1aaa";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.LEFT;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("1aaa", result);
}
/**
* testTrim03() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"aaa1aaa"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:"1aaa"<br>
* <br>
* 正常ケース<br>
* (左トリム)<br>
* columの文字列の先頭から順にtrimCharで設定した文字を削除する。 trimCharと異なる文字が現れた時点で処理が終わることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim03() throws Exception {
// 前処理(引数)
String columnString = "aaa1aaa";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.LEFT;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("1aaa", result);
}
/**
* testTrim04() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.RIGHT<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (右トリム)<br>
* trimCharで設定した文字がない場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim04() throws Exception {
// 前処理(引数)
String columnString = "1";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.RIGHT;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
/**
* testTrim05() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"aaa1"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.RIGHT<br>
* <br>
* 期待値:(戻り値) 文字列:"aaa1"<br>
* <br>
* 正常ケース<br>
* (右トリム)<br>
* 文字列の右側にtrimCharで設定した文字がない場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim05() throws Exception {
// 前処理(引数)
String columnString = "aaa1";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.RIGHT;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("aaa1", result);
}
/**
* testTrim06() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"aaa1aaa"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.RIGHT<br>
* <br>
* 期待値:(戻り値) 文字列:"aaa1"<br>
* <br>
* 正常ケース<br>
* (右トリム)<br>
* columの文字列の後ろから順にtrimCharで設定した文字を削除する。trimCharと異なる文字が現れた時点で処理が終わることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim06() throws Exception {
// 前処理(引数)
String columnString = "aaa1aaa";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.RIGHT;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("aaa1", result);
}
/**
* testTrim07() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"aaa"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.NONE<br>
* <br>
* 期待値:(戻り値) 文字列:"aaa"<br>
* <br>
* 正常ケース<br>
* (トリムなし)<br>
* 正常パターン。<br>
* columnがそのまま返却される。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim07() throws Exception {
// 前処理(引数)
String columnString = "aaa";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.NONE;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("aaa", result);
}
/**
* testTrim08() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) columnString:"aaa"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'あ'<br>
* (引数) trimType:TrimType.LEFT<br>
* <br>
* 期待値:(状態変化) -:以下の情報を持つFileExceptionが発生する。<br>
* ・メッセージ:"Trim char is not half-width character."<br>
* <br>
* 異常ケース<br>
* (トリムあり)<br>
* パディング文字は半角文字ではない場合、例外が発生することを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim08() throws Exception {
// 前処理(引数)
String columnString = "aaa";
String fileEncoding = "Shift_JIS";
char trimChar = 'あ';
TrimType trimType = TrimType.LEFT;
try {
// テスト実施
FileDAOUtility.trim(columnString, fileEncoding, trimChar, trimType);
fail("FileExceptionが発生しませんでした。");
} catch (FileException e) {
// 判定
assertEquals("Trim char is not half-width character.", e
.getMessage());
}
}
/**
* testTrim09() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) columnString:"aaa"<br>
* (引数) fileEncoding:"XXX"<br>
* ※存在しないエンコーディング<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.LEFT<br>
* <br>
* 期待値:(状態変化) -:以下の設定を持つFileExceptionが発生する。<br>
* ・メッセージ:"Specified Encoding : XXX is not supported"<br>
* ・原因例外:UnsupportedEncodingException<br>
* <br>
* 異常ケース<br>
* (トリムあり)<br>
* 存在しないエンコーディングが指定された場合、例外が発生することを確認する <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim09() throws Exception {
// 前処理(引数)
String columnString = "aaa";
String fileEncoding = "XXX";
char trimChar = 'a';
TrimType trimType = TrimType.LEFT;
try {
// テスト実施
FileDAOUtility.trim(columnString, fileEncoding, trimChar, trimType);
fail("FileExceptionが発生しませんでした。");
} catch (FileException e) {
// 判定
assertEquals("Specified Encoding : XXX is not supported", e
.getMessage());
assertTrue(e.getCause() instanceof UnsupportedEncodingException);
}
}
/**
* testTrim10() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"aaa"<br>
* (引数) fileEncoding:"XXX"<br>
* ※存在しないエンコーディング<br>
* (引数) trimChar:'あ'<br>
* (引数) trimType:TrimType.NONE<br>
* <br>
* 期待値:(戻り値) 文字列:"aaa"<br>
* <br>
* 正常ケース<br>
* (トリムなし)<br>
* 他引数の状態と関係なくcolumnStringがそのまま取得されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim10() throws Exception {
// 前処理(引数)
String columnString = "aaa";
String fileEncoding = "XXX";
char trimChar = 'あ';
TrimType trimType = TrimType.NONE;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("aaa", result);
}
/**
* testTrim11() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:""<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:' '<br>
* (引数) trimType:TrimType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:""<br>
* <br>
* 正常ケース<br>
* (左トリム、対象データが空文字)<br>
* trimCharで設定した文字がcolumnStringにない場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim11() throws Exception {
// 前処理(引数)
String columnString = "";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.LEFT;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("", result);
}
/**
* testTrim12() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:""<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.RIGHT<br>
* <br>
* 期待値:(戻り値) 文字列:""<br>
* <br>
* 正常ケース<br>
* (右トリム、対象データが空文字)<br>
* trimCharで設定した文字がない場合、処理が行われないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim12() throws Exception {
// 前処理(引数)
String columnString = "";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.RIGHT;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("", result);
}
/**
* testTrim13() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:""<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.NONE<br>
* <br>
* 期待値:(戻り値) 文字列:""<br>
* <br>
* 正常ケース<br>
* (トリムなし、対象データが空文字)<br>
* 正常パターン。<br>
* columnがそのまま返却される。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim13() throws Exception {
// 前処理(引数)
String columnString = "";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.NONE;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("", result);
}
/**
* testTrim14() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"aaa1aaa"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.BOTH<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (両トリム)<br>
* columの文字列の先頭から順にtrimCharで設定した文字を削除する。trimCharと異なる文字が現れた時点で処理が終わることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim14() throws Exception {
// 前処理(引数)
String columnString = "aaa1aaa";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.BOTH;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
/**
* testTrim15() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:""<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.BOTH<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (両トリム、対象データが空文字)<br>
* 対象データがそのまま取得されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim15() throws Exception {
// 前処理(引数)
String columnString = "";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.BOTH;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("", result);
}
/**
* testTrim16() <br>
* <br>
* (異常系) <br>
* 観点:C, D, E, G <br>
* <br>
* 入力値:(引数) columnString:null<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.LEFT<br>
* <br>
* 期待値:(状態変化) -:NullPointerExceptionが発生する。<br>
* <br>
* 異常ケース<br>
* 引数columnStringがnullの場合、例外が発生することを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim16() throws Exception {
// 前処理(引数)
String columnString = null;
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.LEFT;
try {
// テスト実施
FileDAOUtility.trim(columnString, fileEncoding, trimChar, trimType);
fail("NullPointerExceptionが発生しませんでした。");
} catch (NullPointerException e) {
// 判定
assertTrue(e instanceof NullPointerException);
}
}
/**
* testTrim17() <br>
* <br>
* (異常系) <br>
* 観点:C, D, E, G <br>
* <br>
* 入力値:(引数) columnString:"aaa1aaa"<br>
* (引数) fileEncoding:null<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.LEFT<br>
* <br>
* 期待値:(状態変化) -:NullPointerExceptionが発生する。<br>
* <br>
* 異常ケース<br>
* 引数fileEncodingがnullの場合、例外が発生することを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim17() throws Exception {
// 前処理(引数)
String columnString = "aaa1aaa";
String fileEncoding = null;
char trimChar = 'a';
TrimType trimType = TrimType.LEFT;
try {
// テスト実施
FileDAOUtility.trim(columnString, fileEncoding, trimChar, trimType);
fail("NullPointerExceptionが発生しませんでした。");
} catch (NullPointerException e) {
// 判定
assertTrue(e instanceof NullPointerException);
}
}
/**
* testTrim18() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"aaa1aaa"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:null<br>
* <br>
* 期待値:(戻り値) 文字列:"aaa1aaa"<br>
* <br>
* 正常ケース<br>
* 引数trimTypeがnullの場合、処理を行わないことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim18() throws Exception {
// 前処理(引数)
String columnString = "aaa1aaa";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = null;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("aaa1aaa", result);
}
/**
* testTrim19() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"aaaaaa"<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.BOTH<br>
* <br>
* 期待値:(戻り値) 文字列:""<br>
* <br>
* 正常ケース<br>
* (両トリム)<br>
* 全文字がトリム対象文字の場合、空文字になることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim19() throws Exception {
// 前処理(引数)
String columnString = "aaaaaa";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.BOTH;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("", result);
}
/**
* testTrim20() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"aaa1aaa"(全角文字)<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.LEFT<br>
* <br>
* 期待値:(戻り値) 文字列:"1aaa"<br>
* <br>
* 正常ケース<br>
* (左トリム、全角文字)<br>
* columの文字列の先頭から順にtrimCharで設定した文字を削除する。 trimCharと異なる文字が現れた時点で処理が終わることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim20() throws Exception {
// 前処理(引数)
String columnString = "aaa1aaa";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.LEFT;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("1aaa", result);
}
/**
* testTrim21() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"aaa1aaa"(全角文字)<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.RIGHT<br>
* <br>
* 期待値:(戻り値) 文字列:"aaa1"<br>
* <br>
* 正常ケース<br>
* (右トリム、全角文字)<br>
* columの文字列の後ろから順にtrimCharで設定した文字を削除する。 trimCharと異なる文字が現れた時点で処理が終わることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim21() throws Exception {
// 前処理(引数)
String columnString = "aaa1aaa";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.RIGHT;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("aaa1", result);
}
/**
* testTrim22() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"aaa1aaa"(全角文字)<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.NONE<br>
* <br>
* 期待値:(戻り値) 文字列:"aaa1aaa"<br>
* <br>
* 正常ケース<br>
* (トリムなし、全角文字)<br>
* 正常パターン。<br>
* columnがそのまま返却される。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim22() throws Exception {
// 前処理(引数)
String columnString = "aaa1aaa";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.NONE;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("aaa1aaa", result);
}
/**
* testTrim23() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) columnString:"aaa1aaa"(全角文字)<br>
* (引数) fileEncoding:Shift_JIS<br>
* (引数) trimChar:'a'<br>
* (引数) trimType:TrimType.BOTH<br>
* <br>
* 期待値:(戻り値) 文字列:"1"<br>
* <br>
* 正常ケース<br>
* (両トリム、全角文字)<br>
* columの文字列の先頭から順にtrimCharで設定した文字を削除する。 trimCharと異なる文字が現れた時点で処理が終わることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testTrim23() throws Exception {
// 前処理(引数)
String columnString = "aaa1aaa";
String fileEncoding = "Shift_JIS";
char trimChar = 'a';
TrimType trimType = TrimType.BOTH;
// テスト実施
String result = FileDAOUtility.trim(columnString, fileEncoding,
trimChar, trimType);
// 判定
assertNotNull(result);
assertEquals("1", result);
}
// /**
// * testIsHalfWidthChar01() <br>
// * <br>
// * (正常系) <br>
// * 観点:C, D, E <br>
// * <br>
// * 入力値:(引数) fileEncoding:"Shift_JIS"<br>
// * (引数) checkChar:','<br>
// * (状態) encodingCache:要素を持たないConcurrentHashMapインスタンス<br>
// * <br>
// * 期待値:(戻り値) boolean:true<br>
// * (状態変化) encodingCache:以下の要素を持つConcurrentHashMapインスタンス<br>
// * ・key:"Shift_JIS"<br>
// * value:以下の要素を持つConcurrentHashMapインスタンス<br>
// * - key:',' | value:TRUE<br>
// * (状態変化) Map#put():2回呼ばれる<br>
// * <br>
// * 正常ケース<br>
// * (キャッシュなし)<br>
// * エンコーディングに合う半角文字が入力された場合、TRUEが返されることを確認する。<br>
// * また、その情報がキャッシュに残ることを確認する。 <br>
// * @throws Exception このメソッドで発生した例外
// */
// @SuppressWarnings("unchecked")
// @Test
// public void testIsHalfWidthChar01() throws Exception {
// // 前処理(引数)
// String fileEncoding = "Shift_JIS";
// char checkChar = ',';
//
// // 前処理(状態)
// Map<String, Map<Character, Boolean>> encodingCache = (Map<String, Map<Character, Boolean>>) UTUtil
// .getPrivateField(FileDAOUtility.class, "encodingCache");
// encodingCache.clear();
//
// // テスト実施
// Object result = UTUtil.invokePrivate(FileDAOUtility.class,
// "isHalfWidthChar", new Class[] { String.class, char.class },
// new Object[] { fileEncoding, checkChar });
//
// // 判定
// assertTrue(Boolean.class.cast(result));
//
// assertEquals(1, encodingCache.size());
// assertTrue(encodingCache.containsKey(fileEncoding));
//
// Map<Character, Boolean> shiftJISCacheMap = encodingCache
// .get(fileEncoding);
// assertEquals(1, shiftJISCacheMap.size());
// assertTrue(shiftJISCacheMap.containsKey(checkChar));
// assertTrue(Boolean.class.cast(shiftJISCacheMap.get(checkChar)));
//
// assertEquals(2, VMOUTUtil.getCallCount(Map.class, "put"));
//
// // 試験対象初期化
// encodingCache.clear();
// }
/**
* testIsHalfWidthChar02() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) fileEncoding:"Shift_JIS"<br>
* (引数) checkChar:','<br>
* (状態) encodingCache:以下の要素を持つConcurrentHashMapインスタンス<br>
* ・key:"UTF-8"<br>
* value:以下の要素を持つConcurrentHashMapインスタンス<br>
* - key:',' | value:TRUE<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) encodingCache:以下の要素を持つConcurrentHashMapインスタンス<br>
* ・key:"UTF-8"<br>
* value:以下の要素を持つConcurrentHashMapインスタンス<br>
* - key:',' | value:TRUE<br>
* 以下の要素を持つConcurrentHashMapインスタンス<br>
* ・key:"Shift_JIS"<br>
* value:以下の要素を持つConcurrentHashMapインスタンス<br>
* - key:',' | value:TRUE<br>
* (状態変化) Map#put():2回呼ばれる<br>
* <br>
* 正常ケース<br>
* (キャッシュあり、エンコーディングに対するキャッシュなし)<br>
* エンコーディングに合う半角文字が入力された場合、TRUEが返されることを確認する。<br>
* また、その情報がキャッシュに残ることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@SuppressWarnings("unchecked")
@Test
public void testIsHalfWidthChar02() throws Exception {
// 前処理(引数)
String fileEncoding = "Shift_JIS";
char checkChar = ',';
// 前処理(状態)
Field field = FileDAOUtility.class.getDeclaredField("encodingCache");
field.setAccessible(true);
Map<String, Map<Character, Boolean>> encodingCache = (Map<String, Map<Character, Boolean>>) field
.get(FileDAOUtility.class);
encodingCache.clear();
Map<Character, Boolean> inputEncodingCache = new ConcurrentHashMap<Character, Boolean>();
inputEncodingCache.put(checkChar, Boolean.TRUE);
encodingCache.put("UTF-8", inputEncodingCache);
// テスト実施
Method method = FileDAOUtility.class.getDeclaredMethod(
"isHalfWidthChar", new Class[] { String.class, char.class });
method.setAccessible(true);
Object result = method.invoke(FileDAOUtility.class, new Object[] {
fileEncoding, checkChar });
// 判定(戻り値)
assertTrue(Boolean.class.cast(result));
// 判定(encodingCache)
assertEquals(2, encodingCache.size());
// 判定(UTF-8)
assertTrue(encodingCache.containsKey("UTF-8"));
Map<Character, Boolean> uTF8CacheMap = encodingCache.get("UTF-8");
assertEquals(1, uTF8CacheMap.size());
assertTrue(uTF8CacheMap.containsKey(checkChar));
assertTrue(Boolean.class.cast(uTF8CacheMap.get(checkChar)));
// 判定(Shif_JIS)
assertTrue(encodingCache.containsKey(fileEncoding));
Map<Character, Boolean> shiftJISCacheMap = encodingCache.get(
fileEncoding);
assertEquals(1, shiftJISCacheMap.size());
assertTrue(shiftJISCacheMap.containsKey(checkChar));
assertTrue(Boolean.class.cast(shiftJISCacheMap.get(checkChar)));
}
/**
* testIsHalfWidthChar03() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) fileEncoding:"Shift_JIS"<br>
* (引数) checkChar:','<br>
* (状態) encodingCache:以下の要素を持つConcurrentHashMapインスタンス<br>
* ・key:"Shift_JIS"<br>
* value:以下の要素を持つConcurrentHashMapインスタンス<br>
* - key:',' | value:TRUE<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) encodingCache:以下の要素を持つConcurrentHashMapインスタンス<br>
* ・key:"Shift_JIS"<br>
* value:以下の要素を持つConcurrentHashMapインスタンス<br>
* - key:',' | value:TRUE<br>
* (状態変化) Map#put():呼ばれない<br>
* <br>
* 正常ケース<br>
* (キャッシュあり、エンコーディング・チェック文字に対するキャッシュあり)<br>
* エンコーディングに合う半角文字が入力された場合、TRUEが返されることを確認する。<br>
* また、その情報がキャッシュから取得されたことを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@SuppressWarnings("unchecked")
@Test
public void testIsHalfWidthChar03() throws Exception {
// 前処理(引数)
String fileEncoding = "Shift_JIS";
char checkChar = ',';
// 前処理(状態)
Field field = FileDAOUtility.class.getDeclaredField("encodingCache");
field.setAccessible(true);
Map<String, Map<Character, Boolean>> encodingCache = (Map<String, Map<Character, Boolean>>) field
.get(FileDAOUtility.class);
encodingCache.clear();
Map<Character, Boolean> inputEncodingCache = new ConcurrentHashMap<Character, Boolean>();
inputEncodingCache.put(checkChar, Boolean.TRUE);
encodingCache.put("Shift_JIS", inputEncodingCache);
// テスト実施
Method method = FileDAOUtility.class.getDeclaredMethod(
"isHalfWidthChar", new Class[] { String.class, char.class });
method.setAccessible(true);
Object result = method.invoke(FileDAOUtility.class, new Object[] {
fileEncoding, checkChar });
// 判定(戻り値)
assertTrue(Boolean.class.cast(result));
// 判定(encodingCache)
assertEquals(1, encodingCache.size());
assertTrue(encodingCache.containsKey(fileEncoding));
Map<Character, Boolean> shiftJISCacheMap = encodingCache.get(
fileEncoding);
assertEquals(1, shiftJISCacheMap.size());
assertTrue(shiftJISCacheMap.containsKey(checkChar));
assertTrue(Boolean.class.cast(shiftJISCacheMap.get(checkChar)));
}
/**
* testIsHalfWidthChar04() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) fileEncoding:"Shift_JIS"<br>
* (引数) checkChar:','<br>
* (状態) encodingCache:以下の要素を持つConcurrentHashMapインスタンス<br>
* ・key:"Shift_JIS"<br>
* value:以下の要素を持つConcurrentHashMapインスタンス<br>
* - key:'、' | value:FALSE<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) encodingCache:以下の要素を持つConcurrentHashMapインスタンス<br>
* ・key:"Shift_JIS"<br>
* value:以下の要素を持つConcurrentHashMapインスタンス<br>
* - key:'、' | value:FALSE<br>
* - key:',' | value:TRUE<br>
* (状態変化) Map#put():1回呼ばれる<br>
* <br>
* 正常ケース<br>
* (キャッシュあり、エンコーディングに対するキャッシュはあるが、 チェック文字に対するキャッシュではない。)<br>
* エンコーディングに合う半角文字が入力された場合、TRUEが返されることを確認する。<br>
* また、その情報がキャッシュされることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@SuppressWarnings("unchecked")
@Test
public void testIsHalfWidthChar04() throws Exception {
// 前処理(引数)
String fileEncoding = "Shift_JIS";
char checkChar = ',';
// 前処理(状態)
Field field = FileDAOUtility.class.getDeclaredField("encodingCache");
field.setAccessible(true);
Map<String, Map<Character, Boolean>> encodingCache = (Map<String, Map<Character, Boolean>>) field
.get(FileDAOUtility.class);
encodingCache.clear();
Map<Character, Boolean> inputEncodingCache = new ConcurrentHashMap<Character, Boolean>();
inputEncodingCache.put('、', Boolean.FALSE);
encodingCache.put("Shift_JIS", inputEncodingCache);
// テスト実施
Method method = FileDAOUtility.class.getDeclaredMethod(
"isHalfWidthChar", new Class[] { String.class, char.class });
method.setAccessible(true);
Object result = method.invoke(FileDAOUtility.class, new Object[] {
fileEncoding, checkChar });
// 判定(戻り値)
assertTrue(Boolean.class.cast(result));
// 判定(encodingCache)
assertEquals(1, encodingCache.size());
assertTrue(encodingCache.containsKey(fileEncoding));
Map<Character, Boolean> shiftJISCacheMap = encodingCache.get(
fileEncoding);
assertEquals(2, shiftJISCacheMap.size());
assertTrue(shiftJISCacheMap.containsKey(checkChar));
assertFalse(Boolean.class.cast(shiftJISCacheMap.get('、')));
assertTrue(Boolean.class.cast(shiftJISCacheMap.get(checkChar)));
}
/**
* testIsHalfWidthChar05() <br>
* <br>
* (正常系) <br>
* 観点:C, D, E <br>
* <br>
* 入力値:(引数) fileEncoding:"Shift_JIS"<br>
* (引数) checkChar:'、'<br>
* (状態) encodingCache:要素を持たないConcurrentHashMapインスタンス<br>
* <br>
* 期待値:(戻り値) boolean:false<br>
* (状態変化) encodingCache:以下の要素を持つConcurrentHashMapインスタンス<br>
* ・key:"Shift_JIS"<br>
* value:以下の要素を持つConcurrentHashMapインスタンス<br>
* - key:'、' | value:FALSE<br>
* (状態変化) Map#put():2回呼ばれる<br>
* <br>
* 正常ケース<br>
* (キャッシュなし)<br>
* エンコーディングに合う全角文字が入力された場合、FALSEが返されることを確認する。<br>
* また、その情報がキャッシュに残ることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@SuppressWarnings("unchecked")
@Test
public void testIsHalfWidthChar05() throws Exception {
// 前処理(引数)
String fileEncoding = "Shift_JIS";
char checkChar = '、';
// 前処理(状態)
Field field = FileDAOUtility.class.getDeclaredField("encodingCache");
field.setAccessible(true);
Map<String, Map<Character, Boolean>> encodingCache = (Map<String, Map<Character, Boolean>>) field
.get(FileDAOUtility.class);
encodingCache.clear();
// テスト実施
Method method = FileDAOUtility.class.getDeclaredMethod(
"isHalfWidthChar", new Class[] { String.class, char.class });
method.setAccessible(true);
Object result = method.invoke(FileDAOUtility.class, new Object[] {
fileEncoding, checkChar });
// 判定(戻り値)
assertFalse(Boolean.class.cast(result));
// 判定(encodingCache)
assertEquals(1, encodingCache.size());
assertTrue(encodingCache.containsKey(fileEncoding));
Map<Character, Boolean> shiftJISCacheMap = encodingCache.get(
fileEncoding);
assertEquals(1, shiftJISCacheMap.size());
assertTrue(shiftJISCacheMap.containsKey(checkChar));
assertFalse(Boolean.class.cast(shiftJISCacheMap.get(checkChar)));
// 試験対象初期化
encodingCache.clear();
}
/**
* testIsHalfWidthChar06() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) fileEncoding:"XXX"<br>
* (引数) checkChar:','<br>
* (状態) encodingCache:要素を持たないConcurrentHashMapインスタンス<br>
* <br>
* 期待値:(状態変化) encodingCache:以下の要素を持つConcurrentHashMapインスタンス<br>
* ・key:"Shift_JIS"<br>
* value:要素を持たないConcurrentHashMapインスタンス<br>
* (状態変化) Map#put():1回呼ばれる<br>
* (状態変化) -:以下の情報を持つFileExceptionが発生する。<br>
* ・メッセージ:"Specified Encoding : XXX is not supported"<br>
* ・原因例外:UnsupportedEncodingException<br>
* <br>
* 異常ケース<br>
* (キャッシュなし)<br>
* 存在しないエンコーディングが入力された場合、例外が発生することを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@SuppressWarnings("unchecked")
@Test
public void testIsHalfWidthChar06() throws Exception {
// 前処理(引数)
String fileEncoding = "XXX";
char checkChar = ',';
// 前処理(状態)
Field field = FileDAOUtility.class.getDeclaredField("encodingCache");
field.setAccessible(true);
Map<String, Map<Character, Boolean>> encodingCache = (Map<String, Map<Character, Boolean>>) field
.get(FileDAOUtility.class);
encodingCache.clear();
try {
// テスト実施
Method method = FileDAOUtility.class.getDeclaredMethod(
"isHalfWidthChar", new Class[] { String.class,
char.class });
method.setAccessible(true);
method.invoke(FileDAOUtility.class, new Object[] { fileEncoding,
checkChar });
fail("FileExceptionが発生しませんでした。");
} catch (InvocationTargetException e) {
// 判定(例外)
assertTrue(e.getTargetException() instanceof FileException);
assertEquals("Specified Encoding : XXX is not supported", e
.getTargetException().getMessage());
assertTrue(e.getTargetException()
.getCause() instanceof UnsupportedEncodingException);
// 判定(encodingCache)
assertEquals(1, encodingCache.size());
assertTrue(encodingCache.containsKey(fileEncoding));
Map<Character, Boolean> shiftJISCacheMap = encodingCache.get(
fileEncoding);
assertEquals(0, shiftJISCacheMap.size());
}
// 試験対象初期化
encodingCache.clear();
}
/**
* testIsHalfWidthChar07() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) fileEncoding:null<br>
* (引数) checkChar:','<br>
* (状態) encodingCache:要素を持たないConcurrentHashMapインスタンス<br>
* <br>
* 期待値:(状態変化) encodingCache:要素を持たないConcurrentHashMapインスタンス<br>
* (状態変化) Map#put():呼ばれない<br>
* (状態変化) -:NullPointerExceptionが発生する。<br>
* <br>
* 異常ケース<br>
* (キャッシュなし)<br>
* エンコーディングがnullの場合、例外が発生することを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@SuppressWarnings("unchecked")
@Test
public void testIsHalfWidthChar07() throws Exception {
// 前処理(引数)
String fileEncoding = null;
char checkChar = ',';
// 前処理(状態)
Field field = FileDAOUtility.class.getDeclaredField("encodingCache");
field.setAccessible(true);
Map<String, Map<Character, Boolean>> encodingCache = (Map<String, Map<Character, Boolean>>) field
.get(FileDAOUtility.class);
encodingCache.clear();
try {
// テスト実施
Method method = FileDAOUtility.class.getDeclaredMethod(
"isHalfWidthChar", new Class[] { String.class,
char.class });
method.setAccessible(true);
method.invoke(FileDAOUtility.class, new Object[] { fileEncoding,
checkChar });
fail("NullPointerExceptionが発生しませんでした。");
} catch (InvocationTargetException e) {
// 判定(例外)
assertTrue(e.getTargetException() instanceof NullPointerException);
assertEquals(0, encodingCache.size());
}
}
}