From 1250a83e8e560b4e01904a81e89e1cbb504d69b0 Mon Sep 17 00:00:00 2001 From: terrymanu Date: Wed, 1 Jun 2016 01:03:38 +0800 Subject: [PATCH] refactor config common test case --- .../common/api/ShardingRuleBuilder.java | 6 +- .../rdb/sharding/config/common/AllTests.java | 10 +- .../common/api/ShardingRuleBuilderTest.java | 198 ++++++++++++------ .../config/AllYamlShardingConfigTests.java | 8 +- .../config/yaml/YamlintegratedTest.java | 113 ++++++++++ .../src/test/resources/config/config-all.yaml | 4 +- .../resources/config/config-bindingError.yaml | 2 +- .../config/config-classNotFound.yaml | 0 .../test/resources/config/config-dynamic.yaml | 4 +- .../src/test/resources/config/config-min.yaml | 0 10 files changed, 265 insertions(+), 80 deletions(-) create mode 100644 sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/java/com/dangdang/ddframe/rdb/sharding/config/yaml/YamlintegratedTest.java rename sharding-jdbc-config-parent/{sharding-jdbc-config-common => sharding-jdbc-config-yaml}/src/test/resources/config/config-all.yaml (89%) rename sharding-jdbc-config-parent/{sharding-jdbc-config-common => sharding-jdbc-config-yaml}/src/test/resources/config/config-bindingError.yaml (92%) rename sharding-jdbc-config-parent/{sharding-jdbc-config-common => sharding-jdbc-config-yaml}/src/test/resources/config/config-classNotFound.yaml (100%) rename sharding-jdbc-config-parent/{sharding-jdbc-config-common => sharding-jdbc-config-yaml}/src/test/resources/config/config-dynamic.yaml (88%) rename sharding-jdbc-config-parent/{sharding-jdbc-config-common => sharding-jdbc-config-yaml}/src/test/resources/config/config-min.yaml (100%) diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilder.java b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilder.java index 8469843e01..e1a3567dc4 100644 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilder.java +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilder.java @@ -117,8 +117,8 @@ public final class ShardingRuleBuilder { private Collection buildBindingTableRules(final Collection tableRules) { Collection result = new ArrayList<>(shardingRuleConfig.getBindingTables().size()); for (BindingTableRuleConfig each : shardingRuleConfig.getBindingTables()) { - result.add(new BindingTableRule(Lists.transform(new InlineParser(each.getTableNames()).split(), new Function() { - + result.add(new BindingTableRule(Lists.transform(new InlineParser(each.getTableNames()).split(), new Function() { + @Override public TableRule apply(final String input) { return findTableRuleByLogicTableName(tableRules, input); @@ -134,7 +134,7 @@ public final class ShardingRuleBuilder { return each; } } - throw new IllegalArgumentException("Sharding JDBC: Binding table %s is not an available Table rule"); + throw new IllegalArgumentException(String.format("Sharding JDBC: Binding table `%s` is not an available Table rule", logicTableName)); } private T buildShardingStrategy(final StrategyConfig config, final Class returnClass) { diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/AllTests.java b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/AllTests.java index 118cb16a82..0626b392bb 100644 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/AllTests.java +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/AllTests.java @@ -27,11 +27,11 @@ import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ - ShardingRuleBuilderTest.class, - ClosureDatabaseShardingAlgorithmTest.class, - ClosureTableShardingAlgorithmTest.class, - ShardingValueWrapperTest.class, - InlineParserTest.class + ShardingRuleBuilderTest.class, + ClosureDatabaseShardingAlgorithmTest.class, + ClosureTableShardingAlgorithmTest.class, + ShardingValueWrapperTest.class, + InlineParserTest.class }) public class AllTests { } diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilderTest.java b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilderTest.java index 6ffbeb807d..91b97feb3e 100644 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilderTest.java +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilderTest.java @@ -17,96 +17,166 @@ package com.dangdang.ddframe.rdb.sharding.config.common.api; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import javax.sql.DataSource; - -import com.dangdang.ddframe.rdb.sharding.api.rule.DynamicDataNode; +import com.dangdang.ddframe.rdb.sharding.api.rule.BindingTableRule; +import com.dangdang.ddframe.rdb.sharding.api.rule.DataNode; import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule; import com.dangdang.ddframe.rdb.sharding.api.rule.TableRule; +import com.dangdang.ddframe.rdb.sharding.config.common.api.config.BindingTableRuleConfig; import com.dangdang.ddframe.rdb.sharding.config.common.api.config.ShardingRuleConfig; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.dbcp.BasicDataSource; +import com.dangdang.ddframe.rdb.sharding.config.common.api.config.StrategyConfig; +import com.dangdang.ddframe.rdb.sharding.config.common.api.config.TableRuleConfig; +import com.dangdang.ddframe.rdb.sharding.config.common.internal.fixture.MultiAlgorithm; +import com.dangdang.ddframe.rdb.sharding.config.common.internal.fixture.SingleAlgorithm; +import com.google.common.base.Joiner; import org.junit.Test; -import org.yaml.snakeyaml.Yaml; -import org.yaml.snakeyaml.constructor.Constructor; -import static org.hamcrest.CoreMatchers.hasItems; +import javax.sql.DataSource; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + import static org.hamcrest.core.Is.is; import static org.hamcrest.core.IsCollectionContaining.hasItem; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -@Slf4j -public class ShardingRuleBuilderTest { +public final class ShardingRuleBuilderTest { - @Test - public void testAll() { - Yaml yaml = new Yaml(new Constructor(ShardingRuleConfig.class)); - ShardingRuleConfig config = (ShardingRuleConfig) yaml.load(ShardingRuleBuilderTest.class.getResourceAsStream("/config/config-all.yaml")); - ShardingRule shardingRule = new ShardingRuleBuilder("config-all.yaml", config).build(); - assertThat(shardingRule.getTableRules().size(), is(3)); - assertThat(shardingRule.getBindingTableRules().size(), is(1)); - assertThat(Arrays.asList(shardingRule.getTableRules().toArray()), hasItems(shardingRule.getBindingTableRules().iterator().next().getTableRules().toArray())); - assertThat(shardingRule.getDataSourceRule().getDefaultDataSourceName(), is("db0")); + @Test(expected = IllegalArgumentException.class) + public void assertBuildFailureWhenDataSourceIsEmpty() { + new ShardingRuleBuilder(new ShardingRuleConfig()).build(); } - @Test - public void testMin() { - Yaml yaml = new Yaml(new Constructor(ShardingRuleConfig.class)); - Map dsMap = new HashMap<>(); - dsMap.put("ds", new BasicDataSource()); - ShardingRuleConfig config = (ShardingRuleConfig) yaml.load(ShardingRuleBuilderTest.class.getResourceAsStream("/config/config-min.yaml")); - ShardingRule shardingRule = new ShardingRuleBuilder("config-min.yaml", dsMap, config).build(); - assertThat(shardingRule.getTableRules().size(), is(1)); + @Test(expected = IllegalArgumentException.class) + public void assertBuildFailureWhenBindingTableError() { + ShardingRuleConfig shardingRuleConfig = new ShardingRuleConfig(); + shardingRuleConfig.setDataSource(createDataSourceMap()); + shardingRuleConfig.setTables(createTableRuleConfigMap()); + shardingRuleConfig.setBindingTables(Collections.singletonList(createBindingTableRule("t_other"))); + shardingRuleConfig.setDefaultDatabaseStrategy(getDatabaseStrategyConfig(SingleAlgorithm.class.getName())); + shardingRuleConfig.setDefaultTableStrategy(getTableStrategyConfigForExpression()); + new ShardingRuleBuilder(shardingRuleConfig).build().getBindingTableRules().iterator().next().getTableRules().iterator().next(); + } + + @Test(expected = IllegalArgumentException.class) + public void assertBuildFailureWhenAlgorithmNotExisted() { + ShardingRuleConfig shardingRuleConfig = new ShardingRuleConfig(); + shardingRuleConfig.setDataSource(createDataSourceMap()); + shardingRuleConfig.setTables(createTableRuleConfigMap()); + shardingRuleConfig.setDefaultDatabaseStrategy(getDatabaseStrategyConfig("xxx.Algorithm")); + new ShardingRuleBuilder(shardingRuleConfig).build(); } @Test - public void testDynamic() { - Yaml yaml = new Yaml(new Constructor(ShardingRuleConfig.class)); - Map dsMap = new HashMap<>(); - dsMap.put("ds", new BasicDataSource()); - ShardingRuleConfig config = (ShardingRuleConfig) yaml.load(ShardingRuleBuilderTest.class.getResourceAsStream("/config/config-dynamic.yaml")); - ShardingRule shardingRule = new ShardingRuleBuilder("config-dynamic.yaml", dsMap, config).build(); - int i = 0; - for (TableRule each : shardingRule.getTableRules()) { - i++; - assertThat(each.getActualTables().size(), is(2)); - assertThat(each.getActualTables(), hasItem(new DynamicDataNode("db0"))); - assertThat(each.getActualTables(), hasItem(new DynamicDataNode("db1"))); - switch (i) { - case 1: - assertThat(each.getLogicTable(), is("config")); + public void assertBuildSuccess() { + ShardingRuleConfig shardingRuleConfig = new ShardingRuleConfig(); + shardingRuleConfig.setDataSource(createDataSourceMap()); + shardingRuleConfig.setDefaultDataSourceName("ds_0"); + shardingRuleConfig.setTables(createTableRuleConfigMap()); + shardingRuleConfig.setBindingTables(Collections.singletonList(createBindingTableRule("t_order", "t_order_item"))); + shardingRuleConfig.setDefaultDatabaseStrategy(getDatabaseStrategyConfig(SingleAlgorithm.class.getName())); + shardingRuleConfig.setDefaultTableStrategy(getTableStrategyConfigForAlgorithmClass()); + ShardingRule actual = new ShardingRuleBuilder(shardingRuleConfig).build(); + assertThat(actual.getDataSourceRule().getDataSourceNames().size(), is(2)); + assertThat(actual.getDataSourceRule().getDataSourceNames(), hasItem("ds_0")); + assertThat(actual.getDataSourceRule().getDataSourceNames(), hasItem("ds_1")); + assertThat(actual.getTableRules().size(), is(3)); + for (TableRule each : actual.getTableRules()) { + String logicTable = each.getLogicTable(); + switch (logicTable) { + case "t_order": + assertFalse(each.isDynamic()); + assertThat(each.getActualTables().size(), is(4)); + assertThat(each.getActualTables(), hasItem(new DataNode("ds_0", "t_order_0"))); + assertThat(each.getActualTables(), hasItem(new DataNode("ds_0", "t_order_0"))); + assertThat(each.getActualTables(), hasItem(new DataNode("ds_1", "t_order_0"))); + assertThat(each.getActualTables(), hasItem(new DataNode("ds_1", "t_order_1"))); break; - case 2: - assertThat(each.getLogicTable(), is("t_order")); + case "t_order_item": + assertFalse(each.isDynamic()); + assertThat(each.getActualTables().size(), is(4)); + assertThat(each.getActualTables(), hasItem(new DataNode("ds_0", "t_order_item_0"))); + assertThat(each.getActualTables(), hasItem(new DataNode("ds_0", "t_order_item_0"))); + assertThat(each.getActualTables(), hasItem(new DataNode("ds_1", "t_order_item_0"))); + assertThat(each.getActualTables(), hasItem(new DataNode("ds_1", "t_order_item_1"))); break; - case 3: - assertThat(each.getLogicTable(), is("t_order_item")); + case "t_log": + assertTrue(each.isDynamic()); + assertThat(each.getActualTables().size(), is(2)); + assertThat(each.getActualTables(), hasItem(new DataNode("ds_0", "SHARDING_JDBC DYNAMIC_TABLE_PLACEHOLDER"))); + assertThat(each.getActualTables(), hasItem(new DataNode("ds_1", "SHARDING_JDBC DYNAMIC_TABLE_PLACEHOLDER"))); break; default: fail(); } } + assertThat(actual.getBindingTableRules().size(), is(1)); + BindingTableRule bindingTableRule = actual.getBindingTableRules().iterator().next(); + assertTrue(bindingTableRule.hasLogicTable("t_order")); + assertTrue(bindingTableRule.hasLogicTable("t_order_item")); + assertFalse(bindingTableRule.hasLogicTable("t_log")); + assertThat(actual.getDatabaseShardingStrategy().getShardingColumns().size(), is(1)); + assertThat(actual.getDatabaseShardingStrategy().getShardingColumns().iterator().next(), is("uid")); + assertThat(actual.getTableShardingStrategy().getShardingColumns().size(), is(1)); + assertThat(actual.getTableShardingStrategy().getShardingColumns().iterator().next(), is("oid")); } - @Test(expected = IllegalArgumentException.class) - public void testClassNotFound() { - Yaml yaml = new Yaml(new Constructor(ShardingRuleConfig.class)); - ShardingRuleConfig config = (ShardingRuleConfig) yaml.load(ShardingRuleBuilderTest.class.getResourceAsStream("/config/config-classNotFound.yaml")); - new ShardingRuleBuilder(config).build(); + private Map createDataSourceMap() { + Map result = new HashMap<>(2); + result.put("ds_0", null); + result.put("ds_1", null); + return result; } - @Test(expected = IllegalArgumentException.class) - public void testBindingError() { - Yaml yaml = new Yaml(new Constructor(ShardingRuleConfig.class)); - Map dsMap = new HashMap<>(); - dsMap.put("ds", new BasicDataSource()); - ShardingRuleConfig config = (ShardingRuleConfig) yaml.load(ShardingRuleBuilderTest.class.getResourceAsStream("/config/config-bindingError.yaml")); - ShardingRule shardingRule = new ShardingRuleBuilder("config-bindingError.yaml", dsMap, config).build(); - for (TableRule tableRule : shardingRule.getBindingTableRules().iterator().next().getTableRules()) { - log.info(tableRule.toString()); - } + private Map createTableRuleConfigMap() { + Map result = new HashMap<>(3); + result.put("t_order", createTableRuleConfig("t_order")); + result.put("t_order_item", createTableRuleConfig("t_order_item")); + result.put("t_log", createDynamicTableRuleConfig()); + return result; + } + + private TableRuleConfig createTableRuleConfig(final String logicTable) { + TableRuleConfig result = new TableRuleConfig(); + result.setActualTables(logicTable + "_${[0, 1]}"); + result.setDataSourceNames("ds_${0..1}"); + result.setDatabaseStrategy(getDatabaseStrategyConfig(SingleAlgorithm.class.getName())); + result.setTableStrategy(getTableStrategyConfigForExpression()); + return result; + } + + private StrategyConfig getDatabaseStrategyConfig(final String algorithmClassName) { + StrategyConfig result = new StrategyConfig(); + result.setShardingColumns("uid"); + result.setAlgorithmClassName(algorithmClassName); + return result; + } + + private StrategyConfig getTableStrategyConfigForExpression() { + StrategyConfig result = new StrategyConfig(); + result.setShardingColumns("oid"); + result.setAlgorithmExpression("${oid.longValue() % 2}"); + return result; + } + + private StrategyConfig getTableStrategyConfigForAlgorithmClass() { + StrategyConfig result = new StrategyConfig(); + result.setShardingColumns("oid"); + result.setAlgorithmClassName(MultiAlgorithm.class.getName()); + return result; + } + + private TableRuleConfig createDynamicTableRuleConfig() { + TableRuleConfig result = new TableRuleConfig(); + result.setDynamic(true); + return result; + } + + private BindingTableRuleConfig createBindingTableRule(final String... logicTables) { + BindingTableRuleConfig result = new BindingTableRuleConfig(); + result.setTableNames(Joiner.on(",").join(logicTables)); + return result; } } diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/java/com/dangdang/ddframe/rdb/sharding/config/AllYamlShardingConfigTests.java b/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/java/com/dangdang/ddframe/rdb/sharding/config/AllYamlShardingConfigTests.java index 2854a7db1a..af9613e110 100644 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/java/com/dangdang/ddframe/rdb/sharding/config/AllYamlShardingConfigTests.java +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/java/com/dangdang/ddframe/rdb/sharding/config/AllYamlShardingConfigTests.java @@ -18,12 +18,14 @@ package com.dangdang.ddframe.rdb.sharding.config; import com.dangdang.ddframe.rdb.sharding.config.yaml.YamlShardingConfigTest; +import com.dangdang.ddframe.rdb.sharding.config.yaml.YamlintegratedTest; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) -@Suite.SuiteClasses( - YamlShardingConfigTest.class - ) +@Suite.SuiteClasses({ + YamlShardingConfigTest.class, + YamlintegratedTest.class + }) public class AllYamlShardingConfigTests { } diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/java/com/dangdang/ddframe/rdb/sharding/config/yaml/YamlintegratedTest.java b/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/java/com/dangdang/ddframe/rdb/sharding/config/yaml/YamlintegratedTest.java new file mode 100644 index 0000000000..fea0530fb6 --- /dev/null +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/java/com/dangdang/ddframe/rdb/sharding/config/yaml/YamlintegratedTest.java @@ -0,0 +1,113 @@ +/* + * Copyright 1999-2015 dangdang.com. + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *

+ */ + +package com.dangdang.ddframe.rdb.sharding.config.yaml; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import javax.sql.DataSource; + +import com.dangdang.ddframe.rdb.sharding.api.rule.DynamicDataNode; +import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule; +import com.dangdang.ddframe.rdb.sharding.api.rule.TableRule; +import com.dangdang.ddframe.rdb.sharding.config.common.api.ShardingRuleBuilder; +import com.dangdang.ddframe.rdb.sharding.config.common.api.config.ShardingRuleConfig; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.dbcp.BasicDataSource; +import org.junit.Test; +import org.yaml.snakeyaml.Yaml; +import org.yaml.snakeyaml.constructor.Constructor; + +import static org.hamcrest.CoreMatchers.hasItems; +import static org.hamcrest.core.Is.is; +import static org.hamcrest.core.IsCollectionContaining.hasItem; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.fail; + +@Slf4j +public class YamlintegratedTest { + + @Test + public void testAll() { + Yaml yaml = new Yaml(new Constructor(ShardingRuleConfig.class)); + ShardingRuleConfig config = (ShardingRuleConfig) yaml.load(YamlintegratedTest.class.getResourceAsStream("/config/config-all.yaml")); + ShardingRule shardingRule = new ShardingRuleBuilder("config-all.yaml", config).build(); + assertThat(shardingRule.getTableRules().size(), is(3)); + assertThat(shardingRule.getBindingTableRules().size(), is(1)); + assertThat(Arrays.asList(shardingRule.getTableRules().toArray()), hasItems(shardingRule.getBindingTableRules().iterator().next().getTableRules().toArray())); + assertThat(shardingRule.getDataSourceRule().getDefaultDataSourceName(), is("db0")); + } + + @Test + public void testMin() { + Yaml yaml = new Yaml(new Constructor(ShardingRuleConfig.class)); + Map dsMap = new HashMap<>(); + dsMap.put("ds", new BasicDataSource()); + ShardingRuleConfig config = (ShardingRuleConfig) yaml.load(YamlintegratedTest.class.getResourceAsStream("/config/config-min.yaml")); + ShardingRule shardingRule = new ShardingRuleBuilder("config-min.yaml", dsMap, config).build(); + assertThat(shardingRule.getTableRules().size(), is(1)); + } + + @Test + public void testDynamic() { + Yaml yaml = new Yaml(new Constructor(ShardingRuleConfig.class)); + Map dsMap = new HashMap<>(); + dsMap.put("ds", new BasicDataSource()); + ShardingRuleConfig config = (ShardingRuleConfig) yaml.load(YamlintegratedTest.class.getResourceAsStream("/config/config-dynamic.yaml")); + ShardingRule shardingRule = new ShardingRuleBuilder("config-dynamic.yaml", dsMap, config).build(); + int i = 0; + for (TableRule each : shardingRule.getTableRules()) { + i++; + assertThat(each.getActualTables().size(), is(2)); + assertThat(each.getActualTables(), hasItem(new DynamicDataNode("db0"))); + assertThat(each.getActualTables(), hasItem(new DynamicDataNode("db1"))); + switch (i) { + case 1: + assertThat(each.getLogicTable(), is("config")); + break; + case 2: + assertThat(each.getLogicTable(), is("t_order")); + break; + case 3: + assertThat(each.getLogicTable(), is("t_order_item")); + break; + default: + fail(); + } + } + } + + @Test(expected = IllegalArgumentException.class) + public void testClassNotFound() { + Yaml yaml = new Yaml(new Constructor(ShardingRuleConfig.class)); + ShardingRuleConfig config = (ShardingRuleConfig) yaml.load(YamlintegratedTest.class.getResourceAsStream("/config/config-classNotFound.yaml")); + new ShardingRuleBuilder(config).build(); + } + + @Test(expected = IllegalArgumentException.class) + public void testBindingError() { + Yaml yaml = new Yaml(new Constructor(ShardingRuleConfig.class)); + Map dsMap = new HashMap<>(); + dsMap.put("ds", new BasicDataSource()); + ShardingRuleConfig config = (ShardingRuleConfig) yaml.load(YamlintegratedTest.class.getResourceAsStream("/config/config-bindingError.yaml")); + ShardingRule shardingRule = new ShardingRuleBuilder("config-bindingError.yaml", dsMap, config).build(); + for (TableRule tableRule : shardingRule.getBindingTableRules().iterator().next().getTableRules()) { + log.info(tableRule.toString()); + } + } +} diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-all.yaml b/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-all.yaml similarity index 89% rename from sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-all.yaml rename to sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-all.yaml index 9330a2f8d1..6c39e7598a 100644 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-all.yaml +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-all.yaml @@ -23,7 +23,7 @@ tables: actualTables: t_order_${0..1} databaseStrategy: &db001 shardingColumns: order_id - algorithmClassName: com.dangdang.ddframe.rdb.sharding.config.common.internal.fixture.SingleAlgorithm + algorithmClassName: com.dangdang.ddframe.rdb.sharding.config.yaml.algorithm.SingleAlgorithm tableStrategy: &table001 shardingColumns: id algorithmExpression: t_order_${id.longValue() % 2} @@ -42,4 +42,4 @@ defaultDatabaseStrategy: algorithmExpression: t_order_${id.longValue() % 2} defaultTableStrategy: shardingColumns: id, order_id - algorithmClassName: com.dangdang.ddframe.rdb.sharding.config.common.internal.fixture.MultiAlgorithm \ No newline at end of file + algorithmClassName: com.dangdang.ddframe.rdb.sharding.config.yaml.algorithm.MultiAlgorithm \ No newline at end of file diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-bindingError.yaml b/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-bindingError.yaml similarity index 92% rename from sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-bindingError.yaml rename to sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-bindingError.yaml index 5855fe52e0..b35fd81346 100644 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-bindingError.yaml +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-bindingError.yaml @@ -3,7 +3,7 @@ tables: actualTables: t_order_${0..1} databaseStrategy: &db001 shardingColumns: order_id - algorithmClassName: com.dangdang.ddframe.rdb.sharding.config.common.internal.fixture.SingleAlgorithm + algorithmClassName: com.dangdang.ddframe.rdb.sharding.config.yaml.algorithm.SingleAlgorithm tableStrategy: &table001 shardingColumns: id algorithmExpression: t_order_${id.longValue() % 2} diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-classNotFound.yaml b/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-classNotFound.yaml similarity index 100% rename from sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-classNotFound.yaml rename to sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-classNotFound.yaml diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-dynamic.yaml b/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-dynamic.yaml similarity index 88% rename from sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-dynamic.yaml rename to sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-dynamic.yaml index 94cd3853f9..1191fde672 100644 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-dynamic.yaml +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-dynamic.yaml @@ -20,7 +20,7 @@ tables: dynamic: true databaseStrategy: &db001 shardingColumns: order_id - algorithmClassName: com.dangdang.ddframe.rdb.sharding.config.common.internal.fixture.SingleAlgorithm + algorithmClassName: com.dangdang.ddframe.rdb.sharding.config.yaml.algorithm.SingleAlgorithm tableStrategy: &table001 shardingColumns: id algorithmExpression: t_order_${id.longValue() % 2} @@ -37,4 +37,4 @@ defaultDatabaseStrategy: algorithmExpression: t_order_${id.longValue() % 2} defaultTableStrategy: shardingColumns: id, order_id - algorithmClassName: com.dangdang.ddframe.rdb.sharding.config.common.internal.fixture.MultiAlgorithm \ No newline at end of file + algorithmClassName: com.dangdang.ddframe.rdb.sharding.config.yaml.algorithm.MultiAlgorithm \ No newline at end of file diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-min.yaml b/sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-min.yaml similarity index 100% rename from sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/resources/config/config-min.yaml rename to sharding-jdbc-config-parent/sharding-jdbc-config-yaml/src/test/resources/config/config-min.yaml -- GitLab