@Override protected DataSource resolveDatabaseConnection( IDatabaseConnection databaseConnection ) throws DBDatasourceServiceException { return databaseConnection.isUsingConnectionPool() ? getPooledDatasourceService().getDataSource( requestedDatasourceName ) : getNonPooledDatasourceService().getDataSource( requestedDatasourceName ); }
@Before public void setUp() { mockConnection = mock( IDatabaseConnection.class ); // Set it up - this is a NATIVE connection when( mockConnection.getAccessType() ).thenReturn( DatabaseAccessType.NATIVE ); when( mockConnection.getDatabaseName() ).thenReturn( dsName ); DataSource mockDs = mock( DataSource.class ); IDatasourceMgmtService mockMgmtService = mock( IDatasourceMgmtService.class ); DynamicallyPooledOrJndiDatasourceService dynamic = new DynamicallyPooledOrJndiDatasourceService(); dynamic.setNonPooledDatasourceService( nonPooledSpyService ); dynamic.setPooledDatasourceService( pooledSpyService ); spyService = spy(dynamic ); try { when( mockMgmtService.getDatasourceByName( dsName ) ).thenReturn( mockConnection ); } catch ( DatasourceMgmtServiceException e ) { e.printStackTrace(); } try { doReturn( mockDs ).when( nonPooledSpyService ).resolveDatabaseConnection( mockConnection ); doReturn( mockDs ).when( pooledSpyService ).resolveDatabaseConnection( mockConnection ); } catch ( DBDatasourceServiceException e ) { e.printStackTrace(); } doReturn( mockMgmtService ).when( nonPooledSpyService ).getDatasourceMgmtService(); doReturn( mockMgmtService ).when( pooledSpyService ).getDatasourceMgmtService(); doReturn( mockMgmtService ).when( spyService ).getDatasourceMgmtService(); spyService.clearCache(); }