From a2ba0fb2b166b984be47987bfbc04a2f5643d4be Mon Sep 17 00:00:00 2001 From: baztian Date: Thu, 9 Apr 2015 22:47:24 +0200 Subject: [PATCH] Write testcase for improved exception handling. --- .../java/org/jaydebeapi/mockdriver/MockConnection.java | 6 ++++++ test/test_mock.py | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/mockdriver/src/main/java/org/jaydebeapi/mockdriver/MockConnection.java b/mockdriver/src/main/java/org/jaydebeapi/mockdriver/MockConnection.java index f62e7ec..056c25c 100644 --- a/mockdriver/src/main/java/org/jaydebeapi/mockdriver/MockConnection.java +++ b/mockdriver/src/main/java/org/jaydebeapi/mockdriver/MockConnection.java @@ -13,6 +13,12 @@ public abstract class MockConnection implements Connection { ResultSet mockResultSet; + public final void mockExceptionOnExecute(String exceptionMessage) throws SQLException { + PreparedStatement mockPreparedStatement = Mockito.mock(PreparedStatement.class); + Mockito.when(mockPreparedStatement.execute()).thenThrow(new SQLException(exceptionMessage)); + Mockito.when(this.prepareStatement(Mockito.anyString())).thenReturn(mockPreparedStatement); + } + public final void mockType(String sqlTypesName) throws SQLException { PreparedStatement mockPreparedStatement = Mockito.mock(PreparedStatement.class); Mockito.when(mockPreparedStatement.execute()).thenReturn(true); diff --git a/test/test_mock.py b/test/test_mock.py index 2112f01..6410186 100644 --- a/test/test_mock.py +++ b/test/test_mock.py @@ -46,3 +46,13 @@ class MockTest(unittest.TestCase): extra_type_mappings.get(jsql_type_name, 'getObject')) verify_get(1) + + def test_exception_on_execute(self): + dummy_msg = "expected" + self.conn.jconn.mockExceptionOnExecute(dummy_msg) + cursor = self.conn.cursor() + try: + cursor.execute("dummy stmt") + fail("expected exception") + except jaydebeapi.Error, e: + self.assertEquals(str(e), 'expected')