/* * 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 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.Before; import org.junit.Test; import uk.org.lidalia.slf4jtest.TestLogger; import uk.org.lidalia.slf4jtest.TestLoggerFactory; /** * {@link jp.terasoluna.fw.validation.FieldChecks} クラスのブラックボックステスト。 * <p> * <h4>【クラスの概要】</h4> TERASOLUNAの入力チェック機能で共通に使用される検証ルールクラス。 * <p> * @see jp.terasoluna.fw.validation.FieldChecks */ public class FieldChecksTest04 { private TestLogger logger = TestLoggerFactory.getTestLogger( FieldChecks.class); /** * テスト用インスタンス。 */ private ValidatorAction va = null; /** * テスト用インスタンス。 */ private Field field = null; /** * テスト用インスタンス。 */ private FieldChecks_ValidationErrorsImpl01 errors = null; /** * 初期化処理を行う。 */ @Before public void setUp() { va = new ValidatorAction(); field = new Field(); errors = new FieldChecks_ValidationErrorsImpl01(); } /** * 終了処理を行う。 */ @After public void tearDown() { logger.clear(); } /** * testValidateIntRange01() <br> * <br> * (正常系) <br> * 観点:C,F <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 testValidateIntRange01() throws Exception { // テスト実施 // 判定 assertTrue(new FieldChecks().validateIntRange(null, va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateIntRange02() <br> * <br> * (正常系) <br> * 観点:C,F <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 testValidateIntRange02() throws Exception { // テスト実施 // 判定 assertTrue(new FieldChecks().validateIntRange("", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateIntRange03() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"1.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> * 引数のbeanがint型に変換できない場合、 エラーを追加してfalseが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange03() throws Exception { // テスト実施 // 判定 assertFalse(new FieldChecks().validateIntRange("1.5", va, field, errors)); // addErrors確認 assertEquals(1, errors.addErrorCount); assertEquals("1.5", errors.beanList.get(0)); assertSame(va, errors.vaList.get(0)); assertSame(field, errors.fieldList.get(0)); } /** * testValidateIntRange04() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"-2147483648"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMin=null<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * varのintRangeMinがnullの場合、 範囲の最小値がInteger.MIN_VALUEであることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange04() throws Exception { // テスト実施 // 判定 assertTrue(new FieldChecks().validateIntRange("-2147483648", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateIntRange05() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"-2147483649"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMin=null<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数として addErrorsが呼び出される。<br> * <br> * varのintRangeMinがnullの場合、 範囲の最小値がInteger.MIN_VALUEであることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange05() throws Exception { // テスト実施 // 判定 assertFalse(new FieldChecks().validateIntRange("-2147483649", va, field, errors)); // addErrors確認 assertEquals(1, errors.addErrorCount); assertEquals("-2147483649", errors.beanList.get(0)); assertSame(va, errors.vaList.get(0)); assertSame(field, errors.fieldList.get(0)); } /** * testValidateIntRange06() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"-2147483648"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMin=""<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * varのintRangeMinが空文字の場合、 範囲の最小値がInteger.MIN_VALUEであることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange06() throws Exception { // 前処理 Var var = new Var(); var.setName("intRangeMin"); var.setValue(""); field.addVar(var); // テスト実施 // 判定 assertTrue(new FieldChecks().validateIntRange("-2147483648", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateIntRange07() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"-2147483649"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMin=""<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数として addErrorsが呼び出される。<br> * <br> * varのintRangeMinが空文字の場合、 範囲の最小値がInteger.MIN_VALUEであることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange07() throws Exception { // 前処理 Var var = new Var(); var.setName("intRangeMin"); var.setValue(""); field.addVar(var); // テスト実施 // 判定 assertFalse(new FieldChecks().validateIntRange("-2147483649", va, field, errors)); // addErrors確認 assertEquals(1, errors.addErrorCount); assertEquals("-2147483649", errors.beanList.get(0)); assertSame(va, errors.vaList.get(0)); assertSame(field, errors.fieldList.get(0)); } /** * testValidateIntRange08() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"2147483647"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMax=null<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * varのintRangeMaxがnullの場合、 範囲の最大値がInteger.MAX_VALUEであることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange08() throws Exception { // テスト実施 // 判定 assertTrue(new FieldChecks().validateIntRange("2147483647", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateIntRange09() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"2147483648"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMax=null<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数として addErrorsが呼び出される。<br> * <br> * varのintRangeMaxがnullの場合、 範囲の最大値がInteger.MAX_VALUEであることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange09() throws Exception { // テスト実施 // 判定 assertFalse(new FieldChecks().validateIntRange("2147483648", va, field, errors)); // addErrors確認 assertEquals(1, errors.addErrorCount); assertEquals("2147483648", errors.beanList.get(0)); assertSame(va, errors.vaList.get(0)); assertSame(field, errors.fieldList.get(0)); } /** * testValidateIntRange10() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"2147483647"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMax=""<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * varのintRangeMaxが空文字の場合、 範囲の最大値がInteger.MAX_VALUEであることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange10() throws Exception { // 前処理 Var var = new Var(); var.setName("intRangeMin"); var.setValue(""); field.addVar(var); // テスト実施 // 判定 assertTrue(new FieldChecks().validateIntRange("2147483647", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateIntRange11() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"2147483648"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMax=""<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数として addErrorsが呼び出される。<br> * <br> * varのintRangeMaxが空文字の場合、 範囲の最大値がInteger.MAX_VALUEであることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange11() throws Exception { // 前処理 Var var = new Var(); var.setName("intRangeMin"); var.setValue(""); field.addVar(var); // テスト実施 // 判定 assertFalse(new FieldChecks().validateIntRange("2147483648", va, field, errors)); // addErrors確認 assertEquals(1, errors.addErrorCount); assertEquals("2147483648", errors.beanList.get(0)); assertSame(va, errors.vaList.get(0)); assertSame(field, errors.fieldList.get(0)); } /** * testValidateIntRange12() <br> * <br> * (異常系) <br> * 観点:F,G <br> * <br> * 入力値:(引数) bean:"5"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMin="1.5"<br> * (引数) errors:not null<br> * <br> * 期待値:(状態変化) 例外:ValidatorException<br> * メッセージ:"Mistake on validation definition file. - intRangeMin is not number. You'll have to check it over. "<br> * (状態変化) ログ:ログレベル:エラー<br> * メッセージ:"Mistake on validation definition file. - intRangeMin is not number. You'll have to check it over. ", new * NumberFormatException()<br> * <br> * varのintRangeMinの値がint型に変換できない場合、 ValidatorExceptionが発生することを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange12() throws Exception { // 前処理 Var var = new Var(); var.setName("intRangeMin"); var.setValue("1.5"); field.addVar(var); // テスト実施 // 判定 try { new FieldChecks().validateIntRange("5", va, field, errors); fail(); } catch (ValidatorException e) { String message = "Mistake on validation definition file. " + "- intRangeMin 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)); } } /** * testValidateIntRange13() <br> * <br> * (異常系) <br> * 観点:F,G <br> * <br> * 入力値:(引数) bean:"5"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMax="5.5"<br> * (引数) errors:not null<br> * <br> * 期待値:(状態変化) 例外:ValidatorException<br> * メッセージ:"Mistake on validation definition file. - intRangeMax is not number. You'll have to check it over. "<br> * (状態変化) ログ:ログレベル:エラー<br> * メッセージ:"Mistake on validation definition file. - intRangeMax is not number. You'll have to check it over. ", new * NumberFormatException()<br> * <br> * varのintRangeMaxの値がint型に変換できない場合、 ValidatorExceptionが発生することを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange13() throws Exception { // 前処理 Var var = new Var(); var.setName("intRangeMax"); var.setValue("5.5"); field.addVar(var); // テスト実施 // 判定 try { new FieldChecks().validateIntRange("5", va, field, errors); fail(); } catch (ValidatorException e) { String message = "Mistake on validation definition file. " + "- intRangeMax 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)); } } /** * testValidateIntRange14() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"5"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMin="1"<br> * intRangeMax="10"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * beanの値が、intRangeMinとintRangeMaxの範囲内の値の場合、 trueが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange14() throws Exception { // 前処理 Var var1 = new Var(); var1.setName("intRangeMin"); var1.setValue("1"); field.addVar(var1); Var var2 = new Var(); var2.setName("intRangeMax"); var2.setValue("10"); field.addVar(var2); // テスト実施 // 判定 assertTrue(new FieldChecks().validateIntRange("5", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateIntRange15() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"5"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMin="6"<br> * intRangeMax="10"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数として addErrorsが呼び出される。<br> * <br> * beanの値が、intRangeMinの値より小さい場合、 エラーを追加してfalseが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange15() throws Exception { // 前処理 Var var1 = new Var(); var1.setName("intRangeMin"); var1.setValue("6"); field.addVar(var1); Var var2 = new Var(); var2.setName("intRangeMax"); var2.setValue("10"); field.addVar(var2); // テスト実施 // 判定 assertFalse(new FieldChecks().validateIntRange("5", va, field, errors)); // addErrors確認 assertEquals(1, errors.addErrorCount); assertEquals("5", errors.beanList.get(0)); assertSame(va, errors.vaList.get(0)); assertSame(field, errors.fieldList.get(0)); } /** * testValidateIntRange16() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"5"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMin="1"<br> * intRangeMax="4"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数として addErrorsが呼び出される。<br> * <br> * beanの値が、intRangeMaxの値より大きい場合、 エラーを追加してfalseが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange16() throws Exception { // 前処理 Var var1 = new Var(); var1.setName("intRangeMin"); var1.setValue("1"); field.addVar(var1); Var var2 = new Var(); var2.setName("intRangeMax"); var2.setValue("4"); field.addVar(var2); // テスト実施 // 判定 assertFalse(new FieldChecks().validateIntRange("5", va, field, errors)); // addErrors確認 assertEquals(1, errors.addErrorCount); assertEquals("5", errors.beanList.get(0)); assertSame(va, errors.vaList.get(0)); assertSame(field, errors.fieldList.get(0)); } /** * testValidateIntRange17() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"5"<br> * (引数) va:not null<br> * (引数) field:var:<br> * intRangeMin="5"<br> * intRangeMax="5"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * beanの値と、intRangeMax,intRangeMinの値と等しい場合、 trueが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateIntRange17() throws Exception { // 前処理 Var var1 = new Var(); var1.setName("intRangeMin"); var1.setValue("5"); field.addVar(var1); Var var2 = new Var(); var2.setName("intRangeMax"); var2.setValue("5"); field.addVar(var2); // テスト実施 // 判定 assertTrue(new FieldChecks().validateIntRange("5", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateDoubleRange01() <br> * <br> * (正常系) <br> * 観点:C,F <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 testValidateDoubleRange01() throws Exception { // テスト実施 // 判定 assertTrue(new FieldChecks().validateDoubleRange(null, va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateDoubleRange02() <br> * <br> * (正常系) <br> * 観点:C,F <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 testValidateDoubleRange02() throws Exception { // テスト実施 // 判定 assertTrue(new FieldChecks().validateDoubleRange("", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateDoubleRange03() <br> * <br> * (正常系) <br> * 観点:F <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> * 引数のbeanがdouble型に変換できない場合、 エラーを追加してfalseが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateDoubleRange03() throws Exception { // テスト実施 // 判定 assertFalse(new FieldChecks().validateDoubleRange("test", va, field, errors)); // addErrors確認 assertEquals(1, errors.addErrorCount); assertEquals("test", errors.beanList.get(0)); assertSame(va, errors.vaList.get(0)); assertSame(field, errors.fieldList.get(0)); } /** * testValidateDoubleRange04() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"4.9E-324"<br> * (引数) va:not null<br> * (引数) field:var:<br> * doubleRangeMin=null<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * varのdoubleRangeMinがnullの場合、 範囲の最小値がDouble.MIN_VALUEであることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateDoubleRange04() throws Exception { // テスト実施 // 判定 assertTrue(new FieldChecks().validateDoubleRange("4.9E-324", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateDoubleRange05() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"4.9E-324"<br> * (引数) va:not null<br> * (引数) field:var:<br> * doubleRangeMin=""<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * varのdoubleRangeMinが空文字の場合、 範囲の最小値がDouble.MIN_VALUEであることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateDoubleRange05() throws Exception { // 前処理 Var var = new Var(); var.setName("doubleRangeMin"); var.setValue(""); field.addVar(var); // テスト実施 // 判定 assertTrue(new FieldChecks().validateDoubleRange("4.9E-324", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateDoubleRange06() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"1.7976931348623157E308"<br> * (引数) va:not null<br> * (引数) field:var:<br> * doubleRangeMax=null<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * varのdoubleRangeMaxがnullの場合、範囲の最大値がDouble.MAX_VALUEであることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateDoubleRange06() throws Exception { // テスト実施 // 判定 assertTrue(new FieldChecks().validateDoubleRange( "1.7976931348623157E308", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateDoubleRange07() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"1.7976931348623157E308"<br> * (引数) va:not null<br> * (引数) field:var:<br> * doubleRangeMax=""<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * varのdoubleRangeMaxが空文字の場合、範囲の最大値がDouble.MAX_VALUEであることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateDoubleRange07() throws Exception { // 前処理 Var var = new Var(); var.setName("doubleRangeMax"); var.setValue(""); field.addVar(var); // テスト実施 // 判定 assertTrue(new FieldChecks().validateDoubleRange( "1.7976931348623157E308", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateDoubleRange08() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"0.5E1"<br> * (引数) va:not null<br> * (引数) field:var:<br> * doubleRangeMin="test"<br> * (引数) errors:not null<br> * <br> * 期待値:(状態変化) 例外:ValidatorException<br> * メッセージ:"Mistake on validation definition file. - doubleRangeMin is not number. You'll have to check it over. "<br> * (状態変化) ログ:ログレベル:エラー<br> * メッセージ:"Mistake on validation definition file. - doubleRangeMin is not number. You'll have to check it over. ", new * NumberFormatException()<br> * <br> * varのdoubleRangeMinの値がdouble型に変換できない場合、 ValidatorExceptionが発生することを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateDoubleRange08() throws Exception { // 前処理 Var var = new Var(); var.setName("doubleRangeMin"); var.setValue("test"); field.addVar(var); // テスト実施 // 判定 try { new FieldChecks().validateDoubleRange("0.5E1", va, field, errors); fail(); } catch (ValidatorException e) { String message = "Mistake on validation definition file. " + "- doubleRangeMin 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)); } } /** * testValidateDoubleRange09() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"0.5E1"<br> * (引数) va:not null<br> * (引数) field:var:<br> * doubleRangeMax="test"<br> * (引数) errors:not null<br> * <br> * 期待値:(状態変化) 例外:ValidatorException<br> * メッセージ:"Mistake on validation definition file. - doubleRangeMax is not number. You'll have to check it over. "<br> * (状態変化) ログ:ログレベル:エラー<br> * メッセージ:"Mistake on validation definition file. - doubleRangeMax is not number. You'll have to check it over. ", new * NumberFormatException()<br> * <br> * varのdoubleRangeMaxの値がdouble型に変換できない場合、 ValidatorExceptionが発生することを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateDoubleRange09() throws Exception { // 前処理 Var var = new Var(); var.setName("doubleRangeMax"); var.setValue("test"); field.addVar(var); // テスト実施 // 判定 try { new FieldChecks().validateDoubleRange("0.5E1", va, field, errors); fail(); } catch (ValidatorException e) { String message = "Mistake on validation definition file. " + "- doubleRangeMax 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)); } } /** * testValidateDoubleRange10() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"0.5E1"<br> * (引数) va:not null<br> * (引数) field:var:<br> * doubleRangeMin="0.1E1"<br> * doubleRangeMax="0.1E2"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * beanの値が、doubleRangeMinとdoubleRangeMaxの範囲内の値の場合、 trueが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateDoubleRange10() throws Exception { // 前処理 Var var1 = new Var(); var1.setName("doubleRangeMin"); var1.setValue("0.1E1"); field.addVar(var1); Var var2 = new Var(); var2.setName("doubleRangeMax"); var2.setValue("0.1E2"); field.addVar(var2); // テスト実施 // 判定 assertTrue(new FieldChecks().validateDoubleRange("0.5E1", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } /** * testValidateDoubleRange11() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"0.5E1"<br> * (引数) va:not null<br> * (引数) field:var:<br> * doubleRangeMin="0.1E2"<br> * doubleRangeMax="0.1E3"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br> * <br> * beanの値が、doubleRangeMinの値より小さい場合、エラーを追加してfalseが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateDoubleRange11() throws Exception { // 前処理 Var var1 = new Var(); var1.setName("doubleRangeMin"); var1.setValue("0.1E2"); field.addVar(var1); Var var2 = new Var(); var2.setName("doubleRangeMax"); var2.setValue("0.1E3"); field.addVar(var2); // テスト実施 // 判定 assertFalse(new FieldChecks().validateDoubleRange("0.5E1", va, field, errors)); // addErrors確認 assertEquals(1, errors.addErrorCount); assertEquals("0.5E1", errors.beanList.get(0)); assertSame(va, errors.vaList.get(0)); assertSame(field, errors.fieldList.get(0)); } /** * testValidateDoubleRange12() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"0.5E1"<br> * (引数) va:not null<br> * (引数) field:var:<br> * doubleRangeMin="0.1E1"<br> * doubleRangeMax="0.4E1"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:false<br> * (状態変化) errors:bean,field,vaを引数としてaddErrorsが呼び出される。<br> * <br> * beanの値が、doubleRangeMaxの値より大きい場合、エラーを追加してfalseが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateDoubleRange12() throws Exception { // 前処理 Var var1 = new Var(); var1.setName("doubleRangeMin"); var1.setValue("0.1E1"); field.addVar(var1); Var var2 = new Var(); var2.setName("doubleRangeMax"); var2.setValue("0.4E1"); field.addVar(var2); // テスト実施 // 判定 assertFalse(new FieldChecks().validateDoubleRange("0.5E1", va, field, errors)); // addErrors確認 assertEquals(1, errors.addErrorCount); assertEquals("0.5E1", errors.beanList.get(0)); assertSame(va, errors.vaList.get(0)); assertSame(field, errors.fieldList.get(0)); } /** * testValidateDoubleRange13() <br> * <br> * (正常系) <br> * 観点:F <br> * <br> * 入力値:(引数) bean:"0.5E1"<br> * (引数) va:not null<br> * (引数) field:var:<br> * doubleRangeMin="0.5E1"<br> * doubleRangeMax="0.5E1"<br> * (引数) errors:not null<br> * <br> * 期待値:(戻り値) boolean:true<br> * (状態変化) errors:呼び出されない<br> * <br> * beanの値と、doubleRangeMax,doubleRangeMinの値と等しい場合、trueが返却されることを確認する。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testValidateDoubleRange13() throws Exception { // 前処理 Var var1 = new Var(); var1.setName("doubleRangeMin"); var1.setValue("0.5E1"); field.addVar(var1); Var var2 = new Var(); var2.setName("doubleRangeMax"); var2.setValue("0.5E1"); field.addVar(var2); // テスト実施 // 判定 assertTrue(new FieldChecks().validateDoubleRange("0.5E1", va, field, errors)); // addErrors確認 assertEquals(0, errors.addErrorCount); } }