1 /* 2 * $Header: /home/cvs/jakarta-commons/validator/src/test/org/apache/commons/validator/MultipleConfigFilesTest.java,v 1.10 2004/02/21 17:10:30 rleland Exp $ 3 * $Revision: 1.10 $ 4 * $Date: 2004/02/21 17:10:30 $ 5 * 6 * ==================================================================== 7 * Copyright 2001-2004 The Apache Software Foundation 8 * 9 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * you may not use this file except in compliance with the License. 11 * You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 */ 21 22 package org.apache.commons.validator; 23 24 import java.io.IOException; 25 import java.io.InputStream; 26 27 import junit.framework.TestCase; 28 29 import org.xml.sax.SAXException; 30 31 /*** 32 * Tests that validator rules split between 2 different XML files get 33 * merged properly. 34 */ 35 public class MultipleConfigFilesTest extends TestCase { 36 37 /*** 38 * Resources used for validation tests. 39 */ 40 private ValidatorResources resources = null; 41 42 /*** 43 * The key used to retrieve the set of validation 44 * rules from the xml file. 45 */ 46 private static final String FORM_KEY = "nameForm"; 47 48 /*** 49 * The key used to retrieve the validator action. 50 */ 51 private static final String ACTION = "required"; 52 53 /*** 54 * Constructor for MultipleConfigFilesTest. 55 * @param name 56 */ 57 public MultipleConfigFilesTest(String name) { 58 super(name); 59 } 60 61 /*** 62 * Load <code>ValidatorResources</code> from multiple xml files. 63 */ 64 protected void setUp() throws IOException, SAXException { 65 InputStream[] streams = 66 new InputStream[] { 67 this.getClass().getResourceAsStream( 68 "validator-multiple-config-1.xml"), 69 this.getClass().getResourceAsStream( 70 "validator-multiple-config-2.xml")}; 71 72 this.resources = new ValidatorResources(streams); 73 74 for (int i = 0; i < streams.length; i++) { 75 streams[i].close(); 76 } 77 } 78 79 /*** 80 * With nothing provided, we should fail both because both are required. 81 */ 82 public void testBothBlank() throws ValidatorException { 83 // Create bean to run test on. 84 NameBean name = new NameBean(); 85 86 // Construct validator based on the loaded resources 87 // and the form key 88 Validator validator = new Validator(resources, FORM_KEY); 89 // add the name bean to the validator as a resource 90 // for the validations to be performed on. 91 validator.setParameter(Validator.BEAN_PARAM, name); 92 93 // Get results of the validation. 94 ValidatorResults results = null; 95 96 // throws ValidatorException, 97 // but we aren't catching for testing 98 // since no validation methods we use 99 // throw this 100 results = validator.validate(); 101 102 assertNotNull("Results are null.", results); 103 104 ValidatorResult firstNameResult = results.getValidatorResult("firstName"); 105 ValidatorResult lastNameResult = results.getValidatorResult("lastName"); 106 107 assertNotNull(firstNameResult); 108 assertTrue(firstNameResult.containsAction(ACTION)); 109 assertTrue(!firstNameResult.isValid(ACTION)); 110 111 assertNotNull(lastNameResult); 112 assertTrue(lastNameResult.containsAction(ACTION)); 113 assertTrue(!lastNameResult.isValid(ACTION)); 114 assertTrue(!lastNameResult.containsAction("int")); 115 } 116 117 /*** 118 * If the first name fails required, and the second test fails int, we should get two errors. 119 */ 120 public void testRequiredFirstNameBlankLastNameShort() 121 throws ValidatorException { 122 // Create bean to run test on. 123 NameBean name = new NameBean(); 124 name.setFirstName(""); 125 name.setLastName("Test"); 126 127 // Construct validator based on the loaded resources 128 // and the form key 129 Validator validator = new Validator(resources, FORM_KEY); 130 // add the name bean to the validator as a resource 131 // for the validations to be performed on. 132 validator.setParameter(Validator.BEAN_PARAM, name); 133 134 // Get results of the validation. 135 ValidatorResults results = null; 136 137 results = validator.validate(); 138 139 assertNotNull("Results are null.", results); 140 141 ValidatorResult firstNameResult = results.getValidatorResult("firstName"); 142 ValidatorResult lastNameResult = results.getValidatorResult("lastName"); 143 144 assertNotNull(firstNameResult); 145 assertTrue(firstNameResult.containsAction(ACTION)); 146 assertTrue(!firstNameResult.isValid(ACTION)); 147 148 assertNotNull(lastNameResult); 149 assertTrue(lastNameResult.containsAction("int")); 150 assertTrue(!lastNameResult.isValid("int")); 151 } 152 153 /*** 154 * If the first name is there, and the last name fails int, we should get one error. 155 */ 156 public void testRequiredLastNameShort() throws ValidatorException { 157 // Create bean to run test on. 158 NameBean name = new NameBean(); 159 name.setFirstName("Test"); 160 name.setLastName("Test"); 161 162 // Construct validator based on the loaded resources 163 // and the form key 164 Validator validator = new Validator(resources, FORM_KEY); 165 // add the name bean to the validator as a resource 166 // for the validations to be performed on. 167 validator.setParameter(Validator.BEAN_PARAM, name); 168 169 // Get results of the validation. 170 ValidatorResults results = null; 171 172 results = validator.validate(); 173 174 assertNotNull("Results are null.", results); 175 176 ValidatorResult firstNameResult = results.getValidatorResult("firstName"); 177 ValidatorResult lastNameResult = results.getValidatorResult("lastName"); 178 179 assertNotNull(firstNameResult); 180 assertTrue(firstNameResult.containsAction(ACTION)); 181 assertTrue(firstNameResult.isValid(ACTION)); 182 183 assertNotNull(lastNameResult); 184 assertTrue(lastNameResult.containsAction("int")); 185 assertTrue(!lastNameResult.isValid("int")); 186 } 187 188 /*** 189 * If first name is ok and last name is ok and is an int, no errors. 190 */ 191 public void testRequiredLastNameLong() throws ValidatorException { 192 // Create bean to run test on. 193 NameBean name = new NameBean(); 194 name.setFirstName("Joe"); 195 name.setLastName("12345678"); 196 197 // Construct validator based on the loaded resources 198 // and the form key 199 Validator validator = new Validator(resources, FORM_KEY); 200 // add the name bean to the validator as a resource 201 // for the validations to be performed on. 202 validator.setParameter(Validator.BEAN_PARAM, name); 203 204 // Get results of the validation. 205 ValidatorResults results = null; 206 207 results = validator.validate(); 208 209 assertNotNull("Results are null.", results); 210 211 ValidatorResult firstNameResult = results.getValidatorResult("firstName"); 212 ValidatorResult lastNameResult = results.getValidatorResult("lastName"); 213 214 assertNotNull(firstNameResult); 215 assertTrue(firstNameResult.containsAction(ACTION)); 216 assertTrue(firstNameResult.isValid(ACTION)); 217 218 assertNotNull(lastNameResult); 219 assertTrue(lastNameResult.containsAction("int")); 220 assertTrue(lastNameResult.isValid("int")); 221 } 222 223 }

This page was automatically generated by Maven