1   /*
2    * $Header: /home/cvs/jakarta-commons/validator/src/test/org/apache/commons/validator/TestNumber.java,v 1.4 2004/02/21 17:10:30 rleland Exp $
3    * $Revision: 1.4 $
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  
26  import org.xml.sax.SAXException;
27  
28  /***
29   * Abstracts number unit tests methods.
30   */
31  abstract public class TestNumber extends TestCommon {
32      
33      /***
34       * The key used to retrieve the set of validation
35       * rules from the xml file.
36       */
37      protected String FORM_KEY;
38      
39      /***
40       * The key used to retrieve the validator action.
41       */
42      protected String ACTION;
43  
44  
45      public TestNumber(String name) {
46          super(name);
47      }
48  
49      /***
50       * Load <code>ValidatorResources</code> from 
51       * validator-numeric.xml.
52       */
53      protected void setUp() throws IOException, SAXException {
54          // Load resources
55          loadResources("validator-numeric.xml");
56      }
57  
58      protected void tearDown() {
59      }
60  
61      /***
62       * Tests the number validation.
63       */
64      public void testNumber() throws ValidatorException {
65          // Create bean to run test on.
66          ValueBean info = new ValueBean();
67          info.setValue("0");
68          if (log.isDebugEnabled()) {
69              log.debug("testNumberFailure Action=" + ACTION + ", FORM_KEY=" + FORM_KEY);
70          }
71          valueTest(info, true);
72      }
73  
74      /***
75       * Tests the float validation failure.
76       */
77      public void testNumberFailure() throws ValidatorException {
78          // Create bean to run test on.
79          ValueBean info = new ValueBean();
80          if (log.isDebugEnabled()) {
81              log.debug("testNumberFailure Action=" + ACTION + ", FORM_KEY=" + FORM_KEY);
82          }
83          valueTest(info, false);
84      }
85  
86      /***
87       * Utlity class to run a test on a value.
88       *
89       * @param	info	Value to run test on.
90       * @param	passed	Whether or not the test is expected to pass.
91       */
92      protected void valueTest(Object info, boolean passed) throws ValidatorException {
93          // Construct validator based on the loaded resources
94          // and the form key
95          Validator validator = new Validator(resources, FORM_KEY);
96          // add the name bean to the validator as a resource
97          // for the validations to be performed on.
98          validator.setParameter(Validator.BEAN_PARAM, info);
99  
100         // Get results of the validation.
101         ValidatorResults results = null;
102 
103         // throws ValidatorException,
104         // but we aren't catching for testing
105         // since no validation methods we use
106         // throw this
107         results = validator.validate();
108 
109         assertNotNull("Results are null.", results);
110 
111         ValidatorResult result = results.getValidatorResult("value");
112 
113         assertNotNull(ACTION + " value ValidatorResult should not be null.", result);
114         assertTrue(ACTION + " value ValidatorResult should contain the '" + ACTION + "' action.", result.containsAction(ACTION));
115         assertTrue(ACTION + " value ValidatorResult for the '" + ACTION + "' action should have " + (passed ? "passed" : "failed") + ".", (passed ? result.isValid(ACTION) : !result.isValid(ACTION)));
116     }
117 
118 
119 }