Advertisement
Guest User

Untitled

a guest
Sep 9th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.53 KB | None | 0 0
  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:jee="http://www.springframework.org/schema/jee"
  4. xmlns:p="http://www.springframework.org/schema/p"
  5. xsi:schemaLocation="
  6. http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  8. http://www.springframework.org/schema/jee
  9. http://www.springframework.org/schema/jee/spring-jee-3.0.xsd">
  10.  
  11. <jee:jndi-lookup id="dataSource"
  12. jndi-name="java:comp/env/dataSource"
  13. expected-type="javax.sql.DataSource" />
  14.  
  15. </beans>
  16.  
  17. <beans xmlns="http://www.springframework.org/schema/beans"
  18. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  19. xmlns:p="http://www.springframework.org/schema/p"
  20. xsi:schemaLocation="
  21. http://www.springframework.org/schema/beans
  22. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
  23.  
  24. <bean id="dataSource"
  25. class="org.springframework.jdbc.datasource.DriverManagerDataSource"
  26. p:driverClassName="org.hsqldb.jdbcDriver"
  27. p:url="jdbc:hsqldb:hsql://localhost:9001"
  28. p:username="sa"
  29. p:password="" />
  30.  
  31. </beans>
  32.  
  33. @ContextConfiguration({
  34. "classpath*:META-INF/spring/datasource-testcontext.xml",
  35. "classpath*:META-INF/spring/session-factory-context.xml"
  36. })
  37. public class MyTest {
  38.  
  39. }
  40.  
  41. SimpleNamingContextBuilder builder = new SimpleNamingContextBuilder();
  42. builder.bind("java:comp/env/jdbc/mydatasource", dataSource);
  43. builder.activate();
  44.  
  45. import java.sql.Connection;
  46. import java.sql.SQLException;
  47.  
  48. import org.springframework.jdbc.datasource.AbstractDataSource;
  49.  
  50. /**
  51. * Mock implementation of DataSource suitable for use in testing.
  52. *
  53. *
  54. */
  55. public class MockDataSource extends AbstractDataSource {
  56. private Connection connection;
  57.  
  58. /**
  59. * Sets the connection returned by javax.sql.DataSource#getConnection()
  60. * and javax.sql.DataSource#getConnection(java.lang.String, java.lang.String)
  61. *
  62. * @param connection
  63. */
  64. public void setConnection(Connection connection) {
  65. this.connection = connection;
  66. }
  67.  
  68. /*
  69. * (non-Javadoc)
  70. * @see javax.sql.DataSource#getConnection()
  71. */
  72. public Connection getConnection()
  73. throws SQLException {
  74. return connection;
  75. }
  76.  
  77. /*
  78. * (non-Javadoc)
  79. * @see javax.sql.DataSource#getConnection(java.lang.String, java.lang.String)
  80. */
  81. public Connection getConnection(String username, String password)
  82. throws SQLException {
  83. return connection;
  84. }
  85. }
  86.  
  87. <!-- Database configuration -->
  88. <import resource="beans.datasource.jndi.xml" />
  89.  
  90. <import resource="beans.xml" />
  91. <import resource="beans.datasource.test.xml" />
  92.  
  93. @RunWith(SpringJUnit4ClassRunner.class)
  94. @ContextConfiguration(locations = { "classpath:/beans.test.xml" })
  95. public class ASRTests
  96. {
  97. ...
  98. }
  99.  
  100. <jee:jndi-lookup expected-type="javax.sql.DataSource" id="mysqlDataSource" jndi-name="jdbc/mysql"/>
  101.  
  102. <bean id="mysqlDataSource" ...>
  103. ...
  104. </bean>
  105.  
  106. <bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
  107. <property name="URL" value="jdbc:oracle:thin:@localhost:1521:XE"/>
  108. <property name="user" value="UNITTEST"/>
  109. <property name="password" value="UNITTEST"/>
  110. </bean>
  111.  
  112. <bean id="dataSourceFromJndi" class="org.springframework.jndi.JndiObjectFactoryBean">
  113. <!-- Any junk value will suffice as that is always gonna throw NamingException -->
  114. <property name="jndiName" value="jdbc/Ds"/>
  115. <property name="defaultObject" ref="dataSource"/>
  116. </bean>
  117.  
  118. <!-- START OF SERVICES -->
  119. <bean class="com.sample.Service" >
  120. <property name="dataSource" ref="dataSourceFromJndi" />
  121. </bean>
  122.  
  123. @RunWith(SpringJUnit4ClassRunner.class)
  124. @ContextConfiguration(classes = {DatabaseConfigStub.class}, loader= AnnotationConfigContextLoader.class)
  125. public class DatabaseConfigTest {
  126.  
  127. @Autowired
  128. private DataSource datasource;
  129. @Autowired
  130. private JdbcTemplate jdbcTemplate;
  131.  
  132.  
  133. @Before
  134. public void setUp() throws Exception {
  135.  
  136. }
  137.  
  138. @After
  139. public void tearDown() throws Exception {
  140. }
  141.  
  142. @Test
  143. public void testDataSource() {
  144. assertNotNull(datasource);
  145. assertNotNull(jdbcTemplate);
  146. }
  147.  
  148. }
  149.  
  150. public class DatabaseConfigStub {
  151.  
  152. private static final Logger log = Logger.getLogger(DatabaseConfigStub.class);
  153.  
  154. private static final String DS_NAME = "jdbc/DS_NAME";
  155.  
  156. @Bean
  157. DataSource dataSource() {
  158. JndiObjectFactoryBean jndiObjectBean = EasyMock.createMock(JndiObjectFactoryBean.class);
  159. jndiObjectBean.setJndiName(DS_NAME);
  160. jndiObjectBean.setResourceRef(true);
  161. jndiObjectBean.setProxyInterfaces(DataSource.class);
  162.  
  163. EasyMock.expect( (DataSource)jndiObjectBean.getObject()).andReturn(new DataSource() {
  164.  
  165. public <T> T unwrap(Class<T> iface) throws SQLException {
  166. // TODO Auto-generated method stub
  167. return null;
  168. }
  169.  
  170. public boolean isWrapperFor(Class<?> iface) throws SQLException {
  171. // TODO Auto-generated method stub
  172. return false;
  173. }
  174.  
  175. public void setLoginTimeout(int seconds) throws SQLException {
  176. // TODO Auto-generated method stub
  177.  
  178. }
  179.  
  180. public void setLogWriter(PrintWriter out) throws SQLException {
  181. // TODO Auto-generated method stub
  182.  
  183. }
  184.  
  185. public int getLoginTimeout() throws SQLException {
  186. // TODO Auto-generated method stub
  187. return 0;
  188. }
  189.  
  190. public PrintWriter getLogWriter() throws SQLException {
  191. // TODO Auto-generated method stub
  192. return null;
  193. }
  194.  
  195. public Connection getConnection(String username, String password)
  196. throws SQLException {
  197. // TODO Auto-generated method stub
  198. return null;
  199. }
  200.  
  201. public Connection getConnection() throws SQLException {
  202. // TODO Auto-generated method stub
  203. return null;
  204. }
  205. }
  206. );
  207. EasyMock.replay(jndiObjectBean);
  208.  
  209. return (DataSource) jndiObjectBean.getObject();
  210. }
  211.  
  212. @Bean
  213. JdbcTemplate jdbcTemplate(){
  214. return new JdbcTemplate( dataSource());
  215. }
  216.  
  217. <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  218. <property name="jndiName" value="java:comp/env/jdbc/DataSource"/>
  219. </bean>
  220. <bean id="dao" class="my.Dao">
  221. <property name="dataSource" ref="dataSource" />
  222. </bean>
  223.  
  224. type=javax.sql.DataSource
  225. driverClassName=org.gjt.mm.mysql.Driver
  226. url=jdbc:mysql://localhost/testdb
  227. username=user_name
  228. password=password
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement