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 2024/11/14 10:45:10 UTC

(shardingsphere) branch master updated: Add more test cases on ShardingIndexReviser (#33664)

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 ab968507cf9 Add more test cases on ShardingIndexReviser (#33664)
ab968507cf9 is described below

commit ab968507cf9f83c7adeecdf3fb50d8b1aeb24479
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu Nov 14 18:45:03 2024 +0800

    Add more test cases on ShardingIndexReviser (#33664)
---
 .../reviser/index/EncryptIndexReviserTest.java     | 11 +++---
 .../reviser/index/ShardingIndexReviserTest.java    | 44 ++++++----------------
 2 files changed, 17 insertions(+), 38 deletions(-)

diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/reviser/index/EncryptIndexReviserTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/reviser/index/EncryptIndexReviserTest.java
index 696e5c89779..85a3eef49a0 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/reviser/index/EncryptIndexReviserTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/reviser/index/EncryptIndexReviserTest.java
@@ -37,15 +37,16 @@ class EncryptIndexReviserTest {
     
     @Test
     void assertReviseWithEmptyColumn() {
-        assertFalse(new EncryptIndexReviser(mock(EncryptTable.class)).revise("foo_tbl", new IndexMetaData("name"), mock(EncryptRule.class)).isPresent());
+        assertFalse(new EncryptIndexReviser(mock(EncryptTable.class)).revise("foo_tbl", new IndexMetaData("foo_idx"), mock(EncryptRule.class)).isPresent());
     }
     
     @Test
     void assertReviseWithColumns() {
-        Optional<IndexMetaData> indexMetaData = new EncryptIndexReviser(mockEncryptTable())
-                .revise("foo_tbl", new IndexMetaData("name", Arrays.asList("cipher_col", "assisted_col", "other_col")), mock(EncryptRule.class));
-        assertTrue(indexMetaData.isPresent());
-        assertThat(indexMetaData.get().getColumns(), is(new LinkedHashSet<>(Arrays.asList("col_1", "col_2", "other_col"))));
+        Optional<IndexMetaData> actual = new EncryptIndexReviser(mockEncryptTable())
+                .revise("foo_tbl", new IndexMetaData("foo_idx", Arrays.asList("cipher_col", "assisted_col", "other_col")), mock(EncryptRule.class));
+        assertTrue(actual.isPresent());
+        assertThat(actual.get().getName(), is("foo_idx"));
+        assertThat(actual.get().getColumns(), is(new LinkedHashSet<>(Arrays.asList("col_1", "col_2", "other_col"))));
     }
     
     private EncryptTable mockEncryptTable() {
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/reviser/index/ShardingIndexReviserTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/reviser/index/ShardingIndexReviserTest.java
index a54d3fa0fc3..0451acce8a6 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/reviser/index/ShardingIndexReviserTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/reviser/index/ShardingIndexReviserTest.java
@@ -19,12 +19,8 @@ package org.apache.shardingsphere.sharding.metadata.reviser.index;
 
 import org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
 import org.apache.shardingsphere.infra.datanode.DataNode;
-import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
-import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.apache.shardingsphere.sharding.rule.ShardingTable;
-import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
 import org.junit.jupiter.api.Test;
 
 import java.util.Arrays;
@@ -33,46 +29,28 @@ import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 class ShardingIndexReviserTest {
     
-    private ShardingRule shardingRule;
-    
-    private ShardingIndexReviser shardingIndexReviser;
-    
     @Test
-    void assertRevise() {
-        shardingRule = createShardingRule();
-        ShardingTable shardingTable = mock(ShardingTable.class);
-        when(shardingTable.getActualDataNodes()).thenReturn(Arrays.asList(new DataNode("SCHEMA_NAME", "TABLE_NAME_0"), new DataNode("SCHEMA_NAME", "TABLE_NAME_1")));
-        shardingIndexReviser = new ShardingIndexReviser(shardingTable);
-        IndexMetaData originalMetaData = new IndexMetaData("TEST_INDEX", Collections.singletonList("TEST_COLUMN"));
-        originalMetaData.setUnique(false);
-        Optional<IndexMetaData> revisedMetaData = shardingIndexReviser.revise("TABLE_NAME_0", originalMetaData, shardingRule);
-        assertTrue(revisedMetaData.isPresent());
-        assertThat(revisedMetaData.get().getName(), is("TEST_INDEX"));
-        assertThat(revisedMetaData.get().getColumns().size(), is(1));
-        assertFalse(revisedMetaData.get().isUnique());
+    void assertReviseWithEmptyActualDataNode() {
+        assertThat(new ShardingIndexReviser(mock(ShardingTable.class)).revise("foo_tbl", new IndexMetaData("foo_idx"), mock(ShardingRule.class)), is(Optional.empty()));
     }
     
     @Test
-    void assertReviseWhenActualDataNodeIsEmpty() {
-        shardingRule = createShardingRule();
-        ShardingTable shardingTable = mock(ShardingTable.class);
-        when(shardingTable.getActualDataNodes()).thenReturn(Collections.emptyList());
-        shardingIndexReviser = new ShardingIndexReviser(shardingTable);
-        IndexMetaData originalMetaData = new IndexMetaData("TEST_INDEX");
-        Optional<IndexMetaData> revisedMetaData = shardingIndexReviser.revise("TABLE_NAME_1", originalMetaData, shardingRule);
-        assertThat(revisedMetaData, is(Optional.empty()));
+    void assertReviseWithActualDataNodes() {
+        Optional<IndexMetaData> actual = new ShardingIndexReviser(mockShardingTable()).revise("tbl_0", new IndexMetaData("foo_idx", Collections.singletonList("foo_col")), mock(ShardingRule.class));
+        assertTrue(actual.isPresent());
+        assertThat(actual.get().getName(), is("foo_idx"));
+        assertThat(actual.get().getColumns().size(), is(1));
     }
     
-    private ShardingRule createShardingRule() {
-        ShardingRuleConfiguration ruleConfig = new ShardingRuleConfiguration();
-        ruleConfig.setTables(Collections.singleton(new ShardingTableRuleConfiguration("TABLE_NAME", "DS.TABLE_NAME")));
-        return new ShardingRule(ruleConfig, Collections.singletonMap("DS", new MockedDataSource()), mock(ComputeNodeInstanceContext.class));
+    private static ShardingTable mockShardingTable() {
+        ShardingTable result = mock(ShardingTable.class);
+        when(result.getActualDataNodes()).thenReturn(Arrays.asList(new DataNode("foo_schema", "tbl_0"), new DataNode("foo_schema", "tbl_1")));
+        return result;
     }
 }