/** * */ package org.minnal.core.db; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import org.minnal.core.config.DatabaseConfiguration; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import com.mchange.v2.c3p0.PooledDataSource; /** * @author ganeshs * */ public class C3P0DataSourceProviderTest { private C3P0DataSourceProvider provider; private DatabaseConfiguration configuration; @BeforeMethod public void beforeMethod() { configuration = new DatabaseConfiguration(); configuration.setDriverClass("org.h2.Driver"); configuration.setUrl("jdbc:h2:mem:test;MODE=MySQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"); configuration.setUsername("sa"); provider = spy(new C3P0DataSourceProvider(configuration)); } @Test public void shouldCreateDataSource() { assertNotNull(provider.createDataSource()); } @Test public void shouldCreateDataSourceLazilyOnGet() { PooledDataSource dataSource = mock(PooledDataSource.class); doReturn(dataSource).when(provider).createDataSource(); assertEquals(provider.getDataSource(), dataSource); } @Test public void shouldGetStatistics() { PooledDataSource dataSource = mock(PooledDataSource.class); doReturn(dataSource).when(provider).createDataSource(); assertEquals(provider.getDataSource(), dataSource); assertEquals(provider.getStatistics(), new C3P0DataSourceStatistics(dataSource)); } }