    1   /*
    2    * $Id: RequiredNameTest.java 329871 2005-10-31 17:50:55Z niallp $
    3    * $Rev: 329871 $
    4    * $Date: 2005-10-31 17:50:55 +0000 (Mon, 31 Oct 2005) $
    5    *
    6    * ====================================================================
    7    * Copyright 2001-2005 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
    23  package org.apache.commons.validator;
    24
    25  import java.io.IOException;
    26
    27  import junit.framework.Test;
    28  import junit.framework.TestSuite;
    29
    30  import org.xml.sax.SAXException;
    31
    32
    33  /***
    34   * Performs Validation Test.
    35   */
    36  public class RequiredNameTest extends TestCommon {
    37
    38     /***
    39      * The key used to retrieve the set of validation
    40      * rules from the xml file.
    41      */
    42     protected static String FORM_KEY = "nameForm";
    43
    44     /***
    45      * The key used to retrieve the validator action.
    46      */
    47     protected static String ACTION = "required";
    48
    49     public RequiredNameTest(String name) {
    50         super(name);
    51     }
    52
    53     /***
    54      * Start the tests.
    55      *
    56      * @param theArgs the arguments. Not used
    57      */
    58     public static void main(String[] theArgs) {
    59         junit.awtui.TestRunner.main(new String[] {RequiredNameTest.class.getName()});
    60     }
    61
    62     /***
    63      * @return a test suite (<code>TestSuite</code>) that includes all methods
    64      *         starting with "test"
    65      */
    66     public static Test suite() {
    67         // All methods starting with "test" will be executed in the test suite.
    68         return new TestSuite(RequiredNameTest.class);
    69     }
    70
    71     /***
    72      * Load <code>ValidatorResources</code> from
    73      * validator-name-required.xml.
    74      */
    75     protected void setUp() throws IOException, SAXException {
    76        // Load resources
    77        loadResources("RequiredNameTest-config.xml");
    78     }
    79
    80     protected void tearDown() {
    81     }
    82
    83     /***
    84      * Tests the required validation failure.
    85      */
    86     public void testRequired() throws ValidatorException {
    87        // Create bean to run test on.
    88        NameBean name = new NameBean();
    89
    90        // Construct validator based on the loaded resources
    91        // and the form key
    92        Validator validator = new Validator(resources, FORM_KEY);
    93        // add the name bean to the validator as a resource
    94        // for the validations to be performed on.
    95        validator.setParameter(Validator.BEAN_PARAM, name);
    96
    97        // Get results of the validation.
    98        ValidatorResults results = null;
    99
    100       // throws ValidatorException,
    101       // but we aren't catching for testing
    102       // since no validation methods we use
    103       // throw this
    104       results = validator.validate();
    105
    106       assertNotNull("Results are null.", results);
    107
    108       ValidatorResult firstNameResult = results.getValidatorResult("firstName");
    109       ValidatorResult lastNameResult = results.getValidatorResult("lastName");
    110
    111       assertNotNull("First Name ValidatorResult should not be null.", firstNameResult);
    112       assertTrue("First Name ValidatorResult should contain the '" + ACTION +"' action.", firstNameResult.containsAction(ACTION));
    113       assertTrue("First Name ValidatorResult for the '" + ACTION +"' action should have failed.", !firstNameResult.isValid(ACTION));
    114
    115       assertNotNull("First Name ValidatorResult should not be null.", lastNameResult);
    116       assertTrue("Last Name ValidatorResult should contain the '" + ACTION +"' action.", lastNameResult.containsAction(ACTION));
    117       assertTrue("Last Name ValidatorResult for the '" + ACTION +"' action should have failed.", !lastNameResult.isValid(ACTION));
    118    }
    119
    120    /***
    121     * Tests the required validation for first name if it is blank.
    122     */
    123    public void testRequiredFirstNameBlank() throws ValidatorException {
    124       // Create bean to run test on.
    125       NameBean name = new NameBean();
    126       name.setFirstName("");
    127
    128       // Construct validator based on the loaded resources
    129       // and the form key
    130       Validator validator = new Validator(resources, FORM_KEY);
    131       // add the name bean to the validator as a resource
    132       // for the validations to be performed on.
    133       validator.setParameter(Validator.BEAN_PARAM, name);
    134
    135       // Get results of the validation.
    136       ValidatorResults results = null;
    137
    138       results = validator.validate();
    139
    140       assertNotNull("Results are null.", results);
    141
    142       ValidatorResult firstNameResult = results.getValidatorResult("firstName");
    143       ValidatorResult lastNameResult = results.getValidatorResult("lastName");
    144
    145       assertNotNull("First Name ValidatorResult should not be null.", firstNameResult);
    146       assertTrue("First Name ValidatorResult should contain the '" + ACTION +"' action.", firstNameResult.containsAction(ACTION));
    147       assertTrue("First Name ValidatorResult for the '" + ACTION +"' action should have failed.", !firstNameResult.isValid(ACTION));
    148
    149       assertNotNull("First Name ValidatorResult should not be null.", lastNameResult);
    150       assertTrue("Last Name ValidatorResult should contain the '" + ACTION +"' action.", lastNameResult.containsAction(ACTION));
    151       assertTrue("Last Name ValidatorResult for the '" + ACTION +"' action should have failed.", !lastNameResult.isValid(ACTION));
    152    }
    153
    154    /***
    155     * Tests the required validation for first name.
    156     */
    157    public void testRequiredFirstName() throws ValidatorException {
    158       // Create bean to run test on.
    159       NameBean name = new NameBean();
    160       name.setFirstName("Joe");
    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("First Name ValidatorResult should not be null.", firstNameResult);
    180       assertTrue("First Name ValidatorResult should contain the '" + ACTION +"' action.", firstNameResult.containsAction(ACTION));
    181       assertTrue("First Name ValidatorResult for the '" + ACTION +"' action should have passed.", firstNameResult.isValid(ACTION));
    182
    183       assertNotNull("First Name ValidatorResult should not be null.", lastNameResult);
    184       assertTrue("Last Name ValidatorResult should contain the '" + ACTION +"' action.", lastNameResult.containsAction(ACTION));
    185       assertTrue("Last Name ValidatorResult for the '" + ACTION +"' action should have failed.", !lastNameResult.isValid(ACTION));
    186    }
    187
    188    /***
    189     * Tests the required validation for last name if it is blank.
    190     */
    191    public void testRequiredLastNameBlank() throws ValidatorException {
    192       // Create bean to run test on.
    193       NameBean name = new NameBean();
    194       name.setLastName("");
    195
    196       // Construct validator based on the loaded resources
    197       // and the form key
    198       Validator validator = new Validator(resources, FORM_KEY);
    199       // add the name bean to the validator as a resource
    200       // for the validations to be performed on.
    201       validator.setParameter(Validator.BEAN_PARAM, name);
    202
    203       // Get results of the validation.
    204       ValidatorResults results = null;
    205
    206       results = validator.validate();
    207
    208       assertNotNull("Results are null.", results);
    209
    210       ValidatorResult firstNameResult = results.getValidatorResult("firstName");
    211       ValidatorResult lastNameResult = results.getValidatorResult("lastName");
    212
    213       assertNotNull("First Name ValidatorResult should not be null.", firstNameResult);
    214       assertTrue("First Name ValidatorResult should contain the '" + ACTION +"' action.", firstNameResult.containsAction(ACTION));
    215       assertTrue("First Name ValidatorResult for the '" + ACTION +"' action should have failed.", !firstNameResult.isValid(ACTION));
    216
    217       assertNotNull("First Name ValidatorResult should not be null.", lastNameResult);
    218       assertTrue("Last Name ValidatorResult should contain the '" + ACTION +"' action.", lastNameResult.containsAction(ACTION));
    219       assertTrue("Last Name ValidatorResult for the '" + ACTION +"' action should have failed.", !lastNameResult.isValid(ACTION));
    220    }
    221
    222    /***
    223     * Tests the required validation for last name.
    224     */
    225    public void testRequiredLastName() throws ValidatorException {
    226       // Create bean to run test on.
    227       NameBean name = new NameBean();
    228       name.setLastName("Smith");
    229
    230       // Construct validator based on the loaded resources
    231       // and the form key
    232       Validator validator = new Validator(resources, FORM_KEY);
    233       // add the name bean to the validator as a resource
    234       // for the validations to be performed on.
    235       validator.setParameter(Validator.BEAN_PARAM, name);
    236
    237       // Get results of the validation.
    238       ValidatorResults results = null;
    239
    240       results = validator.validate();
    241
    242       assertNotNull("Results are null.", results);
    243
    244       ValidatorResult firstNameResult = results.getValidatorResult("firstName");
    245       ValidatorResult lastNameResult = results.getValidatorResult("lastName");
    246
    247       assertNotNull("First Name ValidatorResult should not be null.", firstNameResult);
    248       assertTrue("First Name ValidatorResult should contain the '" + ACTION +"' action.", firstNameResult.containsAction(ACTION));
    249       assertTrue("First Name ValidatorResult for the '" + ACTION +"' action should have failed.", !firstNameResult.isValid(ACTION));
    250
    251       assertNotNull("First Name ValidatorResult should not be null.", lastNameResult);
    252       assertTrue("Last Name ValidatorResult should contain the '" + ACTION +"' action.", lastNameResult.containsAction(ACTION));
    253       assertTrue("Last Name ValidatorResult for the '" + ACTION +"' action should have passed.", lastNameResult.isValid(ACTION));
    254
    255    }
    256
    257    /***
    258     * Tests the required validation for first and last name.
    259     */
    260    public void testRequiredName() throws ValidatorException {
    261       // Create bean to run test on.
    262       NameBean name = new NameBean();
    263       name.setFirstName("Joe");
    264       name.setLastName("Smith");
    265
    266       // Construct validator based on the loaded resources
    267       // and the form key
    268       Validator validator = new Validator(resources, FORM_KEY);
    269       // add the name bean to the validator as a resource
    270       // for the validations to be performed on.
    271       validator.setParameter(Validator.BEAN_PARAM, name);
    272
    273       // Get results of the validation.
    274       ValidatorResults results = null;
    275
    276       results = validator.validate();
    277
    278       assertNotNull("Results are null.", results);
    279
    280       ValidatorResult firstNameResult = results.getValidatorResult("firstName");
    281       ValidatorResult lastNameResult = results.getValidatorResult("lastName");
    282
    283       assertNotNull("First Name ValidatorResult should not be null.", firstNameResult);
    284       assertTrue("First Name ValidatorResult should contain the '" + ACTION +"' action.", firstNameResult.containsAction(ACTION));
    285       assertTrue("First Name ValidatorResult for the '" + ACTION +"' action should have passed.", firstNameResult.isValid(ACTION));
    286
    287       assertNotNull("First Name ValidatorResult should not be null.", lastNameResult);
    288       assertTrue("Last Name ValidatorResult should contain the '" + ACTION +"' action.", lastNameResult.containsAction(ACTION));
    289       assertTrue("Last Name ValidatorResult for the '" + ACTION +"' action should have passed.", lastNameResult.isValid(ACTION));
    290    }
    291
    292 }