From 6a99fe1c6ea41f6703ff87c70b98586e19e54f69 Mon Sep 17 00:00:00 2001 From: wenshao Date: Sat, 1 Sep 2012 09:02:10 +0800 Subject: [PATCH] refactor ConfigFilter --- .../bvt/filter/config/ConfigFilterTest1.java | 38 ++++++++++ .../bvt/filter/config/ConfigFilterTest2.java | 70 +++++++++++++++++++ .../bvt/filter/config/ConfigToolsTest.java | 17 +++++ .../resources/bvt/config/config-3.properties | 5 ++ 4 files changed, 130 insertions(+) create mode 100644 src/test/java/com/alibaba/druid/bvt/filter/config/ConfigFilterTest1.java create mode 100644 src/test/java/com/alibaba/druid/bvt/filter/config/ConfigFilterTest2.java create mode 100644 src/test/java/com/alibaba/druid/bvt/filter/config/ConfigToolsTest.java create mode 100644 src/test/resources/bvt/config/config-3.properties diff --git a/src/test/java/com/alibaba/druid/bvt/filter/config/ConfigFilterTest1.java b/src/test/java/com/alibaba/druid/bvt/filter/config/ConfigFilterTest1.java new file mode 100644 index 0000000000..0a9d898fe2 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/filter/config/ConfigFilterTest1.java @@ -0,0 +1,38 @@ +package com.alibaba.druid.bvt.filter.config; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import com.alibaba.druid.filter.config.ConfigFilter; +import com.alibaba.druid.filter.config.ConfigTools; +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.util.JdbcUtils; + +public class ConfigFilterTest1 extends TestCase { + private DruidDataSource dataSource; + + protected void setUp() throws Exception { + dataSource = new DruidDataSource(); + dataSource.setUrl("jdbc:mock:xxx"); + dataSource.setFilters("config"); + } + + protected void tearDown() throws Exception { + JdbcUtils.close(dataSource); + } + + public void test_decrypt() throws Exception { + String plainPassword = "abcdefg1234567890"; + + dataSource.setPassword(ConfigTools.encrypt(plainPassword)); + + Assert.assertFalse(plainPassword.equals(dataSource.getPassword())); + + dataSource.addConnectionProperty(ConfigFilter.CONFIG_DECRYPT, "true"); + + dataSource.init(); + + Assert.assertEquals(plainPassword, dataSource.getPassword()); + } + +} diff --git a/src/test/java/com/alibaba/druid/bvt/filter/config/ConfigFilterTest2.java b/src/test/java/com/alibaba/druid/bvt/filter/config/ConfigFilterTest2.java new file mode 100644 index 0000000000..36ffa94206 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/filter/config/ConfigFilterTest2.java @@ -0,0 +1,70 @@ +package com.alibaba.druid.bvt.filter.config; + +import junit.framework.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()); + } +} diff --git a/src/test/java/com/alibaba/druid/bvt/filter/config/ConfigToolsTest.java b/src/test/java/com/alibaba/druid/bvt/filter/config/ConfigToolsTest.java new file mode 100644 index 0000000000..bb5772b6ae --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/filter/config/ConfigToolsTest.java @@ -0,0 +1,17 @@ +package com.alibaba.druid.bvt.filter.config; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import com.alibaba.druid.filter.config.ConfigTools; + +public class ConfigToolsTest extends TestCase { + + public void test_0() throws Exception { + String plainText = "abcdef"; + String cipherText = ConfigTools.encrypt(plainText); + String decipherText = ConfigTools.decrypt(cipherText); + + Assert.assertEquals(plainText, decipherText); + } +} diff --git a/src/test/resources/bvt/config/config-3.properties b/src/test/resources/bvt/config/config-3.properties new file mode 100644 index 0000000000..ac3f6b23ce --- /dev/null +++ b/src/test/resources/bvt/config/config-3.properties @@ -0,0 +1,5 @@ +config.decrypt=true +url=jdbc:mock:config-3 +testOnBorrow=false +maxActive=13 +password=ns2B+nJLNaoXgGakWqqsP6tWu8ZN25D1FncyKCTB/hNup8LW0g/66iGyrkDBHf9tgPJ8QtLz+upQSyin2g4flg== \ No newline at end of file