/*
* Copyright (c) 2007 NTT DATA Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jp.terasoluna.fw.validation;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.ArrayList;
import org.apache.commons.validator.Field;
import org.apache.commons.validator.ValidatorAction;
import org.apache.commons.validator.ValidatorException;
import org.apache.commons.validator.Var;
import org.junit.After;
import org.junit.Test;
import uk.org.lidalia.slf4jtest.TestLogger;
import uk.org.lidalia.slf4jtest.TestLoggerFactory;
import static uk.org.lidalia.slf4jtest.LoggingEvent.error;
import static java.util.Arrays.asList;
import org.springframework.test.util.ReflectionTestUtils;
/**
* {@link jp.terasoluna.fw.validation.FieldChecks} クラスのブラックボックステスト。
* <p>
* <h4>【クラスの概要】</h4> TERASOLUNAの入力チェック機能で共通に使用される検証ルールクラス。
* <p>
* @see jp.terasoluna.fw.validation.FieldChecks
*/
public class FieldChecksTest07 {
private TestLogger logger = TestLoggerFactory.getTestLogger(
FieldChecks.class);
/**
* 終了処理を行う。
*/
@After
public void tearDown() {
logger.clear();
}
/**
* testValidateHankakuKanaString01() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:null<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanがnullの場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateHankakuKanaString01() throws Exception {
// 前処理
// bean : null
Object bean = null;
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateHankakuKanaString(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateHankakuKanaString02() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:""<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanが空文字の場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateHankakuKanaString02() throws Exception {
// 前処理
// bean : ""
Object bean = "";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateHankakuKanaString(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateHankakuKanaString03() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:"ハンカク"<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanが半角カナ文字のみで構成されている場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateHankakuKanaString03() throws Exception {
// 前処理
// bean : "ハンカク"
Object bean = "ハンカク";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateHankakuKanaString(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateHankakuKanaString04() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:"ハンカク"<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:false<br>
* (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br>
* <br>
* 引数のbeanに半角カナ以外の文字が含まれている場合、エラーを追加してfalseが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateHankakuKanaString04() throws Exception {
// 前処理
// bean : "ハンカク"
Object bean = "ハンカク";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateHankakuKanaString(bean, va, field,
errors);
// 判定
assertFalse(b);
// 呼出確認
assertEquals(1, errors.addErrorCount);
// 引数確認
ArrayList<?> beanList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"beanList");
assertSame(bean, beanList.get(0));
ArrayList<?> vaList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"vaList");
assertSame(va, vaList.get(0));
ArrayList<?> fieldList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"fieldList");
assertSame(field, fieldList.get(0));
}
/**
* testValidateHankakuString01() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:null<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanがnullの場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateHankakuString01() throws Exception {
// 前処理
// bean : null
Object bean = null;
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateHankakuString(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateHankakuString02() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:""<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanが空文字の場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateHankakuString02() throws Exception {
// 前処理
// bean : ""
Object bean = "";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateHankakuString(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateHankakuString03() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:"1aア"<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanが半角文字のみで構成されている場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateHankakuString03() throws Exception {
// 前処理
// bean : "1aア"
Object bean = "1aア";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateHankakuString(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateHankakuString04() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:"全角ア"<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:false<br>
* (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br>
* <br>
* 引数のbeanに半角以外の文字が含まれている場合、エラーを追加してfalseが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateHankakuString04() throws Exception {
// 前処理
// bean : "全角ア"
Object bean = "全角ア";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateHankakuString(bean, va, field,
errors);
// 判定
assertFalse(b);
// 呼出確認
assertEquals(1, errors.addErrorCount);
// 引数確認
ArrayList<?> beanList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"beanList");
assertSame(bean, beanList.get(0));
ArrayList<?> vaList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"vaList");
assertSame(va, vaList.get(0));
ArrayList<?> fieldList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"fieldList");
assertSame(field, fieldList.get(0));
}
/**
* testValidateZenkakuString01() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:null<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanがnullの場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateZenkakuString01() throws Exception {
// 前処理
// bean : null
Object bean = null;
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateZenkakuString(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateZenkakuString02() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:""<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanが空文字の場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateZenkakuString02() throws Exception {
// 前処理
// bean : ""
Object bean = "";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateZenkakuString(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateZenkakuString03() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:"全角ア"<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanが全角文字のみで構成されている場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateZenkakuString03() throws Exception {
// 前処理
// bean : "全角ア"
Object bean = "全角ア";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateZenkakuString(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateZenkakuString04() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:"1aア"<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:false<br>
* (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br>
* <br>
* 引数のbeanに全角以外の文字が含まれている場合、エラーを追加してfalseが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateZenkakuString04() throws Exception {
// 前処理
// bean : "1aア"
Object bean = "1aア";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateZenkakuString(bean, va, field,
errors);
// 判定
assertFalse(b);
// 呼出確認
assertEquals(1, errors.addErrorCount);
// 引数確認
ArrayList<?> beanList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"beanList");
assertSame(bean, beanList.get(0));
ArrayList<?> vaList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"vaList");
assertSame(va, vaList.get(0));
ArrayList<?> fieldList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"fieldList");
assertSame(field, fieldList.get(0));
}
/**
* testValidateZenkakuKanaString01() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:null<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanがnullの場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateZenkakuKanaString01() throws Exception {
// 前処理
// bean : null
Object bean = null;
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateZenkakuKanaString(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateZenkakuKanaString02() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:""<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanが空文字の場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateZenkakuKanaString02() throws Exception {
// 前処理
// bean : ""
Object bean = "";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateZenkakuKanaString(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateZenkakuKanaString03() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:"ゼンカク"<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanが全角カナ文字のみで構成されている場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateZenkakuKanaString03() throws Exception {
// 前処理
// bean : "ゼンカク"
Object bean = "ゼンカク";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateZenkakuKanaString(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateZenkakuKanaString04() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:"1aあ"<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:false<br>
* (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br>
* <br>
* 引数のbeanに全角カナ以外の文字が含まれている場合、エラーを追加してfalseが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateZenkakuKanaString04() throws Exception {
// 前処理
// bean : "1aあ"
Object bean = "1aあ";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateZenkakuKanaString(bean, va, field,
errors);
// 判定
assertFalse(b);
// 呼出確認
assertEquals(1, errors.addErrorCount);
// 引数確認
ArrayList<?> beanList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"beanList");
assertSame(bean, beanList.get(0));
ArrayList<?> vaList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"vaList");
assertSame(va, vaList.get(0));
ArrayList<?> fieldList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"fieldList");
assertSame(field, fieldList.get(0));
}
/**
* testValidateProhibited01() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:null<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanがnullの場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateProhibited01() throws Exception {
// 前処理
// bean : null
Object bean = null;
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateProhibited(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateProhibited02() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:""<br>
* (引数) va:not null<br>
* (引数) field:not null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* 引数のbeanが空文字の場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateProhibited02() throws Exception {
// 前処理
// bean : ""
Object bean = "";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateProhibited(bean, va, field,
errors);
// 判定
assertTrue(b);
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateProhibited03() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) bean:"test"<br>
* (引数) va:not null<br>
* (引数) field:var:<br>
* chars=null<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(状態変化) 例外:ValidatorException<br>
* メッセージ:"var[chars] must be specified."<br>
* (状態変化) ログ:ログレベル:エラー<br>
* メッセージ:"var[chars] must be specified."<br>
* <br>
* varのcharsがnullの場合、ValidatorExceptionがスローされることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateProhibited03() throws Exception {
// 前処理
// bean : "test"
Object bean = "test";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
Var var = new Var();
var.setName("chars");
var.setValue(null);
field.addVar(var);
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
try {
// テスト実施
new FieldChecks().validateProhibited(bean, va, field, errors);
fail();
} catch (ValidatorException e) {
// 判定
String message = "var[chars] must be specified.";
assertEquals(message, e.getMessage());
assertThat(logger.getLoggingEvents(), is(asList(error(message))));
}
}
/**
* testValidateProhibited04() <br>
* <br>
* (異常系) <br>
* 観点:G <br>
* <br>
* 入力値:(引数) bean:"test"<br>
* (引数) va:not null<br>
* (引数) field:var:<br>
* chars=""<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(状態変化) 例外:ValidatorException<br>
* メッセージ:"var[chars] must be specified."<br>
* (状態変化) ログ:ログレベル:エラー<br>
* メッセージ:"var[chars] must be specified."<br>
* <br>
* varのcharsがnullの場合、ValidatorExceptionがスローされることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateProhibited04() throws Exception {
// 前処理
// bean : "test"
Object bean = "test";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
Var var = new Var();
var.setName("chars");
var.setValue("");
field.addVar(var);
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
try {
// テスト実施
new FieldChecks().validateProhibited(bean, va, field, errors);
fail();
} catch (ValidatorException e) {
// 判定
String message = "var[chars] must be specified.";
assertEquals(message, e.getMessage());
assertThat(logger.getLoggingEvents(), is(asList(error(message))));
}
}
/**
* testValidateProhibited05() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:"③②①"<br>
* (引数) va:not null<br>
* (引数) field:var:<br>
* chars="あ①t"<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:false<br>
* (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br>
* <br>
* beanにvarのcharsで指定された文字が含まれる場合、エラーを追加してfalseが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateProhibited05() throws Exception {
// 前処理
// bean : "③②①"
Object bean = "③②①";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
Var var = new Var();
var.setName("chars");
var.setValue("あ①t");
field.addVar(var);
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateProhibited(bean, va, field,
errors);
// 判定
assertFalse(b);
// 呼出確認
assertEquals(1, errors.addErrorCount);
// 引数確認
ArrayList<?> beanList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"beanList");
assertSame(bean, beanList.get(0));
ArrayList<?> vaList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"vaList");
assertSame(va, vaList.get(0));
ArrayList<?> fieldList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"fieldList");
assertSame(field, fieldList.get(0));
}
/**
* testValidateProhibited06() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:"③②①"<br>
* (引数) va:not null<br>
* (引数) field:var:<br>
* chars="④⑤⑥"<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:true<br>
* (状態変化) errors:呼び出されない<br>
* <br>
* beanにvarのcharsで指定された文字が含まれない場合、trueが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateProhibited06() throws Exception {
// 前処理
// bean : "③②①"
Object bean = "③②①";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
Var var = new Var();
var.setName("chars");
var.setValue("④⑤⑥");
field.addVar(var);
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateProhibited(bean, va, field,
errors);
// 判定
assertTrue(b);
// 呼出確認
assertEquals(0, errors.addErrorCount);
}
/**
* testValidateProhibited07() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:"③② "<br>
* (引数) va:not null<br>
* (引数) field:var:<br>
* chars="あ①t "<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:false<br>
* (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br>
* <br>
* beanにvarのcharsで指定された文字が含まれる場合、エラーを追加してfalseが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateProhibited07() throws Exception {
// 前処理
// bean : "③② "
Object bean = "③② ";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
Var var = new Var();
var.setName("chars");
var.setValue("あ①t ");
field.addVar(var);
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateProhibited(bean, va, field,
errors);
// 判定
assertFalse(b);
// 呼出確認
assertEquals(1, errors.addErrorCount);
// 引数確認
ArrayList<?> beanList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"beanList");
assertSame(bean, beanList.get(0));
ArrayList<?> vaList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"vaList");
assertSame(va, vaList.get(0));
ArrayList<?> fieldList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"fieldList");
assertSame(field, fieldList.get(0));
}
/**
* testValidateProhibited08() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) bean:" "<br>
* (引数) va:not null<br>
* (引数) field:var:<br>
* chars="あ①t "<br>
* (引数) errors:not null<br>
* <br>
* 期待値:(戻り値) boolean:false<br>
* (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br>
* <br>
* beanにvarのcharsで指定された文字が含まれる場合、エラーを追加してfalseが返却されることを確認する。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testValidateProhibited08() throws Exception {
// 前処理
// bean : " "
Object bean = " ";
// va : not null
ValidatorAction va = new ValidatorAction();
// field : not null
Field field = new Field();
Var var = new Var();
var.setName("chars");
var.setValue("あ①t ");
field.addVar(var);
// errors : not null
FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01();
// テスト実施
boolean b = new FieldChecks().validateProhibited(bean, va, field,
errors);
// 判定
assertFalse(b);
// 呼出確認
assertEquals(1, errors.addErrorCount);
// 引数確認
ArrayList<?> beanList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"beanList");
assertSame(bean, beanList.get(0));
ArrayList<?> vaList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"vaList");
assertSame(va, vaList.get(0));
ArrayList<?> fieldList = (ArrayList<?>) ReflectionTestUtils.getField(errors,
"fieldList");
assertSame(field, fieldList.get(0));
}
}