From: Ted H. <th...@us...> - 2002-09-09 12:13:57
|
Update of /cvsroot/mockobjects/mockobjects-java/src/jdk/common/com/mockobjects/sql In directory usw-pr-cvs1:/tmp/cvs-serv12404 Modified Files: MockResultSet.java CommonMockSingleRowResultSet.java CommonMockPreparedStatement.java Log Message: License, JavaDoc, et al. Index: MockResultSet.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/jdk/common/com/mockobjects/sql/MockResultSet.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- MockResultSet.java 19 Jun 2002 15:26:26 -0000 1.2 +++ MockResultSet.java 9 Sep 2002 12:13:53 -0000 1.3 @@ -1,3 +1,63 @@ +/* + * + * ==================================================================== + * + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2002 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, if + * any, must include the following acknowlegement: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowlegement may appear in the software itself, + * if and wherever such third-party acknowlegements normally appear. + * + * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software + * Foundation" must not be used to endorse or promote products derived + * from this software without prior written permission. For written + * permission, please contact ap...@ap.... + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * 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/>. + * + */ + +// ------------------------------------------------------------------------ 78 + package com.mockobjects.sql; import com.mockobjects.ExpectationCounter; @@ -18,15 +78,46 @@ * For basic java types (e.g. int, boolean), insert an instance of * the appropriate object (e.g. Integer, Boolean) * It also counts close() and next() calls - * To force throwing a SQLException on a getter, set the corresponding value to be of type SQLException. + * To force throwing a SQLException on a getter, + * set the corresponding value to be of type SQLException. */ abstract public class MockResultSet extends MockObject implements ResultSet { - private ExpectationCounter myCloseCalls = new ExpectationCounter("MockResultSet.close"); - protected ExpectationCounter myNextCalls = new ExpectationCounter("MockResultSet.next"); + + +// -------------------------------------------------------------------- fields + + private ExpectationCounter myCloseCalls = + new ExpectationCounter("MockResultSet.close"); + + protected ExpectationCounter myNextCalls = + new ExpectationCounter("MockResultSet.next"); private ResultSetMetaData myMetaData; + private Statement myStatement; +// -------------------------------------------------------------- setExpected* + + public void setExpectedCloseCalls(int calls) { + myCloseCalls.setExpected(calls); + } + + public void setExpectedNextCalls(int calls) { + myNextCalls.setExpected(calls); + } + +// --------------------------------------------------------------------- setup + + public void setupMetaData(ResultSetMetaData metaData) { + myMetaData = metaData; + } + + public void setupStatement(Statement statement) { + myStatement = statement; + } + +// ------------------------------------------------------------------ abstract + /** * Used as the base implementation for getting all types of object, * based on 1-based column index @@ -45,21 +136,7 @@ abstract public int getRow() throws SQLException; - public void setExpectedCloseCalls(int calls) { - myCloseCalls.setExpected(calls); - } - - public void setExpectedNextCalls(int calls) { - myNextCalls.setExpected(calls); - } - - public void setupMetaData(ResultSetMetaData metaData) { - myMetaData = metaData; - } - - public void setupStatement(Statement statement) { - myStatement = statement; - } +// --------------------------------------------------------------- implemented public void close() throws SQLException { myCloseCalls.inc(); @@ -153,16 +230,6 @@ return (Clob) getObject(colName); } - public String getCursorName() throws SQLException { - notImplemented(); - return null; - } - - public int getConcurrency() throws SQLException { - notImplemented(); - return 0; - } - public Date getDate(int columnIndex) throws SQLException { return (Date) getObject(columnIndex); } @@ -187,16 +254,6 @@ return ((Double) getObject(columnName)).doubleValue(); } - public int getFetchDirection() throws SQLException { - notImplemented(); - return 0; - } - - public int getFetchSize() throws SQLException { - notImplemented(); - return 0; - } - public float getFloat(int columnIndex) throws SQLException { return ((Float) getObject(columnIndex)).floatValue(); } @@ -225,16 +282,6 @@ return myMetaData; } - public Object getObject(int i, Map map) throws SQLException { - notImplemented(); - return null; - } - - public Object getObject(String colName, Map map) throws SQLException { - notImplemented(); - return null; - } - public Ref getRef(int i) throws SQLException { return (Ref) getObject(i); } @@ -287,316 +334,567 @@ return (Timestamp) getObject(columnName); } - public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException { + public Timestamp getTimestamp(int columnIndex, Calendar cal) + throws SQLException { return getTimestamp(columnIndex); } - public Timestamp getTimestamp(String columnName, Calendar cal) throws SQLException { + public Timestamp getTimestamp(String columnName, Calendar cal) + throws SQLException { return getTimestamp(columnName); } - public int getType() throws SQLException { + public InputStream getUnicodeStream(int columnIndex) + throws SQLException { + return (InputStream) getObject(columnIndex); + } + + public InputStream getUnicodeStream(String columnName) + throws SQLException { + return (InputStream) getObject(columnName); + } + +// ------------------------------------------------------------ notImplemented + + public String getCursorName() throws SQLException { + notImplemented(); + return null; + } + + public int getConcurrency() throws SQLException { notImplemented(); return 0; } - public InputStream getUnicodeStream(int columnIndex) throws SQLException { - return (InputStream) getObject(columnIndex); + /** + * Calls notImplemented. Returns 0. + */ + public int getFetchDirection() throws SQLException { + notImplemented(); + return 0; } - public InputStream getUnicodeStream(String columnName) throws SQLException { - return (InputStream) getObject(columnName); + /** + * Calls notImplemented. Returns 0. + */ + public int getFetchSize() throws SQLException { + notImplemented(); + return 0; + } + + /** + * Calls notImplemented. Returns null. + */ + public Object getObject(int i, Map map) throws SQLException { + notImplemented(); + return null; + } + + /** + * Calls notImplemented. Returns null. + */ + public Object getObject(String colName, Map map) throws SQLException { + notImplemented(); + return null; + } + + /** + * Calls notImplemented. Returns 0. + */ + public int getType() throws SQLException { + notImplemented(); + return 0; } + /** + * Calls notImplemented. Returns null. + */ public SQLWarning getWarnings() throws SQLException { notImplemented(); return null; } + /** + * Calls notImplemented. + */ public void clearWarnings() throws SQLException { notImplemented(); } + /** + * Calls notImplemented. Returns 0. + */ public int findColumn(String columnName) throws SQLException { notImplemented(); return 0; } + /** + * Calls notImplemented. Returns false. + */ public boolean isBeforeFirst() throws SQLException { notImplemented(); return false; } + /** + * Calls notImplemented. Returns false. + */ public boolean isAfterLast() throws SQLException { notImplemented(); return false; } + /** + * Calls notImplemented. Returns false. + */ public boolean isFirst() throws SQLException { notImplemented(); return false; } + /** + * Calls notImplemented. Returns false. + */ public boolean isLast() throws SQLException { notImplemented(); return false; } + /** + * Calls notImplemented. + */ public void beforeFirst() throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void afterLast() throws SQLException { notImplemented(); } + /** + * Calls notImplemented. Returns false. + */ public boolean first() throws SQLException { notImplemented(); return false; } - public boolean last() throws SQLException { + /** + * Calls notImplemented. Returns false. + */ + public boolean last() throws SQLException { notImplemented(); return false; } + /** + * Calls notImplemented. Returns false. + */ public boolean absolute(int row) throws SQLException { notImplemented(); return false; } + /** + * Calls notImplemented. Returns false. + */ public boolean relative(int rows) throws SQLException { notImplemented(); return false; } + /** + * Calls notImplemented. Returns false. + */ public boolean previous() throws SQLException { notImplemented(); return false; } + /** + * Calls notImplemented. + */ public void setFetchDirection(int direction) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void setFetchSize(int rows) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. Returns false. + */ public boolean rowUpdated() throws SQLException { notImplemented(); return false; } + /** + * Calls notImplemented. Returns false. + */ public boolean rowInserted() throws SQLException { notImplemented(); return false; } + /** + * Calls notImplemented. Returns false. + */ public boolean rowDeleted() throws SQLException { notImplemented(); return false; } + /** + * Calls notImplemented. + */ public void updateNull(int columnIndex) throws SQLException { notImplemented(); } - public void updateBoolean(int columnIndex, boolean x) throws SQLException { + /** + * Calls notImplemented. + */ + public void updateBoolean(int columnIndex, boolean x) + throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateByte(int columnIndex, byte x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateShort(int columnIndex, short x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateInt(int columnIndex, int x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateLong(int columnIndex, long x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateFloat(int columnIndex, float x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateDouble(int columnIndex, double x) throws SQLException { notImplemented(); } - public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException { + /** + * Calls notImplemented. + */ + public void updateBigDecimal(int columnIndex, BigDecimal x) + throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateString(int columnIndex, String x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateBytes(int columnIndex, byte x[]) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateDate(int columnIndex, Date x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateTime(int columnIndex, Time x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateAsciiStream(int columnIndex, InputStream x, int length) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateBinaryStream(int columnIndex, InputStream x, int length) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateCharacterStream(int columnIndex, Reader x, int length) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateObject(int columnIndex, Object x, int scale) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateObject(int columnIndex, Object x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateNull(String columnName) throws SQLException { notImplemented(); } - public void updateBoolean(String columnName, boolean x) throws SQLException { + /** + * Calls notImplemented. + */ + public void updateBoolean(String columnName, boolean x) + throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateByte(String columnName, byte x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateShort(String columnName, short x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateInt(String columnName, int x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateLong(String columnName, long x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateFloat(String columnName, float x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateDouble(String columnName, double x) throws SQLException { notImplemented(); } - public void updateBigDecimal(String columnName, BigDecimal x) throws SQLException { + /** + * Calls notImplemented. + */ + public void updateBigDecimal(String columnName, BigDecimal x) + throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateString(String columnName, String x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateBytes(String columnName, byte x[]) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateDate(String columnName, Date x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateTime(String columnName, Time x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateTimestamp(String columnName, Timestamp x) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateAsciiStream(String columnName, InputStream x, int length) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateBinaryStream(String columnName, InputStream x, int length) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateCharacterStream(String columnName, Reader reader, int length) throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateObject(String columnName, Object x, int scale) throws SQLException { notImplemented(); } - public void updateObject(String columnName, Object x) throws SQLException { + /** + * Calls notImplemented. + */ + public void updateObject(String columnName, Object x) + throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void insertRow() throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void updateRow() throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void deleteRow() throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void refreshRow() throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void cancelRowUpdates() throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void moveToInsertRow() throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public void moveToCurrentRow() throws SQLException { notImplemented(); } + /** + * Calls notImplemented. + */ public boolean wasNull() throws SQLException { notImplemented(); return false; } -} +} // end MockResultSet Index: CommonMockSingleRowResultSet.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/jdk/common/com/mockobjects/sql/CommonMockSingleRowResultSet.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- CommonMockSingleRowResultSet.java 28 Jun 2002 17:35:39 -0000 1.1 +++ CommonMockSingleRowResultSet.java 9 Sep 2002 12:13:53 -0000 1.2 @@ -1,64 +1,187 @@ +/* + * + * ==================================================================== + * + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2002 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, if + * any, must include the following acknowlegement: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowlegement may appear in the software itself, + * if and wherever such third-party acknowlegements normally appear. + * + * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software + * Foundation" must not be used to endorse or promote products derived + * from this software without prior written permission. For written + * permission, please contact ap...@ap.... + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * 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/>. + * + */ + +// ------------------------------------------------------------------------ 78 + package com.mockobjects.sql; import java.sql.SQLException; -import java.util.*; - +import java.util.Map; /** - * This is a simple implementation of a MockResultSet. - * It verifies that the values fed to it have been retrieved. - * These can be found by either column index or column name. + * Implementation of a MockResultSet that uses the ExpectationRow + * object to simulate a ResultSet that returns a single row. + * It verifies that the values fed to it have been retrieved + * throw a call to next and getRow. + * Column values can be retrieved using any of the getters + * declared in MockResultSet. + * Depending on which constructor is used, + * these can be found by either column index or column name. * For basic java types (e.g. int, boolean), insert an instance of - * the appropriate object (e.g. Integer, Boolean) - * To force throwing a SQLException on a getter, set the corresponding value to be of type SQLException. + * the appropriate object (e.g. Integer, Boolean). + * To force throwing a SQLException on a getter, + * set the corresponding value to be of type SQLException. + * @author Jeff Martin + * @author Ted Husted */ public abstract class CommonMockSingleRowResultSet extends MockResultSet { - private ExpectationSqlRow myRow = new ExpectationSqlRow("single row"); + +// -------------------------------------------------------------------- fields + + private ExpectationSqlRow myRow = + new ExpectationSqlRow("CommonMockSingleRowResultSet.SqlRow"); + private int myNextCallCount = 0; - public CommonMockSingleRowResultSet(Object[] values) { - addExpectedIndexedValues(values); +// -------------------------------------------------------------- addExpected* + + + /** + * Add expected values from an array to be retrieved by index. + */ + public void addExpectedIndexedValues(Object[] values) { + myRow.addExpectedIndexedValues(values); + } + + /** + * Add expected values from an array to be retrieved by name or + * index. + */ + public void addExpectedNamedValues(String[] names, Object[] values) { + myRow.addExpectedNamedValues(names, values); + } + + /** + * Add expected values from a Map to be retrieved by name or + * index. + */ + public void addExpectedNamedValues(Map map) { + myRow.addExpectedNamedValues(map); } +// -------------------------------------------------------------- constructors + + /** + * Default constructor. + * Call one of the AddExpected* methods before use, + * or use one of the alternate constructors instead. + */ public CommonMockSingleRowResultSet(){ super(); } + /** + * Constructor to create a single row ResultSet + * that can retrieve passed values by index. + */ + public CommonMockSingleRowResultSet(Object[] values) { + addExpectedIndexedValues(values); + } + + /** + * Constructor to create a single row ResultSet + * that can retrieve passed values by name. + */ public CommonMockSingleRowResultSet(String[] names, Object[] values) { addExpectedNamedValues(names, values); } + /** + * Constructor to create a single row ResultSet + * from a Map. + */ public CommonMockSingleRowResultSet(Map map) { addExpectedNamedValues(map); } - public void addExpectedIndexedValues(Object[] values) { - myRow.addExpectedIndexedValues(values); - } - - public void addExpectedNamedValues(String[] names, Object[] values) { - myRow.addExpectedNamedValues(names, values); - } +// --------------------------------------------------------------- implemented - public void addExpectedNamedValues(Map map) { - myRow.addExpectedNamedValues(map); - } + /** + * Return true if this is the first time next is called. + */ public boolean next() throws SQLException { myNextCalls.inc(); myNextCallCount++; return myNextCallCount == 1; } + /** + * Return 1 if next has been called exactly once. + */ public int getRow() throws SQLException { return myNextCallCount; } + /** + * Return value set for given index by an addExpected* method. + * Called by superclass to cast values to appropriate type. + */ public Object getObject(int columnIndex) throws SQLException { return myRow.get(columnIndex); } + /** + * Return value set for given name by an addExpectedNamedValue + * method. + * Called by superclass to cast values to appropriate type. + */ public Object getObject(String columnName) throws SQLException { return myRow.get(columnName); } -} +} // end CommonMockSingleRowResultSet Index: CommonMockPreparedStatement.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/jdk/common/com/mockobjects/sql/CommonMockPreparedStatement.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- CommonMockPreparedStatement.java 28 Jun 2002 17:35:39 -0000 1.1 +++ CommonMockPreparedStatement.java 9 Sep 2002 12:13:53 -0000 1.2 @@ -1,3 +1,63 @@ +/* + * + * ==================================================================== + * + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2002 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, if + * any, must include the following acknowlegement: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowlegement may appear in the software itself, + * if and wherever such third-party acknowlegements normally appear. + * + * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software + * Foundation" must not be used to endorse or promote products derived + * from this software without prior written permission. For written + * permission, please contact ap...@ap.... + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * 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/>. + * + */ + +// ------------------------------------------------------------------------ 78 + package com.mockobjects.sql; import java.sql.*; @@ -6,26 +66,40 @@ import java.math.BigDecimal; import com.mockobjects.*; -public abstract class CommonMockPreparedStatement extends CommonMockStatement implements -PreparedStatement { +/** + * Abstract PreparedStatement for use with mock testing. + * If a notImplemented method is are needed for your project, + * please submit a patch. + * @see <a href="http://java.sun.com/j2se/1.3/docs/api/java/sql/PreparedStatement.html">java.sql.PreparedStatement</a> + * @author Jeff Martin + * @author Ted Husted + * @version $Revision$ $Date$ + */ +public abstract class CommonMockPreparedStatement + extends CommonMockStatement implements PreparedStatement { + +// -------------------------------------------------------------------- fields + private ExpectationSet mySetParameters = new ExpectationSet("CommonMockPreparedStatement.setParameters"); + private ExpectationCounter myClearParametersCalls = - new ExpectationCounter("CommonMockPreparedStatement.clearParameters() calls"); + new ExpectationCounter + ("CommonMockPreparedStatement.clearParameters() calls"); + private ExpectationSet myTargetSQLTypes = - new ExpectationSet("target sql types"); + new ExpectationSet("CommonMockPreparedStatement.targetSQLTypes"); +// -------------------------------------------------------------- addExpected* public void addExpectedSetParameter(int parameterIndex, int intValue) { addExpectedSetParameter(parameterIndex, new Integer(intValue)); } - public void addExpectedTargetSQLType(int aTargetSQLType){ - myTargetSQLTypes.addExpected(new Integer(aTargetSQLType)); - } - - public void addExpectedSetParameter(int parameterIndex, Object parameterValue) { - mySetParameters.addExpected(new MapEntry(new Integer(parameterIndex), parameterValue)); + public void addExpectedSetParameter(int parameterIndex, + Object parameterValue) { + mySetParameters.addExpected(new MapEntry(new Integer(parameterIndex), + parameterValue)); } public void addExpectedSetParameters(Object[] parameters) { @@ -34,14 +108,11 @@ } } - public void clearParameters() throws SQLException { - myClearParametersCalls.inc(); + public void addExpectedTargetSQLType(int aTargetSQLType){ + myTargetSQLTypes.addExpected(new Integer(aTargetSQLType)); } - public boolean execute() throws SQLException { - innerExecute(); - return false; - } +// -------------------------------------------------------------- setExpected* public void setExpectedClearParametersCalls(int callCount) { myClearParametersCalls.setExpected(callCount); @@ -51,10 +122,30 @@ mySetParameters.setExpectNothing(); } +// --------------------------------------------------------------- implemented + + public void clearParameters() throws SQLException { + myClearParametersCalls.inc(); + } + + /** + * Calls innerExecute() (see CommonMockStatement). Returns false. + */ + public boolean execute() throws SQLException { + innerExecute(); + return false; + } + + /** + * Returns executeQuery(String) with an empty String. + */ public ResultSet executeQuery() throws SQLException { return executeQuery(""); } + /** + * Returns executeUpdate(String) with an empty String. + */ public int executeUpdate() throws SQLException { return executeUpdate(""); } @@ -67,7 +158,8 @@ setObject(parameterIndex, x); } - public void setTimestamp(int param, Timestamp timestamp) throws SQLException { + public void setTimestamp(int param, Timestamp timestamp) throws + SQLException { setObject(param, timestamp); } @@ -79,10 +171,6 @@ setObject(param, new Long(aLong)); } - public void addBatch() throws SQLException { - notImplemented(); - } - public void setNull(int param, int param1) throws SQLException { setObject(param, null); } @@ -95,14 +183,11 @@ setObject(param, new Short(aShort)); } - public void setTime(int param, Time time, Calendar calendar) throws SQLException { + public void setTime(int param, Time time, Calendar calendar) throws + SQLException { setObject(param, time); } - public void setObject(int param, Object anObject, int targetSqlType, int scale) throws SQLException { - notImplemented(); - } - public void setObject(int param, Object anObject, int aTargetSQLType) throws SQLException { setObject(param, anObject); @@ -125,26 +210,11 @@ setObject(param, blob); } - public void setCharacterStream(int param, Reader reader, int length) throws SQLException { - notImplemented(); - } - - public void setAsciiStream(int param, java.io.InputStream inputStream, int length) throws SQLException { - notImplemented(); - } - - public void setDate(int param, Date date, Calendar calendar) throws SQLException { + public void setDate(int param, Date date, Calendar calendar) throws + SQLException { setDate(param, date); } - public void setBinaryStream(int param, java.io.InputStream inputStream, int length) throws SQLException { - notImplemented(); - } - - public void setUnicodeStream(int param, java.io.InputStream inputStream, int length) throws SQLException { - notImplemented(); - } - public void setBytes(int param, byte[] values) throws SQLException { setObject(param, values); } @@ -161,29 +231,90 @@ setObject(param, new Double(aDouble)); } - public ResultSetMetaData getMetaData() throws SQLException { + public void setTime(int param, Time time) throws SQLException { + setObject(param, time); + } + + public void setBoolean(int param, boolean aBoolean) throws SQLException { + setObject(param, new Boolean(aBoolean)); + } + + public void setBigDecimal(int param, BigDecimal bigDecimal) throws + SQLException { + setObject(param, bigDecimal); + } + +// ------------------------------------------------------------ notImplemented + + /** + * Calls notImplemented. + */ + public void addBatch() throws SQLException { notImplemented(); - return null; } - public void setTimestamp(int param, Timestamp timestamp, Calendar calendar) throws SQLException { + /** + * Calls notImplemented. + */ + public void setObject(int param, Object anObject, int targetSqlType, + int scale) throws SQLException { notImplemented(); } - public void setTime(int param, Time time) throws SQLException { - setObject(param, time); + /** + * Calls notImplemented. + */ + public void setCharacterStream(int param, Reader reader, int length) + throws SQLException { + notImplemented(); } - public void setBoolean(int param, boolean aBoolean) throws SQLException { - setObject(param, new Boolean(aBoolean)); + /** + * Calls notImplemented. + */ + public void setAsciiStream(int param, java.io.InputStream inputStream, + int length) throws SQLException { + notImplemented(); } - public void setNull(int param, int param1, String typeName) throws SQLException { + /** + * Calls notImplemented. + */ + public void setBinaryStream(int param, java.io.InputStream inputStream, + int length) throws SQLException { notImplemented(); } - public void setBigDecimal(int param, BigDecimal bigDecimal) throws SQLException { - setObject(param, bigDecimal); + /** + * Calls notImplemented. + */ + public void setNull(int param, int param1, String typeName) throws + SQLException { + notImplemented(); + } + + /** + * Calls notImplemented. + */ + public void setUnicodeStream(int param, java.io.InputStream inputStream, + int length) throws SQLException { + notImplemented(); + } + + /** + * Calls notImplemented. Returns null. + */ + public ResultSetMetaData getMetaData() throws SQLException { + notImplemented(); + return null; + } + + /** + * Calls notImplemented. + */ + public void setTimestamp(int param, Timestamp timestamp, Calendar + calendar) throws SQLException { + notImplemented(); } -} +} // end CommonMockPreparedStatement |