diff --git a/src/test/org/apache/http/impl/conn/ClientConnAdapterMockup.java b/src/test/org/apache/http/impl/conn/ClientConnAdapterMockup.java new file mode 100644 index 000000000..9b656f852 --- /dev/null +++ b/src/test/org/apache/http/impl/conn/ClientConnAdapterMockup.java @@ -0,0 +1,73 @@ +/* + * $HeadURL$ + * $Revision$ + * $Date$ + * ==================================================================== + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 + * . + * + */ + +package org.apache.http.impl.conn; + +import org.apache.http.params.HttpParams; +import org.apache.http.protocol.HttpContext; +import org.apache.http.conn.HttpRoute; + + +/** + * Mockup connection adapter. + */ +public class ClientConnAdapterMockup extends AbstractClientConnAdapter { + + private boolean open = true; + + public ClientConnAdapterMockup() { + super(null, null); + } + + public void close() { + throw new UnsupportedOperationException("just a mockup"); + } + + public HttpRoute getRoute() { + throw new UnsupportedOperationException("just a mockup"); + } + + public void layerProtocol(HttpContext context, HttpParams params) { + throw new UnsupportedOperationException("just a mockup"); + } + + public void open(HttpRoute route, HttpContext context, HttpParams params) { + throw new UnsupportedOperationException("just a mockup"); + } + + public void shutdown() { + throw new UnsupportedOperationException("just a mockup"); + } + + public void tunnelCreated(boolean secure, HttpParams params) { + throw new UnsupportedOperationException("just a mockup"); + } + +} diff --git a/src/test/org/apache/http/impl/conn/TestTSCCMNoServer.java b/src/test/org/apache/http/impl/conn/TestTSCCMNoServer.java index 418baa403..f96ba6c14 100644 --- a/src/test/org/apache/http/impl/conn/TestTSCCMNoServer.java +++ b/src/test/org/apache/http/impl/conn/TestTSCCMNoServer.java @@ -169,6 +169,14 @@ public class TestTSCCMNoServer extends TestCase { assertFalse(conn.isOpen()); mgr.releaseConnection(conn); + + try { + conn = mgr.getConnection(null); + fail("null route not detected"); + } catch (IllegalArgumentException iax) { + // expected + } + mgr.shutdown(); } @@ -271,6 +279,21 @@ public class TestTSCCMNoServer extends TestCase { // expected } + + // check releaseConnection with invalid arguments + try { + mgr.releaseConnection(null); + fail("null connection adapter not detected"); + } catch (IllegalArgumentException iax) { + // expected + } + try { + mgr.releaseConnection(new ClientConnAdapterMockup()); + fail("foreign connection adapter not detected"); + } catch (IllegalArgumentException iax) { + // expected + } + mgr.shutdown(); }