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.AbstractMuleTestCase;
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
24 public class JdbcMessageDispatcherTestCase extends AbstractMuleTestCase
25 {
26 public void testCustomResultSetHandlerIsNotIgnored() throws Exception
27 {
28 JdbcConnector connector = new JdbcConnector();
29
30 connector.setQueryRunner(new TestQueryRunner());
31 connector.setResultSetHandler(new TestResultSetHandler());
32 connector.setDataSource(new TestDataSource());
33
34 connector.setMuleContext(muleContext);
35
36 muleContext.getRegistry().registerConnector(connector);
37
38
39 InboundEndpoint ep = muleContext.getRegistry().lookupEndpointFactory().getInboundEndpoint(
40 "jdbc://select * from test");
41 ep.request(0);
42 }
43
44 public static final class TestQueryRunner extends QueryRunner
45 {
46
47 public Object query(Connection connection,
48 String string,
49 Object[] objects,
50 ResultSetHandler resultSetHandler) 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
61 public Object handle(ResultSet resultSet) throws SQLException
62 {
63 return new Object();
64 }
65 }
66 }