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 9a6e570e522 Add more test cases on MaskAlgorithmChangedProcessor and
MaskTableChangedProcessor (#33441)
9a6e570e522 is described below
commit 9a6e570e5220359e1f5ea7ef10315294392353a9
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Oct 28 19:00:01 2024 +0800
Add more test cases on MaskAlgorithmChangedProcessor and
MaskTableChangedProcessor (#33441)
* Add more test cases on MaskAlgorithmChangedProcessor and
MaskTableChangedProcessor
* Add more test cases on MaskAlgorithmChangedProcessor and
MaskTableChangedProcessor
---
.../rule/changed/MaskTableChangedProcessor.java | 6 ++--
.../changed/MaskAlgorithmChangedProcessorTest.java | 36 ++++++++++++++--------
.../changed/MaskTableChangedProcessorTest.java | 35 +++++++++++++--------
3 files changed, 50 insertions(+), 27 deletions(-)
diff --git
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessor.java
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessor.java
index 48442d1a7bc..62eb502a4a1 100644
---
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessor.java
+++
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessor.java
@@ -18,9 +18,6 @@
package org.apache.shardingsphere.mask.rule.changed;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import
org.apache.shardingsphere.mode.event.dispatch.rule.alter.AlterRuleItemEvent;
-import
org.apache.shardingsphere.mode.event.dispatch.rule.drop.DropNamedRuleItemEvent;
-import
org.apache.shardingsphere.mode.event.dispatch.rule.drop.DropRuleItemEvent;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
import org.apache.shardingsphere.mask.config.MaskRuleConfiguration;
import org.apache.shardingsphere.mask.config.rule.MaskTableRuleConfiguration;
@@ -28,6 +25,9 @@ import
org.apache.shardingsphere.mask.metadata.nodepath.MaskRuleNodePathProvider
import org.apache.shardingsphere.mask.rule.MaskRule;
import
org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskTableRuleConfiguration;
import
org.apache.shardingsphere.mask.yaml.swapper.rule.YamlMaskTableRuleConfigurationSwapper;
+import
org.apache.shardingsphere.mode.event.dispatch.rule.alter.AlterRuleItemEvent;
+import
org.apache.shardingsphere.mode.event.dispatch.rule.drop.DropNamedRuleItemEvent;
+import
org.apache.shardingsphere.mode.event.dispatch.rule.drop.DropRuleItemEvent;
import
org.apache.shardingsphere.mode.spi.RuleItemConfigurationChangedProcessor;
import java.util.LinkedHashMap;
diff --git
a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskAlgorithmChangedProcessorTest.java
b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskAlgorithmChangedProcessorTest.java
index 097579ba884..bc5a8057a6d 100644
---
a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskAlgorithmChangedProcessorTest.java
+++
b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskAlgorithmChangedProcessorTest.java
@@ -19,14 +19,18 @@ package org.apache.shardingsphere.mask.rule.changed;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import
org.apache.shardingsphere.mode.event.dispatch.rule.alter.AlterNamedRuleItemEvent;
-import
org.apache.shardingsphere.mode.event.dispatch.rule.drop.DropNamedRuleItemEvent;
+import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mask.config.MaskRuleConfiguration;
+import org.apache.shardingsphere.mask.config.rule.MaskTableRuleConfiguration;
import org.apache.shardingsphere.mask.rule.MaskRule;
+import
org.apache.shardingsphere.mode.event.dispatch.rule.alter.AlterNamedRuleItemEvent;
+import
org.apache.shardingsphere.mode.event.dispatch.rule.drop.DropNamedRuleItemEvent;
+import
org.apache.shardingsphere.mode.spi.RuleItemConfigurationChangedProcessor;
import org.junit.jupiter.api.Test;
import java.util.Collections;
import java.util.HashMap;
+import java.util.LinkedList;
import java.util.Optional;
import java.util.Properties;
@@ -40,23 +44,25 @@ import static org.mockito.Mockito.when;
class MaskAlgorithmChangedProcessorTest {
+ private final MaskAlgorithmChangedProcessor processor =
(MaskAlgorithmChangedProcessor)
TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class,
"mask.mask_algorithms");
+
@Test
void assertSwapRuleItemConfiguration() {
- assertThat(new
MaskAlgorithmChangedProcessor().swapRuleItemConfiguration(mock(AlterNamedRuleItemEvent.class),
"type: TEST").getType(), is("TEST"));
+
assertThat(processor.swapRuleItemConfiguration(mock(AlterNamedRuleItemEvent.class),
"type: TEST").getType(), is("TEST"));
}
@Test
void assertFindRuleConfigurationWhenRuleDoesNotExist() {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
when(database.getRuleMetaData().findSingleRule(MaskRule.class)).thenReturn(Optional.empty());
- assertTrue(new
MaskAlgorithmChangedProcessor().findRuleConfiguration(database).getMaskAlgorithms().isEmpty());
+
assertTrue(processor.findRuleConfiguration(database).getMaskAlgorithms().isEmpty());
}
@Test
void assertFindRuleConfigurationWhenMaskAlgorithmDoesNotExist() {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
when(database.getRuleMetaData().findSingleRule(MaskRule.class)).thenReturn(Optional.of(new
MaskRule(new MaskRuleConfiguration(Collections.emptyList(),
Collections.emptyMap()))));
- assertTrue(new
MaskAlgorithmChangedProcessor().findRuleConfiguration(database).getMaskAlgorithms().isEmpty());
+
assertTrue(processor.findRuleConfiguration(database).getMaskAlgorithms().isEmpty());
}
@Test
@@ -65,18 +71,24 @@ class MaskAlgorithmChangedProcessorTest {
MaskRule maskRule = mock(MaskRule.class, RETURNS_DEEP_STUBS);
when(maskRule.getConfiguration().getMaskAlgorithms()).thenReturn(Collections.singletonMap("foo",
new AlgorithmConfiguration("FOO", new Properties())));
when(database.getRuleMetaData().findSingleRule(MaskRule.class)).thenReturn(Optional.of(maskRule));
- assertFalse(new
MaskAlgorithmChangedProcessor().findRuleConfiguration(database).getMaskAlgorithms().isEmpty());
+
assertFalse(processor.findRuleConfiguration(database).getMaskAlgorithms().isEmpty());
}
@Test
- void assertDropRuleItemConfiguration() {
- MaskRuleConfiguration currentRuleConfig = new
MaskRuleConfiguration(Collections.emptyList(), new
HashMap<>(Collections.singletonMap("type: TEST",
mock(AlgorithmConfiguration.class))));
- new MaskAlgorithmChangedProcessor().dropRuleItemConfiguration(new
DropNamedRuleItemEvent("foo_db", "type: TEST", ""), currentRuleConfig);
- assertTrue(currentRuleConfig.getMaskAlgorithms().isEmpty());
+ void assertChangeRuleItemConfiguration() {
+ MaskRuleConfiguration currentRuleConfig = new MaskRuleConfiguration(
+ new LinkedList<>(Collections.singleton(new
MaskTableRuleConfiguration("foo_tbl", Collections.emptyList()))), new
HashMap<>());
+ AlgorithmConfiguration toBeChangedItemConfig = new
AlgorithmConfiguration("FIXTURE", new Properties());
+ processor.changeRuleItemConfiguration(
+ new AlterNamedRuleItemEvent("foo_db", "foo_algo", "key", "0",
""), currentRuleConfig, toBeChangedItemConfig);
+ assertThat(currentRuleConfig.getMaskAlgorithms().size(), is(1));
+
assertThat(currentRuleConfig.getMaskAlgorithms().get("foo_algo").getType(),
is("FIXTURE"));
}
@Test
- void assertGetType() {
- assertThat(new MaskAlgorithmChangedProcessor().getType(),
is("mask.mask_algorithms"));
+ void assertDropRuleItemConfiguration() {
+ MaskRuleConfiguration currentRuleConfig = new
MaskRuleConfiguration(Collections.emptyList(), new
HashMap<>(Collections.singletonMap("type: TEST",
mock(AlgorithmConfiguration.class))));
+ processor.dropRuleItemConfiguration(new
DropNamedRuleItemEvent("foo_db", "type: TEST", ""), currentRuleConfig);
+ assertTrue(currentRuleConfig.getMaskAlgorithms().isEmpty());
}
}
diff --git
a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessorTest.java
b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessorTest.java
index a6b3bcb1f39..d9adee29c8d 100644
---
a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessorTest.java
+++
b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessorTest.java
@@ -18,12 +18,15 @@
package org.apache.shardingsphere.mask.rule.changed;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import
org.apache.shardingsphere.mode.event.dispatch.rule.alter.AlterRuleItemEvent;
-import
org.apache.shardingsphere.mode.event.dispatch.rule.drop.DropNamedRuleItemEvent;
+import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mask.config.MaskRuleConfiguration;
+import org.apache.shardingsphere.mask.config.rule.MaskColumnRuleConfiguration;
import org.apache.shardingsphere.mask.config.rule.MaskTableRuleConfiguration;
-import
org.apache.shardingsphere.mask.metadata.nodepath.MaskRuleNodePathProvider;
import org.apache.shardingsphere.mask.rule.MaskRule;
+import
org.apache.shardingsphere.mode.event.dispatch.rule.alter.AlterNamedRuleItemEvent;
+import
org.apache.shardingsphere.mode.event.dispatch.rule.alter.AlterRuleItemEvent;
+import
org.apache.shardingsphere.mode.event.dispatch.rule.drop.DropNamedRuleItemEvent;
+import
org.apache.shardingsphere.mode.spi.RuleItemConfigurationChangedProcessor;
import org.junit.jupiter.api.Test;
import java.util.Collections;
@@ -40,23 +43,25 @@ import static org.mockito.Mockito.when;
class MaskTableChangedProcessorTest {
+ private final MaskTableChangedProcessor processor =
(MaskTableChangedProcessor)
TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class,
"mask.tables");
+
@Test
void assertSwapRuleItemConfiguration() {
- assertThat(new
MaskTableChangedProcessor().swapRuleItemConfiguration(mock(AlterRuleItemEvent.class),
"name: test_table").getName(), is("test_table"));
+
assertThat(processor.swapRuleItemConfiguration(mock(AlterRuleItemEvent.class),
"name: test_table").getName(), is("test_table"));
}
@Test
void assertFindRuleConfigurationWhenRuleDoesNotExist() {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
when(database.getRuleMetaData().findSingleRule(MaskRule.class)).thenReturn(Optional.empty());
- assertTrue(new
MaskTableChangedProcessor().findRuleConfiguration(database).getMaskAlgorithms().isEmpty());
+
assertTrue(processor.findRuleConfiguration(database).getMaskAlgorithms().isEmpty());
}
@Test
void assertFindRuleConfigurationWhenTableDoesNotExist() {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
when(database.getRuleMetaData().findSingleRule(MaskRule.class)).thenReturn(Optional.of(new
MaskRule(new MaskRuleConfiguration(Collections.emptyList(),
Collections.emptyMap()))));
- assertTrue(new
MaskTableChangedProcessor().findRuleConfiguration(database).getTables().isEmpty());
+
assertTrue(processor.findRuleConfiguration(database).getTables().isEmpty());
}
@Test
@@ -65,19 +70,25 @@ class MaskTableChangedProcessorTest {
MaskRule maskRule = mock(MaskRule.class, RETURNS_DEEP_STUBS);
when(maskRule.getConfiguration().getTables()).thenReturn(Collections.singleton(new
MaskTableRuleConfiguration("foo_tbl", Collections.emptyList())));
when(database.getRuleMetaData().findSingleRule(MaskRule.class)).thenReturn(Optional.of(maskRule));
- assertFalse(new
MaskTableChangedProcessor().findRuleConfiguration(database).getTables().isEmpty());
+
assertFalse(processor.findRuleConfiguration(database).getTables().isEmpty());
}
@Test
- void assertDropRuleItemConfiguration() {
+ void assertChangeRuleItemConfiguration() {
MaskRuleConfiguration currentRuleConfig = new MaskRuleConfiguration(
new LinkedList<>(Collections.singleton(new
MaskTableRuleConfiguration("foo_tbl", Collections.emptyList()))),
Collections.emptyMap());
- new MaskTableChangedProcessor().dropRuleItemConfiguration(new
DropNamedRuleItemEvent("foo_db", "foo_tbl", ""), currentRuleConfig);
- assertTrue(currentRuleConfig.getTables().isEmpty());
+ MaskTableRuleConfiguration toBeChangedItemConfig = new
MaskTableRuleConfiguration("foo_tbl",
Collections.singleton(mock(MaskColumnRuleConfiguration.class)));
+ processor.changeRuleItemConfiguration(
+ new AlterNamedRuleItemEvent("foo_db", "foo_tbl", "key", "0",
""), currentRuleConfig, toBeChangedItemConfig);
+ assertThat(currentRuleConfig.getTables().size(), is(1));
+
assertThat(currentRuleConfig.getTables().iterator().next().getColumns().size(),
is(1));
}
@Test
- void assertGetType() {
- assertThat(new MaskTableChangedProcessor().getType(),
is(MaskRuleNodePathProvider.RULE_TYPE + "." + MaskRuleNodePathProvider.TABLES));
+ void assertDropRuleItemConfiguration() {
+ MaskRuleConfiguration currentRuleConfig = new MaskRuleConfiguration(
+ new LinkedList<>(Collections.singleton(new
MaskTableRuleConfiguration("foo_tbl", Collections.emptyList()))),
Collections.emptyMap());
+ processor.dropRuleItemConfiguration(new
DropNamedRuleItemEvent("foo_db", "foo_tbl", ""), currentRuleConfig);
+ assertTrue(currentRuleConfig.getTables().isEmpty());
}
}