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