1   /*
2    * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestHttpStatus.java,v 1.4 2004/05/02 11:21:13 olegk Exp $
3    * $Revision: 155418 $
4    * $Date: 2005-02-26 08:01:52 -0500 (Sat, 26 Feb 2005) $
5    * ====================================================================
6    *
7    *  Copyright 1999-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   * This software consists of voluntary contributions made by many
23   * individuals on behalf of the Apache Software Foundation.  For more
24   * information on the Apache Software Foundation, please see
25   * <http://www.apache.org/>.
26   *
27   * [Additional notices, if required by prior licensing conditions]
28   *
29   */
30  
31  package org.apache.commons.httpclient;
32  
33  import junit.framework.*;
34  import java.lang.reflect.*;
35  
36  /***
37   *
38   * Unit tests for {@link HttpStatus}
39   *
40   * @author Sean C. Sullivan
41   * @version $Id: TestHttpStatus.java 155418 2005-02-26 13:01:52Z dirkv $
42   */
43  public class TestHttpStatus extends TestCase {
44  
45      // ------------------------------------------------------------ Constructor
46      public TestHttpStatus(String testName) {
47          super(testName);
48      }
49  
50      // ------------------------------------------------------------------- Main
51      public static void main(String args[]) {
52          String[] testCaseName = { TestHttpStatus.class.getName() };
53          junit.textui.TestRunner.main(testCaseName);
54      }
55  
56      // ------------------------------------------------------- TestCase Methods
57  
58      public static Test suite() {
59          return new TestSuite(TestHttpStatus.class);
60      }
61  
62  
63      // ----------------------------------------------------------- Test Methods
64  
65      public void testStatusText() throws IllegalAccessException {
66  	Field[] publicFields = HttpStatus.class.getFields();
67  
68  	assertTrue( publicFields != null );
69  
70  	assertTrue( publicFields.length > 0 );
71  
72  	for (int i = 0; i < publicFields.length; i++)
73  	{
74  		final Field f = publicFields[i];
75  
76  		final int modifiers = f.getModifiers();
77  
78  		if ( (f.getType() == int.class)
79  			&& Modifier.isPublic(modifiers)
80  			&& Modifier.isFinal(modifiers)
81  			&& Modifier.isStatic(modifiers) )
82  		{
83  			final int iValue = f.getInt(null);
84  			final String text = HttpStatus.getStatusText(iValue);
85  
86  			assertTrue( "text is null for HttpStatus." + f.getName(), 
87  				(text != null) );
88  
89  			assertTrue( text.length() > 0 );
90  		}
91  	}
92  
93      }
94  
95      public void testStatusTextNegative() throws Exception {
96          try {
97              HttpStatus.getStatusText(-1);
98              fail("IllegalArgumentException must have been thrown");
99          } catch (IllegalArgumentException expected) {
100         }
101     }
102 
103     public void testStatusTextAll() throws Exception {
104         for (int i = 0; i < 600; i++) {
105             HttpStatus.getStatusText(i);
106         }
107     }
108 }