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 muleContext.start();
29 JdbcConnector connector = new JdbcConnector(muleContext);
30
31 connector.setQueryRunner(new TestQueryRunner());
32 connector.setResultSetHandler(new TestResultSetHandler());
33 connector.setDataSource(new TestDataSource());
34 muleContext.getRegistry().registerConnector(connector);
35
36 InboundEndpoint ep = muleContext.getEndpointFactory().getInboundEndpoint(
37 "jdbc://select * from test");
38 ep.request(0);
39 }
40
41 public static final class TestQueryRunner extends QueryRunner
42 {
43 @Override
44 public Object query(Connection connection, String string, ResultSetHandler resultSetHandler,
45 Object[] objects) throws SQLException
46 {
47 assertTrue("Custom result set handler has been ignored.",
48 resultSetHandler instanceof TestResultSetHandler);
49 return new Object();
50 }
51 }
52
53 public static final class TestResultSetHandler implements ResultSetHandler
54 {
55 public Object handle(ResultSet resultSet) throws SQLException
56 {
57 return new Object();
58 }
59 }
60 }