Author: sebb Date: Wed Jan 6 23:50:53 2010 New Revision: 896721 URL: http://svn.apache.org/viewvc?rev=896721&view=rev Log: Initial Test suite for DelegatingCallableStatement
Added: commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestDelegatingCallableStatement.java (with props) Added: commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestDelegatingCallableStatement.java URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestDelegatingCallableStatement.java?rev=896721&view=auto ============================================================================== --- commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestDelegatingCallableStatement.java (added) +++ commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestDelegatingCallableStatement.java Wed Jan 6 23:50:53 2010 @@ -0,0 +1,119 @@ +/* + * 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. + */ + +package org.apache.commons.dbcp; + +import java.sql.CallableStatement; +import java.sql.Connection; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * @version $Revision$ $Date$ + */ +public class TestDelegatingCallableStatement extends TestCase { + public TestDelegatingCallableStatement(String testName) { + super(testName); + } + + public static Test suite() { + return new TestSuite(TestDelegatingCallableStatement.class); + } + + private DelegatingConnection conn = null; + private Connection delegateConn = null; + private DelegatingCallableStatement stmt = null; + private CallableStatement delegateStmt = null; + + public void setUp() throws Exception { + delegateConn = new TesterConnection("test", "test"); + conn = new DelegatingConnection(delegateConn); + } + + public void testExecuteQueryReturnsNull() throws Exception { + delegateStmt = new TesterCallableStatement(delegateConn,"null"); + stmt = new DelegatingCallableStatement(conn,delegateStmt); + assertNull(stmt.executeQuery()); + } + + public void testExecuteQueryReturnsNotNull() throws Exception { + delegateStmt = new TesterCallableStatement(delegateConn,"select * from foo"); + stmt = new DelegatingCallableStatement(conn,delegateStmt); + assertTrue(null != stmt.executeQuery()); + } + + public void testGetDelegate() throws Exception { + delegateStmt = new TesterCallableStatement(delegateConn,"select * from foo"); + stmt = new DelegatingCallableStatement(conn,delegateStmt); + assertEquals(delegateStmt,stmt.getDelegate()); + } + + public void testHashCodeNull() { + stmt = new DelegatingCallableStatement(conn, null); + assertEquals(0, stmt.hashCode()); + } + + public void testHashCode() { + delegateStmt = new TesterCallableStatement(delegateConn,"select * from foo"); + DelegatingCallableStatement stmt1 = new DelegatingCallableStatement(conn,delegateStmt); + DelegatingCallableStatement stmt2 = new DelegatingCallableStatement(conn,delegateStmt); + assertEquals(stmt1.hashCode(), stmt2.hashCode()); + } + + public void testEquals() { + delegateStmt = new TesterCallableStatement(delegateConn,"select * from foo"); + CallableStatement del = new TesterCallableStatement(delegateConn,"select * from foo"); + DelegatingCallableStatement stmt1 = new DelegatingCallableStatement(conn, delegateStmt); + DelegatingCallableStatement stmt2 = new DelegatingCallableStatement(conn, delegateStmt); + DelegatingCallableStatement stmt3 = new DelegatingCallableStatement(conn, null); + DelegatingCallableStatement stmt4 = new DelegatingCallableStatement(conn, del); + + // Nothing is equal to null + assertFalse(stmt1.equals(null)); + assertFalse(stmt2.equals(null)); + assertFalse(stmt3.equals(null)); + assertFalse(stmt4.equals(null)); + + // 1 & 2 are equivalent + assertTrue(stmt1.equals(stmt2)); + assertTrue(stmt2.equals(stmt1)); // reflexive + + // 1 & 3 are not (different statements, one null) + assertFalse(stmt1.equals(stmt3)); + assertFalse(stmt3.equals(stmt1)); // reflexive + + // 1 & 4 are not (different statements) + assertFalse(stmt1.equals(stmt4)); + assertFalse(stmt4.equals(stmt1)); // reflexive + + // Check self-equals + assertTrue(stmt1.equals(stmt1)); + assertTrue(stmt2.equals(stmt2)); + assertFalse(stmt3.equals(stmt3)); // because underlying statement is null + assertTrue(stmt4.equals(stmt4)); + + DelegatingStatement dstmt1 = stmt1; + + // 1 & 2 are equivalent + assertTrue(dstmt1.equals(stmt2)); + assertTrue(stmt2.equals(dstmt1)); // reflexive + + } + +} Propchange: commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestDelegatingCallableStatement.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestDelegatingCallableStatement.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision