mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
git-svn-id: http://code.alibabatech.com/svn/druid/trunk@407 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
@@ -45,18 +45,29 @@ public class MockConnection implements Connection {
|
||||
|
||||
private MockDriver driver;
|
||||
|
||||
public MockConnection(){
|
||||
private Properties connectProperties;
|
||||
|
||||
public MockConnection(){
|
||||
this(null);
|
||||
}
|
||||
|
||||
public MockConnection(MockDriver driver){
|
||||
this(driver, new Properties());
|
||||
}
|
||||
|
||||
public MockConnection(MockDriver driver, Properties connectProperties){
|
||||
this.driver = driver;
|
||||
this.connectProperties = connectProperties;
|
||||
}
|
||||
|
||||
public MockDriver getDriver() {
|
||||
return driver;
|
||||
}
|
||||
|
||||
public Properties getConnectProperties() {
|
||||
return connectProperties;
|
||||
}
|
||||
|
||||
public void setDriver(MockDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
@@ -87,7 +87,19 @@ public class MockDriver implements Driver {
|
||||
return null;
|
||||
}
|
||||
|
||||
MockConnection conn = new MockConnection(this);
|
||||
if (info != null) {
|
||||
Object val = info.get("connectSleep");
|
||||
if (val != null) {
|
||||
long millis = Long.parseLong(val.toString());
|
||||
try {
|
||||
Thread.sleep(millis);
|
||||
} catch (InterruptedException e) {
|
||||
// skip
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MockConnection conn = new MockConnection(this, info);
|
||||
|
||||
if (url == null) {
|
||||
connectCount.incrementAndGet();
|
||||
@@ -143,6 +155,23 @@ public class MockDriver implements Driver {
|
||||
}
|
||||
|
||||
protected ResultSet executeQuery(MockStatement stmt, String sql) throws SQLException {
|
||||
MockConnection conn = stmt.getMockConnection();
|
||||
|
||||
if (conn != null) {
|
||||
if (conn.getConnectProperties() != null) {
|
||||
Object propertyValue = conn.getConnectProperties().get("executeSleep");
|
||||
|
||||
if (propertyValue != null) {
|
||||
long millis = Long.parseLong(propertyValue.toString());
|
||||
try {
|
||||
Thread.sleep(millis);
|
||||
} catch (InterruptedException e) {
|
||||
// skip
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ("SELECT value FROM _int_1000_".equalsIgnoreCase(sql)) {
|
||||
MockResultSet rs = new MockResultSet(stmt);
|
||||
|
||||
|
||||
@@ -60,8 +60,8 @@ public class MockPreparedStatement extends MockStatement implements PreparedStat
|
||||
|
||||
@Override
|
||||
public ResultSet executeQuery() throws SQLException {
|
||||
if (fakeConnection != null && fakeConnection.getDriver() != null) {
|
||||
return fakeConnection.getDriver().createResultSet(this);
|
||||
if (mockConnection != null && mockConnection.getDriver() != null) {
|
||||
return mockConnection.getDriver().createResultSet(this);
|
||||
}
|
||||
|
||||
return new MockResultSet(this);
|
||||
|
||||
@@ -26,23 +26,23 @@ public class MockStatement implements Statement {
|
||||
public final static String ERROR_SQL = "THROW ERROR";
|
||||
|
||||
private Connection connection;
|
||||
protected MockConnection fakeConnection;
|
||||
protected MockConnection mockConnection;
|
||||
|
||||
public MockStatement(Connection connection){
|
||||
super();
|
||||
this.connection = connection;
|
||||
|
||||
if (connection instanceof MockConnection) {
|
||||
fakeConnection = (MockConnection) connection;
|
||||
mockConnection = (MockConnection) connection;
|
||||
}
|
||||
}
|
||||
|
||||
public MockConnection getFakeConnection() {
|
||||
return fakeConnection;
|
||||
public MockConnection getMockConnection() {
|
||||
return mockConnection;
|
||||
}
|
||||
|
||||
public void setFakeConnection(MockConnection fakeConnection) {
|
||||
this.fakeConnection = fakeConnection;
|
||||
this.mockConnection = fakeConnection;
|
||||
this.connection = fakeConnection;
|
||||
}
|
||||
|
||||
@@ -58,8 +58,8 @@ public class MockStatement implements Statement {
|
||||
|
||||
@Override
|
||||
public ResultSet executeQuery(String sql) throws SQLException {
|
||||
if (fakeConnection != null && fakeConnection.getDriver() != null) {
|
||||
return fakeConnection.getDriver().executeQuery(this, sql);
|
||||
if (mockConnection != null && mockConnection.getDriver() != null) {
|
||||
return mockConnection.getDriver().executeQuery(this, sql);
|
||||
}
|
||||
|
||||
return new MockResultSet(this);
|
||||
|
||||
Reference in New Issue
Block a user