package com.alibaba.druid.bvt.pool.dynamic;
import java.lang.reflect.Field;
import junit.framework.TestCase;
import org.junit.Assert;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceStatLogger;
import com.alibaba.druid.pool.DruidDataSourceStatLoggerImpl;
import com.alibaba.druid.support.logging.Log;
public class DruidDataSourceStatLoggerImplTest extends TestCase {
private DruidDataSource dataSource;
private Log statLog;
protected void setUp() throws Exception {
Field logField = DruidDataSourceStatLoggerImpl.class.getDeclaredField("LOG");
logField.setAccessible(true);
statLog = (Log) logField.get(null);
statLog.resetStat();
dataSource = new DruidDataSource();
dataSource.setUrl("jdbc:mock:xxx");
dataSource.setTestOnBorrow(false);
dataSource.setConnectionProperties("a=3;b=4");
dataSource.setFilters("stat");
dataSource.init();
}
protected void tearDown() throws Exception {
dataSource.close();
}
public void test_connectPropertiesChange() throws Exception {
Assert.assertTrue(dataSource.isWrapperFor(DruidDataSourceStatLogger.class));
Assert.assertTrue(dataSource.isWrapperFor(DruidDataSourceStatLoggerImpl.class));
DruidDataSourceStatLoggerImpl loggerImpl = dataSource.unwrap(DruidDataSourceStatLoggerImpl.class);
Assert.assertSame(statLog, loggerImpl.getLogger());
dataSource.setConnectionProperties("druid.stat.loggerName=xxx");
Assert.assertNotSame(statLog, loggerImpl.getLogger());
}
}