001 package com.mockrunner.mock.jdbc;
002
003 import java.io.PrintWriter;
004 import java.sql.Connection;
005 import java.sql.SQLException;
006
007 import javax.sql.DataSource;
008
009 /**
010 * Mock implementation of <code>DataSource</code>.
011 */
012 public class MockDataSource implements DataSource
013 {
014 private Connection connection = null;
015 private int loginTimeout = 0;
016 private PrintWriter logWriter = null;
017
018 /**
019 * Set up the connection.
020 * @param connection the connection
021 */
022 public void setupConnection(Connection connection)
023 {
024 this.connection = connection;
025 }
026
027 /**
028 * Returns the {@link com.mockrunner.mock.jdbc.MockConnection}.
029 * If the underlying connection is not an instance of
030 * {@link com.mockrunner.mock.jdbc.MockConnection},
031 * <code>null</code> is returned.
032 * @return the {@link com.mockrunner.mock.jdbc.MockConnection}
033 */
034 public MockConnection getMockConnection()
035 {
036 if(connection instanceof MockConnection)
037 {
038 return (MockConnection)connection;
039 }
040 return null;
041 }
042
043 public int getLoginTimeout() throws SQLException
044 {
045 return loginTimeout;
046 }
047
048 public void setLoginTimeout(int seconds) throws SQLException
049 {
050 loginTimeout = seconds;
051 }
052
053 public PrintWriter getLogWriter() throws SQLException
054 {
055 return logWriter;
056 }
057
058 public void setLogWriter(PrintWriter out) throws SQLException
059 {
060 logWriter = out;
061 }
062
063 public Connection getConnection() throws SQLException
064 {
065 return connection;
066 }
067
068 public Connection getConnection(String username, String password) throws SQLException
069 {
070 return connection;
071 }
072
073 public boolean isWrapperFor(Class iface) throws SQLException
074 {
075 return false;
076 }
077
078 public Object unwrap(Class iface) throws SQLException
079 {
080 throw new SQLException("No object found for " + iface);
081 }
082 }