Fixes #4: Typo LONGNARCHAR vs LONGVARCHAR
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package org.jaydebeapi.mockdriver;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.ResultSetMetaData;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Types;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
public abstract class MockConnection implements Connection {
|
||||
|
||||
ResultSet mockResultSet;
|
||||
|
||||
public final void mockType(String sqlTypesName) throws SQLException {
|
||||
PreparedStatement mockPreparedStatement = Mockito.mock(PreparedStatement.class);
|
||||
Mockito.when(mockPreparedStatement.execute()).thenReturn(true);
|
||||
mockResultSet = Mockito.mock(ResultSet.class, "ResultSet(for type " + sqlTypesName + ")");
|
||||
Mockito.when(mockPreparedStatement.getResultSet()).thenReturn(mockResultSet);
|
||||
Mockito.when(mockResultSet.next()).thenReturn(true);
|
||||
ResultSetMetaData mockMetaData = Mockito.mock(ResultSetMetaData.class);
|
||||
Mockito.when(mockResultSet.getMetaData()).thenReturn(mockMetaData);
|
||||
Mockito.when(mockMetaData.getColumnCount()).thenReturn(1);
|
||||
int sqlTypeCode = extractTypeCodeForName(sqlTypesName);
|
||||
Mockito.when(mockMetaData.getColumnType(1)).thenReturn(sqlTypeCode);
|
||||
Mockito.when(this.prepareStatement(Mockito.anyString())).thenReturn(mockPreparedStatement);
|
||||
}
|
||||
|
||||
private int extractTypeCodeForName(String sqlTypesName) {
|
||||
try {
|
||||
Field field = Types.class.getField(sqlTypesName);
|
||||
return field.getInt(null);
|
||||
} catch (NoSuchFieldException e) {
|
||||
throw new IllegalArgumentException("Type " + sqlTypesName + " not found in Types class.", e);
|
||||
} catch (SecurityException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (IllegalArgumentException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public final ResultSet verifyResultSet() {
|
||||
return Mockito.verify(mockResultSet);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,7 +4,6 @@ import java.sql.Connection;
|
||||
import java.sql.Driver;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.DriverPropertyInfo;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.SQLFeatureNotSupportedException;
|
||||
import java.util.Properties;
|
||||
@@ -28,10 +27,7 @@ public class MockDriver implements Driver {
|
||||
if (!acceptsURL(url)) {
|
||||
return null;
|
||||
}
|
||||
Connection mockConnection = Mockito.mock(Connection.class);
|
||||
PreparedStatement mockPreparedStatement = Mockito.mock(PreparedStatement.class);
|
||||
Mockito.when(mockConnection.prepareStatement(Mockito.anyString())).thenReturn(mockPreparedStatement);
|
||||
return mockConnection;
|
||||
return Mockito.mock(MockConnection.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user