public void testLocalSessionFactoryBeanWithDataSourceAndMappingResources() throws Exception { final DriverManagerDataSource ds = new DriverManagerDataSource(); MockControl tmControl = MockControl.createControl(TransactionManager.class); final TransactionManager tm = (TransactionManager) tmControl.getMock(); final List invocations = new ArrayList(); LocalSessionFactoryBean sfb = new LocalSessionFactoryBean() { protected Configuration newConfiguration() { return new Configuration() { public Configuration addInputStream(InputStream is) { try { is.close(); } catch (IOException ex) { } invocations.add("addResource"); return this; } }; } protected SessionFactory newSessionFactory(Configuration config) { assertEquals( LocalDataSourceConnectionProvider.class.getName(), config.getProperty(Environment.CONNECTION_PROVIDER)); assertEquals(ds, LocalSessionFactoryBean.getConfigTimeDataSource()); assertEquals( LocalTransactionManagerLookup.class.getName(), config.getProperty(Environment.TRANSACTION_MANAGER_STRATEGY)); assertEquals(tm, LocalSessionFactoryBean.getConfigTimeTransactionManager()); invocations.add("newSessionFactory"); return null; } }; sfb.setMappingResources( new String[] { "/org/springframework/beans/factory/xml/test.xml", "/org/springframework/beans/factory/xml/child.xml" }); sfb.setDataSource(ds); sfb.setJtaTransactionManager(tm); sfb.afterPropertiesSet(); assertTrue(sfb.getConfiguration() != null); assertEquals("addResource", invocations.get(0)); assertEquals("addResource", invocations.get(1)); assertEquals("newSessionFactory", invocations.get(2)); }