1   /*
2    * $Id: JdbcNamespaceHandlerTestCase.java 11476 2008-03-21 22:47:59Z rossmason $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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.transport.jdbc.JdbcConnector;
15  import org.mule.transport.jdbc.test.TestDataSource;
16  
17  
18  /**
19   * Tests the "jdbc" namespace.
20   */
21  public class JdbcNamespaceHandlerTestCase extends FunctionalTestCase
22  {
23      protected String getConfigResources()
24      {
25          return "jdbc-namespace-config.xml";
26      }
27  
28      public void testWithDataSource() throws Exception
29      {
30          JdbcConnector c = (JdbcConnector) muleContext.getRegistry().lookupConnector("jdbcConnector1");
31          assertNotNull(c);        
32  
33          assertTrue(c.getDataSource() instanceof TestDataSource);
34          assertNull(c.getQueries());       
35      }
36  
37      public void testWithDataSourceViaJndi() throws Exception
38      {
39          JdbcConnector c = (JdbcConnector) muleContext.getRegistry().lookupConnector("jdbcConnector2");
40          assertNotNull(c);
41          
42          assertTrue(c.getDataSource() instanceof TestDataSource);
43          assertNull(c.getQueries());
44          assertTrue(c.isConnected());
45          assertTrue(c.isStarted());
46      }
47      
48      public void testFullyConfigured() throws Exception
49      {
50          JdbcConnector c = (JdbcConnector) muleContext.getRegistry().lookupConnector("jdbcConnector3");
51          assertNotNull(c);
52          
53          assertTrue(c.getDataSource() instanceof TestDataSource);
54          
55          assertNotNull(c.getQueries());
56          assertEquals(3, c.getQueries().size());
57          
58          assertTrue(c.isConnected());
59          assertTrue(c.isStarted());
60      }
61      
62      
63      public void testEndpointQueryOverride() throws Exception
64      {
65          JdbcConnector c = (JdbcConnector) muleContext.getRegistry().lookupConnector("jdbcConnector3");
66          ImmutableEndpoint testJdbcEndpoint = muleContext.getRegistry()
67              .lookupEndpointFactory()
68              .getInboundEndpoint("testJdbcEndpoint");
69          
70          //On connector, not overridden
71          assertNotNull(c.getQuery(testJdbcEndpoint, "getTest"));
72          
73          //On connector, overridden on endpoint
74          assertNotNull(c.getQuery(testJdbcEndpoint, "getTest2"));
75          assertEquals("OVERRIDDEN VALUE", c.getQuery(testJdbcEndpoint, "getTest2"));
76          
77          //Only on endpoint
78          assertNotNull(c.getQuery(testJdbcEndpoint, "getTest3"));
79  
80          //Does not exist on either
81          assertNull(c.getQuery(testJdbcEndpoint, "getTest4"));
82      }
83  }