| /* |
| * $Header: /home/data/cvs/rt/org.eclipse.ecf/tests/bundles/org.eclipse.ecf.tests.apache.httpclient.server/src/org/apache/commons/httpclient/TestHttpVersion.java,v 1.1 2009/02/13 18:07:50 slewis Exp $ |
| * $Revision: 1.1 $ |
| * $Date: 2009/02/13 18:07:50 $ |
| * ==================================================================== |
| * |
| * Copyright 1999-2004 The Apache Software Foundation |
| * |
| * 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. |
| * ==================================================================== |
| * |
| * This software consists of voluntary contributions made by many |
| * individuals on behalf of the Apache Software Foundation. For more |
| * information on the Apache Software Foundation, please see |
| * <http://www.apache.org/>. |
| * |
| * [Additional notices, if required by prior licensing conditions] |
| * |
| */ |
| |
| package org.apache.commons.httpclient; |
| |
| import junit.framework.Test; |
| import junit.framework.TestCase; |
| import junit.framework.TestSuite; |
| |
| /** |
| * Test cases for HTTP version class |
| * |
| * @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a> |
| * |
| * @version $Revision: 1.1 $ |
| */ |
| public class TestHttpVersion extends TestCase { |
| |
| // ------------------------------------------------------------ Constructor |
| |
| public TestHttpVersion(String name) { |
| super(name); |
| } |
| |
| // ------------------------------------------------------- TestCase Methods |
| |
| public static Test suite() { |
| return new TestSuite(TestHttpVersion.class); |
| } |
| |
| // ------------------------------------------------------------------ Tests |
| |
| public void testHttpVersionInvalidConstructorInput() throws Exception { |
| try { |
| HttpVersion ver = new HttpVersion(-1, -1); |
| fail("IllegalArgumentException should have been thrown"); |
| } catch (IllegalArgumentException e) { |
| // expected |
| } |
| try { |
| HttpVersion ver = new HttpVersion(0, -1); |
| fail("IllegalArgumentException should have been thrown"); |
| } catch (IllegalArgumentException e) { |
| // expected |
| } |
| } |
| |
| public void testHttpVersionParsing() throws Exception { |
| String s = "HTTP/1.1"; |
| HttpVersion version = HttpVersion.parse(s); |
| assertEquals("HTTP major version number", 1, version.getMajor()); |
| assertEquals("HTTP minor version number", 1, version.getMinor()); |
| assertEquals("HTTP version number", s, version.toString()); |
| |
| s = "HTTP/123.4567"; |
| version = HttpVersion.parse(s); |
| assertEquals("HTTP major version number", 123, version.getMajor()); |
| assertEquals("HTTP minor version number", 4567, version.getMinor()); |
| assertEquals("HTTP version number", s, version.toString()); |
| } |
| |
| public void testInvalidHttpVersionParsing() throws Exception { |
| try { |
| HttpVersion.parse(null); |
| fail("IllegalArgumentException should have been thrown"); |
| } catch (IllegalArgumentException e) { |
| //expected |
| } |
| try { |
| HttpVersion.parse("crap"); |
| fail("ProtocolException should have been thrown"); |
| } catch (ProtocolException e) { |
| //expected |
| } |
| try { |
| HttpVersion.parse("HTTP/crap"); |
| fail("ProtocolException should have been thrown"); |
| } catch (ProtocolException e) { |
| //expected |
| } |
| try { |
| HttpVersion.parse("HTTP/1"); |
| fail("ProtocolException should have been thrown"); |
| } catch (ProtocolException e) { |
| //expected |
| } |
| try { |
| HttpVersion.parse("HTTP/1234 "); |
| fail("ProtocolException should have been thrown"); |
| } catch (ProtocolException e) { |
| //expected |
| } |
| try { |
| HttpVersion.parse("HTTP/1."); |
| fail("ProtocolException should have been thrown"); |
| } catch (ProtocolException e) { |
| //expected |
| } |
| try { |
| HttpVersion.parse("HTTP/1.1 crap"); |
| fail("ProtocolException should have been thrown"); |
| } catch (ProtocolException e) { |
| //expected |
| } |
| try { |
| HttpVersion.parse("HTTP/whatever.whatever whatever"); |
| fail("ProtocolException should have been thrown"); |
| } catch (ProtocolException e) { |
| //expected |
| } |
| try { |
| HttpVersion.parse("HTTP/1.whatever whatever"); |
| fail("ProtocolException should have been thrown"); |
| } catch (ProtocolException e) { |
| //expected |
| } |
| } |
| |
| public void testHttpVersionEquality() throws Exception { |
| HttpVersion ver1 = new HttpVersion(1, 1); |
| HttpVersion ver2 = new HttpVersion(1, 1); |
| |
| assertEquals(ver1.hashCode(), ver2.hashCode()); |
| assertTrue(ver1.equals(ver1)); |
| assertTrue(ver1.equals(ver2)); |
| assertTrue(ver1.equals((Object)ver1)); |
| assertTrue(ver1.equals((Object)ver2)); |
| |
| assertFalse(ver1.equals(new Float(1.1))); |
| |
| try { |
| ver1.equals(null); |
| fail("IllegalArgumentException should have been thrown"); |
| } catch (IllegalArgumentException e) { |
| } |
| |
| assertTrue((new HttpVersion(0, 9)).equals(HttpVersion.HTTP_0_9)); |
| assertTrue((new HttpVersion(1, 0)).equals(HttpVersion.HTTP_1_0)); |
| assertTrue((new HttpVersion(1, 1)).equals(HttpVersion.HTTP_1_1)); |
| assertFalse((new HttpVersion(1, 1)).equals(HttpVersion.HTTP_1_0)); |
| } |
| |
| public void testHttpVersionComparison() { |
| assertTrue(HttpVersion.HTTP_0_9.lessEquals(HttpVersion.HTTP_1_1)); |
| assertTrue(HttpVersion.HTTP_0_9.greaterEquals(HttpVersion.HTTP_0_9)); |
| assertFalse(HttpVersion.HTTP_0_9.greaterEquals(HttpVersion.HTTP_1_0)); |
| |
| assertTrue(HttpVersion.HTTP_1_0.compareTo((Object)HttpVersion.HTTP_1_1) < 0); |
| assertTrue(HttpVersion.HTTP_1_0.compareTo((Object)HttpVersion.HTTP_0_9) > 0); |
| assertTrue(HttpVersion.HTTP_1_0.compareTo((Object)HttpVersion.HTTP_1_0) == 0); |
| } |
| } |
| |