/* * 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.hamcrest.core.IsEqual.equalTo; import static org.hamcrest.core.IsInstanceOf.instanceOf; 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 org.springframework.test.util.ReflectionTestUtils; /** * {@link jp.terasoluna.fw.validation.FieldChecks} クラスのブラックボックステスト。 * <p> * <h4>【クラスの概要】</h4> TERASOLUNAの入力チェック機能で共通に使用される検証ルールクラス。 * <p> * @see jp.terasoluna.fw.validation.FieldChecks */ public class FieldChecksTest06 { private TestLogger logger = TestLoggerFactory.getTestLogger( FieldChecks.class); /** * 終了処理を行う。 */ @After public void tearDown() { logger.clear(); } /** * testValidateAlphaNumericString01() <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 testValidateAlphaNumericString01() 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().validateAlphaNumericString(bean, va, field, errors); // 判定 assertTrue(b); assertEquals(0, errors.addErrorCount); } /** * testValidateAlphaNumericString02() <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 testValidateAlphaNumericString02() 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().validateAlphaNumericString(bean, va, field, errors); // 判定 assertTrue(b); assertEquals(0, errors.addErrorCount); } /** * testValidateAlphaNumericString03() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) bean:"a0A"<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 testValidateAlphaNumericString03() throws Exception { // 前処理 // bean : "a0A" Object bean = "a0A"; // 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().validateAlphaNumericString(bean, va, field, errors); // 判定 assertTrue(b); assertEquals(0, errors.addErrorCount); } /** * testValidateAlphaNumericString04() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) bean:"Zg3%"<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に半角英数文字以外の文字が含まれている場合、エラーを追加してtrueが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateAlphaNumericString04() throws Exception { // 前処理 // bean : "Zg3%" Object bean = "Zg3%"; // 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().validateAlphaNumericString(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)); } /** * testValidateCapAlphaNumericString01() <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 testValidateCapAlphaNumericString01() 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().validateCapAlphaNumericString(bean, va, field, errors); // 判定 assertTrue(b); assertEquals(0, errors.addErrorCount); } /** * testValidateCapAlphaNumericString02() <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 testValidateCapAlphaNumericString02() 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().validateCapAlphaNumericString(bean, va, field, errors); // 判定 assertTrue(b); assertEquals(0, errors.addErrorCount); } /** * testValidateCapAlphaNumericString03() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) bean:"ABC0"<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 testValidateCapAlphaNumericString03() throws Exception { // 前処理 // bean : "ABC0" Object bean = "ABC0"; // 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().validateCapAlphaNumericString(bean, va, field, errors); // 判定 assertTrue(b); assertEquals(0, errors.addErrorCount); } /** * testValidateCapAlphaNumericString04() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) bean:"Aa0"<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に大文字の半角英数文字以外の文字が含まれている場合、エラーを追加してtrueが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateCapAlphaNumericString04() throws Exception { // 前処理 // bean : "Aa0" Object bean = "Aa0"; // 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().validateCapAlphaNumericString(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)); } /** * testValidateNumber01() <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 testValidateNumber01() 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().validateNumber(bean, va, field, errors); // 判定 assertTrue(b); assertEquals(0, errors.addErrorCount); } /** * testValidateNumber02() <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 testValidateNumber02() 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().validateNumber(bean, va, field, errors); // 判定 assertTrue(b); assertEquals(0, errors.addErrorCount); } /** * testValidateNumber03() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) bean:"5"(全角)<br> * (引数) va:not null<br> * (引数) field:not null<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br> * <br> * 入力値が全角の場合、エラーを追加しfalseが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateNumber03() throws Exception { // 前処理 // bean : "5" Object bean = "5"; // 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().validateNumber(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)); } /** * testValidateNumber04() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) bean:"test"<br> * (引数) va:not null<br> * (引数) field:not null<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br> * <br> * 入力値が数値に変換できない場合、エラーを追加しfalseが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateNumber04() throws Exception { // 前処理 // bean : "test" Object bean = "test"; // 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().validateNumber(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)); } /** * testValidateNumber05() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) bean:"5"<br> * (引数) va:not null<br> * (引数) field:var:<br> * integerLength="abc"<br> * (引数) errors:not null<br> * <br> * 期待値:(状態変化) 例外:ValidatorException<br> * メッセージ:"Mistake on validation definition file. - integerLength is not number. You'll have to check it over. "<br> * (状態変化) ログ:ログレベル:エラー<br> * メッセージ:"Mistake on validation definition file. - integerLength is not number. You'll have to check it over. ", new * NumberFormatException()<br> * <br> * varのintegerLengthが数値に変換できない場合、ValidatorExceptionが発生することを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateNumber05() throws Exception { // 前処理 // bean : "5" Object bean = "5"; // va : not null ValidatorAction va = new ValidatorAction(); // field : var:integerLength="abc" Field field = new Field(); Var var = new Var(); var.setName("integerLength"); var.setValue("abc"); field.addVar(var); // errors : not null FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01(); try { // テスト実施 new FieldChecks().validateNumber(bean, va, field, errors); fail(); } catch (ValidatorException e) { // 判定 String message = "Mistake on validation definition file. " + "- integerLength is not number. " + "You'll have to check it over. "; assertEquals(message, e.getMessage()); assertThat(logger.getLoggingEvents().get(0).getMessage(), is( equalTo(message))); assertThat(logger.getLoggingEvents().get(0).getThrowable().get(), instanceOf(NumberFormatException.class)); } } /** * testValidateNumber06() <br> * <br> * (正常系) <br> * 観点:G <br> * <br> * 入力値:(引数) bean:"5"<br> * (引数) va:not null<br> * (引数) field:var:<br> * scale="abc"<br> * (引数) errors:not null<br> * <br> * 期待値:(状態変化) 例外:ValidatorException<br> * メッセージ:"Mistake on validation definition file. - scale is not number. You'll have to check it over. "<br> * (状態変化) ログ:ログレベル:エラー<br> * メッセージ:"Mistake on validation definition file. - scale is not number. You'll have to check it over. ", new * NumberFormatException()<br> * <br> * varのscaleが数値に変換できない場合、ValidatorExceptionが発生することを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateNumber06() throws Exception { // 前処理 // bean : "5" Object bean = "5"; // va : not null ValidatorAction va = new ValidatorAction(); // field : var:scale="abc" Field field = new Field(); Var var = new Var(); var.setName("scale"); var.setValue("abc"); field.addVar(var); // errors : not null FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01(); try { // テスト実施 new FieldChecks().validateNumber(bean, va, field, errors); fail(); } catch (ValidatorException e) { // 判定 String message = "Mistake on validation definition file. " + "- scale is not number. " + "You'll have to check it over. "; assertEquals(message, e.getMessage()); assertThat(logger.getLoggingEvents().get(0).getMessage(), is( equalTo(message))); assertThat(logger.getLoggingEvents().get(0).getThrowable().get(), instanceOf(NumberFormatException.class)); } } /** * testValidateNumber07() <br> * <br> * (正常系) <br> * 観点: <br> * <br> * 入力値:(引数) bean:"100.05"<br> * (引数) va:not null<br> * (引数) field:var:<br> * integerLength="5"<br> * scale="3"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * 入力された文字の整数部の桁数が、varのintegerLengthの値より小さく、小数部の桁数がvarのscaleの値より小さい場合、trueが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateNumber07() throws Exception { // 前処理 // bean : "100.05" Object bean = "100.05"; // va : not null ValidatorAction va = new ValidatorAction(); // field : var:integerLength="5" scale="3" Field field = new Field(); Var var1 = new Var(); var1.setName("integerLength"); var1.setValue("5"); field.addVar(var1); Var var2 = new Var(); var2.setName("scale"); var2.setValue("3"); field.addVar(var2); // errors : not null FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01(); // テスト実施 boolean b = new FieldChecks().validateNumber(bean, va, field, errors); // 判定 assertTrue(b); assertEquals(0, errors.addErrorCount); } /** * testValidateNumber08() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) bean:"100.05"<br> * (引数) va:not null<br> * (引数) field:var:<br> * integerLength="3"<br> * scale="2"<br> * isAccordedInteger="true"<br> * isAccordedScale="true"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * varのisAccordedIntegerにtrueが指定されていて、入力された文字の整数部の桁数が、varのintegerLengthの値と等しく、varのisAccordedScaleにtrueが指定されていて、 * 小数部の桁数がvarのscaleの値と等しい場合、trueが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateNumber08() throws Exception { // 前処理 // bean : "100.05" Object bean = "100.05"; // va : not null ValidatorAction va = new ValidatorAction(); // field : var:integerLength="3" scale="2" isAccordedInteger="true" isAccordedScale="true" Field field = new Field(); Var var1 = new Var(); var1.setName("integerLength"); var1.setValue("3"); field.addVar(var1); Var var2 = new Var(); var2.setName("scale"); var2.setValue("2"); field.addVar(var2); Var var3 = new Var(); var3.setName("isAccordedInteger"); var3.setValue("true"); field.addVar(var3); Var var4 = new Var(); var4.setName("isAccordedScale"); var4.setValue("true"); field.addVar(var4); // errors : not null FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01(); // テスト実施 boolean b = new FieldChecks().validateNumber(bean, va, field, errors); // 判定 assertTrue(b); assertEquals(0, errors.addErrorCount); } /** * testValidateNumber09() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) bean:"100.05"<br> * (引数) va:not null<br> * (引数) field:var:<br> * integerLength="5"<br> * scale="3"<br> * isAccordedInteger="test"<br> * isAccordedScale="test"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * varのisAccordedIntegerにtrue以外の文字列が指定されていて、入力された文字の整数部の桁数が、varのintegerLengthの値より小さく、varのisAccordedScaleにtrue以外の文字列が指定されていて、 * 小数部の桁数がvarのscaleの値より小さい場合、trueが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateNumber09() throws Exception { // 前処理 // bean : "100.05" Object bean = "100.05"; // va : not null ValidatorAction va = new ValidatorAction(); // field : var:integerLength="5" scale="3" isAccordedInteger="test" isAccordedScale="test" Field field = new Field(); Var var1 = new Var(); var1.setName("integerLength"); var1.setValue("5"); field.addVar(var1); Var var2 = new Var(); var2.setName("scale"); var2.setValue("3"); field.addVar(var2); Var var3 = new Var(); var3.setName("isAccordedInteger"); var3.setValue("test"); field.addVar(var3); Var var4 = new Var(); var4.setName("isAccordedScale"); var4.setValue("test"); field.addVar(var4); // errors : not null FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01(); // テスト実施 boolean b = new FieldChecks().validateNumber(bean, va, field, errors); // 判定 assertTrue(b); assertEquals(0, errors.addErrorCount); } /** * testValidateNumber10() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) bean:"100.05"<br> * (引数) va:not null<br> * (引数) field:var:<br> * integerLength="2"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br> * <br> * 入力された文字の整数部の桁数が、varのintegerLengthの値より大きい場合、エラーを追加してfalseが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateNumber10() throws Exception { // 前処理 // bean : "100.05" Object bean = "100.05"; // va : not null ValidatorAction va = new ValidatorAction(); // field : var:integerLength="2" Field field = new Field(); Var var = new Var(); var.setName("integerLength"); var.setValue("2"); field.addVar(var); // errors : not null FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01(); // テスト実施 boolean b = new FieldChecks().validateNumber(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)); } /** * testValidateNumber11() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) bean:"100.05"<br> * (引数) va:not null<br> * (引数) field:var:<br> * scale="1"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br> * <br> * 入力された文字の小数部の桁数が、varのscaleの値より大きい場合、エラーを追加してfalseが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateNumber11() throws Exception { // 前処理 // bean : "100.05" Object bean = "100.05"; // va : not null ValidatorAction va = new ValidatorAction(); // field : var:scale="1" Field field = new Field(); Var var = new Var(); var.setName("scale"); var.setValue("1"); field.addVar(var); // errors : not null FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01(); // テスト実施 boolean b = new FieldChecks().validateNumber(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)); } /** * testValidateNumber12() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) bean:"100.05"<br> * (引数) va:not null<br> * (引数) field:var:<br> * integerLength="5"<br> * isAccordedInteger="true"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br> * <br> * varのisAccordedIntegerにtrueが指定されていて、入力された文字の整数部の桁数が、varのintegerLengthの値より小さい場合、エラーを追加してfalseが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateNumber12() throws Exception { // 前処理 // bean : "100.05" Object bean = "100.05"; // va : not null ValidatorAction va = new ValidatorAction(); // field : var:scale="5" isAccordedInteger="true" Field field = new Field(); Var var1 = new Var(); var1.setName("scale"); var1.setValue("5"); field.addVar(var1); Var var2 = new Var(); var2.setName("isAccordedInteger"); var2.setValue("true"); field.addVar(var2); // errors : not null FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01(); // テスト実施 boolean b = new FieldChecks().validateNumber(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)); } /** * testValidateNumber13() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) bean:"100.05"<br> * (引数) va:not null<br> * (引数) field:var:<br> * scale="3"<br> * isAccordedScale="true"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br> * <br> * varのisAccordedScaleにtrueが指定されていて、入力された文字の小数部の桁数が、varのscaleの値より小さい場合、エラーを追加してfalseが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateNumber13() throws Exception { // 前処理 // bean : "100.05" Object bean = "100.05"; // va : not null ValidatorAction va = new ValidatorAction(); // field : var:scale="3" isAccordedScale="true" Field field = new Field(); Var var1 = new Var(); var1.setName("scale"); var1.setValue("3"); field.addVar(var1); Var var2 = new Var(); var2.setName("isAccordedScale"); var2.setValue("true"); field.addVar(var2); // errors : not null FieldChecks_ValidationErrorsImpl01 errors = new FieldChecks_ValidationErrorsImpl01(); // テスト実施 boolean b = new FieldChecks().validateNumber(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)); } }