package com.alibaba.druid.bvt.filter.config;
import org.junit.Assert;
import junit.framework.TestCase;
import com.alibaba.druid.filter.config.ConfigFilter;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.util.JdbcUtils;
public class ConfigFilterTest2 extends TestCase {
private DruidDataSource dataSource;
protected void setUp() throws Exception {
dataSource = new DruidDataSource();
dataSource.setFilters("config");
}
protected void tearDown() throws Exception {
JdbcUtils.close(dataSource);
}
public void test_decrypt() throws Exception {
dataSource.addConnectionProperty(ConfigFilter.CONFIG_FILE, "bvt/config/config-0.properties");
Assert.assertEquals(1, dataSource.getProxyFilters().size());
dataSource.init();
Assert.assertEquals("jdbc:mock:config-0", dataSource.getUrl());
Assert.assertEquals(false, dataSource.isTestOnBorrow());
Assert.assertEquals(10, dataSource.getMaxActive());
}
public void test_decrypt1() throws Exception {
dataSource.addConnectionProperty(ConfigFilter.CONFIG_FILE, "bvt/config/config-1.properties");
Assert.assertEquals(1, dataSource.getProxyFilters().size());
dataSource.init();
Assert.assertEquals("jdbc:mock:config-1", dataSource.getUrl());
Assert.assertEquals(false, dataSource.isTestOnBorrow());
Assert.assertEquals(11, dataSource.getMaxActive());
Assert.assertEquals(3, dataSource.getProxyFilters().size());
}
public void test_decrypt2() throws Exception {
dataSource.addConnectionProperty(ConfigFilter.CONFIG_FILE, "bvt/config/config-2.properties");
dataSource.addConnectionProperty(ConfigFilter.CONFIG_DECRYPT, "true");
Assert.assertEquals(1, dataSource.getProxyFilters().size());
dataSource.init();
Assert.assertEquals("jdbc:mock:config-2", dataSource.getUrl());
Assert.assertEquals(false, dataSource.isTestOnBorrow());
Assert.assertEquals(12, dataSource.getMaxActive());
Assert.assertEquals("abcdefg1234567890", dataSource.getPassword());
}
public void test_decrypt3() throws Exception {
dataSource.addConnectionProperty(ConfigFilter.CONFIG_FILE, "bvt/config/config-3.properties");
Assert.assertEquals(1, dataSource.getProxyFilters().size());
dataSource.init();
Assert.assertEquals("jdbc:mock:config-3", dataSource.getUrl());
Assert.assertEquals(false, dataSource.isTestOnBorrow());
Assert.assertEquals(13, dataSource.getMaxActive());
Assert.assertEquals("abcdefg1234567890", dataSource.getPassword());
}
public void test_decrypt4() throws Exception {
String file = Thread.currentThread().getContextClassLoader().getResource("bvt/config/config-3.properties").getFile();
dataSource.addConnectionProperty(ConfigFilter.CONFIG_FILE, "file://" + file);
Assert.assertEquals(1, dataSource.getProxyFilters().size());
dataSource.init();
Assert.assertEquals("jdbc:mock:config-3", dataSource.getUrl());
Assert.assertEquals(false, dataSource.isTestOnBorrow());
Assert.assertEquals(13, dataSource.getMaxActive());
Assert.assertEquals("abcdefg1234567890", dataSource.getPassword());
}
public void test_decrypt5() throws Exception {
Assert.assertEquals(1, dataSource.getProxyFilters().size());
try {
String file = Thread.currentThread().getContextClassLoader().getResource("bvt/config/config-2.properties").getFile();
System.setProperty(ConfigFilter.SYS_PROP_CONFIG_FILE, "file://" + file);
System.setProperty(ConfigFilter.SYS_PROP_CONFIG_DECRYPT, "true");
dataSource.init();
Assert.assertEquals("jdbc:mock:config-2", dataSource.getUrl());
Assert.assertEquals(false, dataSource.isTestOnBorrow());
Assert.assertEquals(12, dataSource.getMaxActive());
Assert.assertEquals("abcdefg1234567890", dataSource.getPassword());
} finally {
System.clearProperty(ConfigFilter.SYS_PROP_CONFIG_FILE);
System.clearProperty(ConfigFilter.SYS_PROP_CONFIG_DECRYPT);
}
}
}