1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.jdbc;
12
13 import org.mule.api.endpoint.InboundEndpoint;
14 import org.mule.tck.junit4.AbstractMuleContextTestCase;
15 import org.mule.transport.jdbc.test.TestDataSource;
16
17 import java.sql.Connection;
18 import java.sql.ResultSet;
19 import java.sql.SQLException;
20
21 import org.apache.commons.dbutils.QueryRunner;
22 import org.apache.commons.dbutils.ResultSetHandler;
23 import org.junit.Test;
24
25 import static org.junit.Assert.assertTrue;
26
27 public class JdbcMessageDispatcherTestCase extends AbstractMuleContextTestCase
28 {
29
30 @Test
31 public void testCustomResultSetHandlerIsNotIgnored() throws Exception
32 {
33 muleContext.start();
34 JdbcConnector connector = new JdbcConnector(muleContext);
35
36 connector.setQueryRunner(new TestQueryRunner());
37 connector.setResultSetHandler(new TestResultSetHandler());
38 connector.setDataSource(new TestDataSource());
39 muleContext.getRegistry().registerConnector(connector);
40
41 InboundEndpoint ep = muleContext.getEndpointFactory().getInboundEndpoint(
42 "jdbc://select * from test");
43 ep.request(0);
44 }
45
46 public static final class TestQueryRunner extends QueryRunner
47 {
48 @Override
49 public Object query(Connection connection, String string, ResultSetHandler resultSetHandler,
50 Object[] objects) throws SQLException
51 {
52 assertTrue("Custom result set handler has been ignored.",
53 resultSetHandler instanceof TestResultSetHandler);
54 return new Object();
55 }
56 }
57
58 public static final class TestResultSetHandler implements ResultSetHandler
59 {
60 public Object handle(ResultSet resultSet) throws SQLException
61 {
62 return new Object();
63 }
64 }
65 }