add mock testcase

master
Hongjiang Zhang 2020-06-02 07:46:36 +08:00
parent b921a6d480
commit b662b14e01
2 changed files with 25 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package org.jaydebeapi.mockdriver; package org.jaydebeapi.mockdriver;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.sql.Connection; import java.sql.Connection;
import java.sql.Date; import java.sql.Date;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
@ -59,6 +60,23 @@ public abstract class MockConnection implements Connection {
Mockito.when(this.prepareStatement(Mockito.anyString())).thenReturn(mockPreparedStatement); Mockito.when(this.prepareStatement(Mockito.anyString())).thenReturn(mockPreparedStatement);
} }
public final void mockSimpleDecimalResult(int value) throws SQLException {
PreparedStatement mockPreparedStatement = Mockito.mock(PreparedStatement.class);
Mockito.when(mockPreparedStatement.execute()).thenReturn(true);
mockResultSet = Mockito.mock(ResultSet.class, "ResultSet(for simple decimal)");
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);
BigDecimal bd = new BigDecimal(Integer.toString(value));
Mockito.when(mockResultSet.getObject(1)).thenReturn(bd);
Mockito.when(mockResultSet.getBigDecimal(1)).thenReturn(bd);
Mockito.when(mockMetaData.getColumnType(1)).thenReturn(Types.DECIMAL);
Mockito.when(this.prepareStatement(Mockito.anyString())).thenReturn(mockPreparedStatement);
}
public final void mockDateResult(int year, int month, int day) throws SQLException { public final void mockDateResult(int year, int month, int day) throws SQLException {
PreparedStatement mockPreparedStatement = Mockito.mock(PreparedStatement.class); PreparedStatement mockPreparedStatement = Mockito.mock(PreparedStatement.class);
Mockito.when(mockPreparedStatement.execute()).thenReturn(true); Mockito.when(mockPreparedStatement.execute()).thenReturn(true);

View File

@ -57,6 +57,13 @@ class MockTest(unittest.TestCase):
result = cursor.fetchone() result = cursor.fetchone()
self.assertEquals(result[0], "1899-12-31") self.assertEquals(result[0], "1899-12-31")
def test_simple_decimal(self):
self.conn.jconn.mockSimpleDecimalResult(12345)
cursor = self.conn.cursor()
cursor.execute("dummy stmt")
result = cursor.fetchone()
self.assertEquals(result[0], 12345)
def test_sql_exception_on_execute(self): def test_sql_exception_on_execute(self):
self.conn.jconn.mockExceptionOnExecute("java.sql.SQLException", "expected") self.conn.jconn.mockExceptionOnExecute("java.sql.SQLException", "expected")
cursor = self.conn.cursor() cursor = self.conn.cursor()