1
2
3
4
5
6
7
8
9
10 package org.mule.transport.jdbc.config;
11
12 import org.mule.api.endpoint.ImmutableEndpoint;
13 import org.mule.tck.FunctionalTestCase;
14 import org.mule.transaction.MuleTransactionConfig;
15 import org.mule.transaction.XaTransactionFactory;
16 import org.mule.transport.jdbc.ExtendedQueryRunner;
17 import org.mule.transport.jdbc.JdbcConnector;
18 import org.mule.transport.jdbc.JdbcTransactionFactory;
19 import org.mule.transport.jdbc.sqlstrategy.DefaultSqlStatementStrategyFactory;
20 import org.mule.transport.jdbc.test.TestDataSource;
21
22 import org.apache.commons.dbutils.QueryRunner;
23
24
25
26
27
28 public class JdbcNamespaceHandlerTestCase extends FunctionalTestCase
29 {
30
31 protected String getConfigResources()
32 {
33 return "jdbc-namespace-config.xml";
34 }
35
36 public void testWithDataSource() throws Exception
37 {
38 JdbcConnector c = (JdbcConnector) muleContext.getRegistry().lookupConnector("jdbcConnector1");
39 assertNotNull(c);
40
41 assertTrue(c.getDataSource() instanceof TestDataSource);
42 assertNull(c.getQueries());
43 assertEquals(-1, c.getQueryTimeout());
44 }
45
46 public void testWithDataSourceViaJndi() throws Exception
47 {
48 JdbcConnector c = (JdbcConnector) muleContext.getRegistry().lookupConnector("jdbcConnector2");
49 assertNotNull(c);
50
51 assertTrue(c.getDataSource() instanceof TestDataSource);
52 assertNull(c.getQueries());
53 assertTrue(c.isConnected());
54 assertTrue(c.isStarted());
55 assertEquals(3, c.getQueryTimeout());
56 }
57
58 public void testFullyConfigured() throws Exception
59 {
60 JdbcConnector c = (JdbcConnector) muleContext.getRegistry().lookupConnector("jdbcConnector3");
61 assertNotNull(c);
62
63 assertTrue(c.getDataSource() instanceof TestDataSource);
64
65 assertNotNull(c.getQueries());
66 assertEquals(3, c.getQueries().size());
67
68 assertTrue(c.isConnected());
69 assertTrue(c.isStarted());
70 }
71
72
73 public void testEndpointQueryOverride() throws Exception
74 {
75 JdbcConnector c = (JdbcConnector) muleContext.getRegistry().lookupConnector("jdbcConnector3");
76 ImmutableEndpoint testJdbcEndpoint = muleContext.getRegistry()
77 .lookupEndpointFactory()
78 .getInboundEndpoint("testJdbcEndpoint");
79
80
81 assertNotNull(c.getQuery(testJdbcEndpoint, "getTest"));
82
83
84 assertNotNull(c.getQuery(testJdbcEndpoint, "getTest2"));
85 assertEquals("OVERRIDDEN VALUE", c.getQuery(testJdbcEndpoint, "getTest2"));
86
87
88 assertNotNull(c.getQuery(testJdbcEndpoint, "getTest3"));
89
90
91 assertNull(c.getQuery(testJdbcEndpoint, "getTest4"));
92 assertEquals("3", testJdbcEndpoint.getProperty("queryTimeout"));
93
94 QueryRunner queryRunner = c.getQueryRunnerFor(testJdbcEndpoint);
95 assertEquals(ExtendedQueryRunner.class, queryRunner.getClass());
96 assertEquals(3, ((ExtendedQueryRunner) queryRunner).getQueryTimeout());
97 }
98
99 public void testEndpointWithTransaction() throws Exception
100 {
101 ImmutableEndpoint endpoint = muleContext.getRegistry().
102 lookupEndpointBuilder("endpointWithTransaction").buildInboundEndpoint();
103 assertNotNull(endpoint);
104 assertEquals(JdbcTransactionFactory.class,
105 endpoint.getTransactionConfig().getFactory().getClass());
106 assertEquals(MuleTransactionConfig.ACTION_NONE,
107 endpoint.getTransactionConfig().getAction());
108 assertEquals("-1", endpoint.getProperty("queryTimeout"));
109 }
110
111 public void testEndpointWithXaTransaction() throws Exception
112 {
113 ImmutableEndpoint endpoint = muleContext.getRegistry().
114 lookupEndpointBuilder("endpointWithXaTransaction").buildInboundEndpoint();
115 assertNotNull(endpoint);
116 assertEquals(XaTransactionFactory.class,
117 endpoint.getTransactionConfig().getFactory().getClass());
118 assertEquals(MuleTransactionConfig.ACTION_ALWAYS_BEGIN,
119 endpoint.getTransactionConfig().getAction());
120 }
121
122 public void testSqlStatementStrategyFactoryOverride() throws Exception
123 {
124
125 JdbcConnector c = (JdbcConnector) muleContext.getRegistry().lookupConnector("jdbcConnector4");
126 assertNotNull(c.getSqlStatementStrategyFactory());
127 assertTrue(c.getSqlStatementStrategyFactory() instanceof TestSqlStatementStrategyFactory);
128
129
130 c = (JdbcConnector) muleContext.getRegistry().lookupConnector("jdbcConnector5");
131 assertNotNull(c.getSqlStatementStrategyFactory());
132 assertTrue(c.getSqlStatementStrategyFactory() instanceof TestSqlStatementStrategyFactory);
133 }
134
135 public static class TestSqlStatementStrategyFactory extends DefaultSqlStatementStrategyFactory
136 {
137
138 }
139 }