You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/04/09 13:20:14 UTC

[shardingsphere] branch master updated: Add more unit test for ShardingRule (#16288) (#16680)

This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 1fb3d75a4b2 Add more unit test for ShardingRule (#16288) (#16680)
1fb3d75a4b2 is described below

commit 1fb3d75a4b2a423e2f536b19969cfcd5216636e3
Author: 龙台 Long Tai <77...@users.noreply.github.com>
AuthorDate: Sat Apr 9 21:20:05 2022 +0800

    Add more unit test for ShardingRule (#16288) (#16680)
---
 .../sharding/rule/ShardingRuleTest.java            | 39 ++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
index 6d83c6574e4..5098518993a 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.sharding.rule;
 
+import com.google.common.collect.Lists;
 import org.apache.shardingsphere.infra.binder.segment.table.TablesContext;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
@@ -35,6 +36,7 @@ import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfi
 import org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration;
 import org.apache.shardingsphere.sharding.api.config.strategy.sharding.ComplexShardingStrategyConfiguration;
 import org.apache.shardingsphere.sharding.api.config.strategy.sharding.NoneShardingStrategyConfiguration;
+import org.apache.shardingsphere.sharding.api.config.strategy.sharding.ShardingStrategyConfiguration;
 import org.apache.shardingsphere.sharding.api.config.strategy.sharding.StandardShardingStrategyConfiguration;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BinaryOperationExpression;
@@ -706,4 +708,41 @@ public final class ShardingRuleTest {
         assertThat(sixthDataNode.getDataSourceName(), is("ds_1"));
         assertThat(sixthDataNode.getTableName(), is("table_2"));
     }
+    
+    @Test
+    public void assertGetDatabaseShardingStrategyConfiguration() {
+        ShardingRule actual = createMaximumShardingRule();
+        TableRule logicTable = actual.getTableRule("Logic_Table");
+        ShardingStrategyConfiguration databaseShardingStrategyConfiguration = actual.getDatabaseShardingStrategyConfiguration(logicTable);
+        assertThat(databaseShardingStrategyConfiguration.getShardingAlgorithmName(), is("database_inline"));
+    }
+    
+    @Test
+    public void assertGetTableShardingStrategyConfiguration() {
+        ShardingRule actual = createMaximumShardingRule();
+        TableRule logicTable = actual.getTableRule("Logic_Table");
+        ShardingStrategyConfiguration tableShardingStrategyConfiguration = actual.getTableShardingStrategyConfiguration(logicTable);
+        assertThat(tableShardingStrategyConfiguration.getShardingAlgorithmName(), is("table_inline"));
+    }
+    
+    @Test
+    public void assertIsGenerateKeyColumn() {
+        ShardingRule actual = createMaximumShardingRule();
+        assertTrue(actual.isGenerateKeyColumn("id", "logic_table"));
+    }
+    
+    @Test
+    public void assertGetShardingRuleTableNames() {
+        ShardingRule actual = createMaximumShardingRule();
+        Collection<String> shardingRuleTableNames = actual.getShardingRuleTableNames(Collections.singleton("Logic_Table"));
+        assertTrue(shardingRuleTableNames.contains("Logic_Table"));
+    }
+    
+    @Test
+    public void assertGetLogicAndActualTablesFromBindingTable() {
+        ShardingRule actual = createMaximumShardingRule();
+        Map<String, String> logicAndActualTablesFromBindingTable =
+                actual.getLogicAndActualTablesFromBindingTable("ds_0", "LOGIC_TABLE", "table_0", Lists.newArrayList("logic_table", "sub_logic_table"));
+        assertThat(logicAndActualTablesFromBindingTable.get("sub_logic_table"), is("sub_table_0"));
+    }
 }