From 5f3da6b096fd67d39b054b0b48011b7883da7bc4 Mon Sep 17 00:00:00 2001 From: baztian Date: Wed, 3 Jun 2020 21:15:21 +0200 Subject: [PATCH] Add test for scaled decimal --- .../org/jaydebeapi/mockdriver/MockConnection.java | 6 +++--- test/test_mock.py | 11 +++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/mockdriver/src/main/java/org/jaydebeapi/mockdriver/MockConnection.java b/mockdriver/src/main/java/org/jaydebeapi/mockdriver/MockConnection.java index 86baa83..54893a5 100644 --- a/mockdriver/src/main/java/org/jaydebeapi/mockdriver/MockConnection.java +++ b/mockdriver/src/main/java/org/jaydebeapi/mockdriver/MockConnection.java @@ -60,17 +60,17 @@ public abstract class MockConnection implements Connection { Mockito.when(this.prepareStatement(Mockito.anyString())).thenReturn(mockPreparedStatement); } - public final void mockSimpleDecimalResult(int value) throws SQLException { + public final void mockBigDecimalResult(long value, int scale) throws SQLException { PreparedStatement mockPreparedStatement = Mockito.mock(PreparedStatement.class); Mockito.when(mockPreparedStatement.execute()).thenReturn(true); - mockResultSet = Mockito.mock(ResultSet.class, "ResultSet(for simple decimal)"); + mockResultSet = Mockito.mock(ResultSet.class, "ResultSet(for BigDecimal)"); 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 = BigDecimal.valueOf(value); + BigDecimal bd = BigDecimal.valueOf(value, scale); Mockito.when(mockResultSet.getObject(1)).thenReturn(bd); Mockito.when(mockMetaData.getColumnType(1)).thenReturn(Types.DECIMAL); Mockito.when(this.prepareStatement(Mockito.anyString())).thenReturn(mockPreparedStatement); diff --git a/test/test_mock.py b/test/test_mock.py index 5175c69..8631713 100644 --- a/test/test_mock.py +++ b/test/test_mock.py @@ -57,13 +57,20 @@ class MockTest(unittest.TestCase): result = cursor.fetchone() self.assertEquals(result[0], "1899-12-31") - def test_simple_decimal(self): - self.conn.jconn.mockSimpleDecimalResult(12345) + def test_decimal_scale_zero(self): + self.conn.jconn.mockBigDecimalResult(12345, 0) cursor = self.conn.cursor() cursor.execute("dummy stmt") result = cursor.fetchone() self.assertEquals(str(result[0]), "12345") + def test_decimal_places(self): + self.conn.jconn.mockBigDecimalResult(12345, 2) + cursor = self.conn.cursor() + cursor.execute("dummy stmt") + result = cursor.fetchone() + self.assertEquals(str(result[0]), "123.45") + def test_sql_exception_on_execute(self): self.conn.jconn.mockExceptionOnExecute("java.sql.SQLException", "expected") cursor = self.conn.cursor()