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

sunnianjun 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 ad206082cd5 Refactor EncryptRule (#26443)
ad206082cd5 is described below

commit ad206082cd56980b96efb974c867d5d0fc3dbfd0
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jun 20 15:41:08 2023 +0800

    Refactor EncryptRule (#26443)
---
 .../generator/EncryptAlterTableTokenGenerator.java |  5 +-
 .../shardingsphere/encrypt/rule/EncryptColumn.java | 13 ++++--
 .../encrypt/rule/EncryptColumnItem.java            |  7 ++-
 .../shardingsphere/encrypt/rule/EncryptRule.java   | 21 ++++-----
 .../shardingsphere/encrypt/rule/EncryptTable.java  | 54 +++++++++++++---------
 ...atedEncryptShowCreateTableMergedResultTest.java |  4 +-
 ...rgedEncryptShowCreateTableMergedResultTest.java |  4 +-
 .../EncryptAlterTableTokenGeneratorTest.java       | 16 ++++---
 .../EncryptCreateTableTokenGeneratorTest.java      |  9 ++--
 .../encrypt/rule/EncryptColumnTest.java            | 41 ----------------
 .../encrypt/rule/EncryptTableTest.java             |  9 ++--
 11 files changed, 84 insertions(+), 99 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
index f82606b06f3..1db71f39e8f 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
@@ -18,6 +18,7 @@
 package org.apache.shardingsphere.encrypt.rewrite.token.generator;
 
 import lombok.Setter;
+import 
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
 import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptColumnAlterException;
 import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptAlterTableToken;
@@ -181,8 +182,8 @@ public final class EncryptAlterTableTokenGenerator 
implements CollectionSQLToken
     }
     
     private void isSameEncryptColumn(final EncryptTable encryptTable, final 
ChangeColumnDefinitionSegment segment) {
-        Optional<String> previousEncryptorName = 
encryptTable.findEncryptorName(segment.getPreviousColumn().getIdentifier().getValue());
-        Optional<String> currentEncryptorName = 
encryptTable.findEncryptorName(segment.getColumnDefinition().getColumnName().getIdentifier().getValue());
+        Optional<StandardEncryptAlgorithm<?, ?>> previousEncryptorName = 
encryptTable.findEncryptor(segment.getPreviousColumn().getIdentifier().getValue());
+        Optional<StandardEncryptAlgorithm<?, ?>> currentEncryptorName = 
encryptTable.findEncryptor(segment.getColumnDefinition().getColumnName().getIdentifier().getValue());
         if (!previousEncryptorName.isPresent() && 
!currentEncryptorName.isPresent()) {
             return;
         }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumn.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumn.java
index 485d45a0d4a..3f0ea9549c1 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumn.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumn.java
@@ -20,6 +20,9 @@ package org.apache.shardingsphere.encrypt.rule;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
+import 
org.apache.shardingsphere.encrypt.api.encrypt.assisted.AssistedEncryptAlgorithm;
+import org.apache.shardingsphere.encrypt.api.encrypt.like.LikeEncryptAlgorithm;
+import 
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
 
 import java.util.Optional;
 
@@ -33,18 +36,18 @@ public final class EncryptColumn {
     
     private final String name;
     
-    private final EncryptColumnItem cipher;
+    private final EncryptColumnItem<StandardEncryptAlgorithm<?, ?>> cipher;
     
-    private EncryptColumnItem assistedQuery;
+    private EncryptColumnItem<AssistedEncryptAlgorithm<?, ?>> assistedQuery;
     
-    private EncryptColumnItem likeQuery;
+    private EncryptColumnItem<LikeEncryptAlgorithm<?, ?>> likeQuery;
     
     /**
      * Get assisted query column item.
      *
      * @return assisted query column item
      */
-    public Optional<EncryptColumnItem> getAssistedQuery() {
+    public Optional<EncryptColumnItem<AssistedEncryptAlgorithm<?, ?>>> 
getAssistedQuery() {
         return Optional.ofNullable(assistedQuery);
     }
     
@@ -53,7 +56,7 @@ public final class EncryptColumn {
      *
      * @return like query column item
      */
-    public Optional<EncryptColumnItem> getLikeQuery() {
+    public Optional<EncryptColumnItem<LikeEncryptAlgorithm<?, ?>>> 
getLikeQuery() {
         return Optional.ofNullable(likeQuery);
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnItem.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnItem.java
index 36e0edf5eed..69f584f39f3 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnItem.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnItem.java
@@ -19,15 +19,18 @@ package org.apache.shardingsphere.encrypt.rule;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
 
 /**
  * Encrypt column item.
+ * 
+ * @param <T> type of encryptor
  */
 @RequiredArgsConstructor
 @Getter
-public final class EncryptColumnItem {
+public final class EncryptColumnItem<T extends EncryptAlgorithm<?, ?>> {
     
     private final String name;
     
-    private final String encryptorName;
+    private final T encryptor;
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
index 508332366e1..371f82465e8 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
@@ -56,10 +56,10 @@ public final class EncryptRule implements DatabaseRule, 
TableContainedRule {
     private final Map<String, StandardEncryptAlgorithm> standardEncryptors = 
new LinkedHashMap<>();
     
     @SuppressWarnings("rawtypes")
-    private final Map<String, LikeEncryptAlgorithm> likeEncryptors = new 
LinkedHashMap<>();
+    private final Map<String, AssistedEncryptAlgorithm> assistedEncryptors = 
new LinkedHashMap<>();
     
     @SuppressWarnings("rawtypes")
-    private final Map<String, AssistedEncryptAlgorithm> assistedEncryptors = 
new LinkedHashMap<>();
+    private final Map<String, LikeEncryptAlgorithm> likeEncryptors = new 
LinkedHashMap<>();
     
     private final Map<String, EncryptTable> tables = new LinkedHashMap<>();
     
@@ -70,7 +70,7 @@ public final class EncryptRule implements DatabaseRule, 
TableContainedRule {
         ruleConfig.getEncryptors().forEach((key, value) -> 
putAllEncryptors(key, TypedSPILoader.getService(EncryptAlgorithm.class, 
value.getType(), value.getProps())));
         for (EncryptTableRuleConfiguration each : ruleConfig.getTables()) {
             each.getColumns().forEach(this::checkEncryptAlgorithmType);
-            tables.put(each.getName().toLowerCase(), new EncryptTable(each));
+            tables.put(each.getName().toLowerCase(), new EncryptTable(each, 
standardEncryptors, assistedEncryptors, likeEncryptors));
             tableNamesMapper.put(each.getName());
         }
     }
@@ -86,7 +86,7 @@ public final class EncryptRule implements DatabaseRule, 
TableContainedRule {
         ruleConfig.getEncryptors().forEach((key, value) -> 
putAllEncryptors(key, TypedSPILoader.getService(EncryptAlgorithm.class, 
value.getType(), value.getProps())));
         for (EncryptTableRuleConfiguration each : ruleConfig.getTables()) {
             each.getColumns().forEach(this::checkEncryptAlgorithmType);
-            tables.put(each.getName().toLowerCase(), new EncryptTable(each));
+            tables.put(each.getName().toLowerCase(), new EncryptTable(each, 
standardEncryptors, assistedEncryptors, likeEncryptors));
             tableNamesMapper.put(each.getName());
         }
     }
@@ -96,12 +96,12 @@ public final class EncryptRule implements DatabaseRule, 
TableContainedRule {
         if (algorithm instanceof StandardEncryptAlgorithm) {
             standardEncryptors.put(encryptorName, (StandardEncryptAlgorithm) 
algorithm);
         }
-        if (algorithm instanceof LikeEncryptAlgorithm) {
-            likeEncryptors.put(encryptorName, (LikeEncryptAlgorithm) 
algorithm);
-        }
         if (algorithm instanceof AssistedEncryptAlgorithm) {
             assistedEncryptors.put(encryptorName, (AssistedEncryptAlgorithm) 
algorithm);
         }
+        if (algorithm instanceof LikeEncryptAlgorithm) {
+            likeEncryptors.put(encryptorName, (LikeEncryptAlgorithm) 
algorithm);
+        }
     }
     
     private void checkEncryptAlgorithmType(final 
EncryptColumnRuleConfiguration columnRuleConfig) {
@@ -199,8 +199,7 @@ public final class EncryptRule implements DatabaseRule, 
TableContainedRule {
     
     @SuppressWarnings("rawtypes")
     private StandardEncryptAlgorithm getStandardEncryptor(final String 
tableName, final String logicColumnName) {
-        return findEncryptTable(tableName).flatMap(optional -> 
optional.findEncryptorName(logicColumnName).map(standardEncryptors::get))
-                .orElseThrow(() -> new MissingEncryptorException(tableName, 
logicColumnName, "STANDARD"));
+        return findEncryptTable(tableName).flatMap(optional -> 
optional.findEncryptor(logicColumnName)).orElseThrow(() -> new 
MissingEncryptorException(tableName, logicColumnName, "STANDARD"));
     }
     
     /**
@@ -249,7 +248,7 @@ public final class EncryptRule implements DatabaseRule, 
TableContainedRule {
     
     @SuppressWarnings("rawtypes")
     private AssistedEncryptAlgorithm getAssistedQueryEncryptor(final String 
tableName, final String logicColumnName) {
-        return findEncryptTable(tableName).flatMap(optional -> 
optional.findAssistedQueryEncryptorName(logicColumnName).map(assistedEncryptors::get))
+        return findEncryptTable(tableName).flatMap(optional -> 
optional.findAssistedQueryEncryptor(logicColumnName))
                 .orElseThrow(() -> new MissingEncryptorException(tableName, 
logicColumnName, "ASSIST_QUERY"));
     }
     
@@ -298,7 +297,7 @@ public final class EncryptRule implements DatabaseRule, 
TableContainedRule {
     
     @SuppressWarnings("rawtypes")
     private LikeEncryptAlgorithm getLikeQueryEncryptor(final String tableName, 
final String logicColumnName) {
-        return findEncryptTable(tableName).flatMap(optional -> 
optional.findLikeQueryEncryptorName(logicColumnName).map(likeEncryptors::get))
+        return findEncryptTable(tableName).flatMap(optional -> 
optional.findLikeQueryEncryptor(logicColumnName))
                 .orElseThrow(() -> new MissingEncryptorException(tableName, 
logicColumnName, "LIKE_QUERY"));
     }
     
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
index 256a62815c7..3ba33852fb9 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
@@ -20,6 +20,9 @@ package org.apache.shardingsphere.encrypt.rule;
 import lombok.Getter;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
+import 
org.apache.shardingsphere.encrypt.api.encrypt.assisted.AssistedEncryptAlgorithm;
+import org.apache.shardingsphere.encrypt.api.encrypt.like.LikeEncryptAlgorithm;
+import 
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
 import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptColumnNotFoundException;
 import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptLogicColumnNotFoundException;
 import 
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
@@ -41,59 +44,66 @@ public final class EncryptTable {
     
     private final Map<String, EncryptColumn> columns;
     
-    public EncryptTable(final EncryptTableRuleConfiguration config) {
+    @SuppressWarnings("rawtypes")
+    public EncryptTable(final EncryptTableRuleConfiguration config, final 
Map<String, StandardEncryptAlgorithm> standardEncryptors,
+                        final Map<String, AssistedEncryptAlgorithm> 
assistedEncryptors, final Map<String, LikeEncryptAlgorithm> likeEncryptors) {
         table = config.getName();
-        columns = createEncryptColumns(config);
+        columns = createEncryptColumns(config, standardEncryptors, 
assistedEncryptors, likeEncryptors);
     }
     
-    private Map<String, EncryptColumn> createEncryptColumns(final 
EncryptTableRuleConfiguration config) {
+    @SuppressWarnings("rawtypes")
+    private Map<String, EncryptColumn> createEncryptColumns(final 
EncryptTableRuleConfiguration config, final Map<String, 
StandardEncryptAlgorithm> standardEncryptors,
+                                                            final Map<String, 
AssistedEncryptAlgorithm> assistedEncryptors, final Map<String, 
LikeEncryptAlgorithm> likeEncryptors) {
         Map<String, EncryptColumn> result = new 
TreeMap<>(String.CASE_INSENSITIVE_ORDER);
         for (EncryptColumnRuleConfiguration each : config.getColumns()) {
-            result.put(each.getName(), createEncryptColumn(each));
+            result.put(each.getName(), createEncryptColumn(each, 
standardEncryptors, assistedEncryptors, likeEncryptors));
         }
         return result;
     }
     
-    private EncryptColumn createEncryptColumn(final 
EncryptColumnRuleConfiguration config) {
-        EncryptColumnItem cipherColumnItem = new 
EncryptColumnItem(config.getCipher().getName(), 
config.getCipher().getEncryptorName());
-        EncryptColumn result = new EncryptColumn(config.getName(), 
cipherColumnItem);
+    @SuppressWarnings("rawtypes")
+    private EncryptColumn createEncryptColumn(final 
EncryptColumnRuleConfiguration config, final Map<String, 
StandardEncryptAlgorithm> standardEncryptors,
+                                              final Map<String, 
AssistedEncryptAlgorithm> assistedEncryptors, final Map<String, 
LikeEncryptAlgorithm> likeEncryptors) {
+        EncryptColumn result = new EncryptColumn(config.getName(),
+                new EncryptColumnItem<StandardEncryptAlgorithm<?, 
?>>(config.getCipher().getName(), 
standardEncryptors.get(config.getCipher().getEncryptorName())));
         if (config.getAssistedQuery().isPresent()) {
-            result.setAssistedQuery(new 
EncryptColumnItem(config.getAssistedQuery().get().getName(), 
config.getAssistedQuery().get().getEncryptorName()));
+            result.setAssistedQuery(
+                    new EncryptColumnItem<AssistedEncryptAlgorithm<?, 
?>>(config.getAssistedQuery().get().getName(), 
assistedEncryptors.get(config.getAssistedQuery().get().getEncryptorName())));
         }
         if (config.getLikeQuery().isPresent()) {
-            result.setLikeQuery(new 
EncryptColumnItem(config.getLikeQuery().get().getName(), 
config.getLikeQuery().get().getEncryptorName()));
+            result.setLikeQuery(new EncryptColumnItem<LikeEncryptAlgorithm<?, 
?>>(config.getLikeQuery().get().getName(), 
likeEncryptors.get(config.getLikeQuery().get().getEncryptorName())));
         }
         return result;
     }
     
     /**
-     * Find encryptor name.
+     * Find encryptor.
      *
      * @param logicColumnName logic column name
-     * @return encrypt algorithm name
+     * @return found encryptor
      */
-    public Optional<String> findEncryptorName(final String logicColumnName) {
-        return columns.containsKey(logicColumnName) ? 
Optional.of(columns.get(logicColumnName).getCipher().getEncryptorName()) : 
Optional.empty();
+    public Optional<StandardEncryptAlgorithm<?, ?>> findEncryptor(final String 
logicColumnName) {
+        return columns.containsKey(logicColumnName) ? 
Optional.of((StandardEncryptAlgorithm<?, ?>) 
columns.get(logicColumnName).getCipher().getEncryptor()) : Optional.empty();
     }
     
     /**
-     * Find assisted query encryptor name.
+     * Find assisted query encryptor.
      *
      * @param logicColumnName logic column name
-     * @return assist query encryptor name
+     * @return found assisted query encryptor
      */
-    public Optional<String> findAssistedQueryEncryptorName(final String 
logicColumnName) {
-        return columns.containsKey(logicColumnName) ? 
columns.get(logicColumnName).getAssistedQuery().map(EncryptColumnItem::getEncryptorName)
 : Optional.empty();
+    public Optional<AssistedEncryptAlgorithm<?, ?>> 
findAssistedQueryEncryptor(final String logicColumnName) {
+        return columns.containsKey(logicColumnName) ? 
columns.get(logicColumnName).getAssistedQuery().map(optional -> 
(AssistedEncryptAlgorithm<?, ?>) optional.getEncryptor()) : Optional.empty();
     }
     
     /**
-     * Find like query encrypt algorithm name.
+     * Find like query encryptor.
      *
      * @param logicColumnName logic column name
-     * @return like encrypt algorithm name
+     * @return found like query encryptor
      */
-    public Optional<String> findLikeQueryEncryptorName(final String 
logicColumnName) {
-        return columns.containsKey(logicColumnName) ? 
columns.get(logicColumnName).getLikeQuery().map(EncryptColumnItem::getEncryptorName)
 : Optional.empty();
+    public Optional<LikeEncryptAlgorithm<?, ?>> findLikeQueryEncryptor(final 
String logicColumnName) {
+        return columns.containsKey(logicColumnName) ? 
columns.get(logicColumnName).getLikeQuery().map(optional -> 
(LikeEncryptAlgorithm<?, ?>) optional.getEncryptor()) : Optional.empty();
     }
     
     /**
@@ -184,7 +194,7 @@ public final class EncryptTable {
     /**
      * Find like query column.
      *
-     * @param logicColumnName column name
+     * @param logicColumnName logic column name
      * @return like query column
      */
     public Optional<String> findLikeQueryColumn(final String logicColumnName) {
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
index 462b645c4c3..6858bf9f1a9 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
@@ -93,9 +93,9 @@ class DecoratedEncryptShowCreateTableMergedResultTest {
                         + " PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4;"));
     }
     
-    private EncryptRule mockEncryptRule(final 
Collection<EncryptColumnRuleConfiguration> encryptColumnRuleConfigurations) {
+    private EncryptRule mockEncryptRule(final 
Collection<EncryptColumnRuleConfiguration> encryptColumnRuleConfigs) {
         EncryptRule result = mock(EncryptRule.class);
-        EncryptTable encryptTable = new EncryptTable(new 
EncryptTableRuleConfiguration("t_encrypt", encryptColumnRuleConfigurations));
+        EncryptTable encryptTable = new EncryptTable(new 
EncryptTableRuleConfiguration("t_encrypt", encryptColumnRuleConfigs), 
Collections.emptyMap(), Collections.emptyMap(), Collections.emptyMap());
         
when(result.findEncryptTable("t_encrypt")).thenReturn(Optional.of(encryptTable));
         return result;
     }
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
index 7e47492844f..f01638ebacd 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
@@ -91,9 +91,9 @@ class MergedEncryptShowCreateTableMergedResultTest {
                         + " PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4;"));
     }
     
-    private EncryptRule mockEncryptRule(final 
Collection<EncryptColumnRuleConfiguration> columnRuleConfigurations) {
+    private EncryptRule mockEncryptRule(final 
Collection<EncryptColumnRuleConfiguration> columnRuleConfigs) {
         EncryptRule result = mock(EncryptRule.class);
-        EncryptTable encryptTable = new EncryptTable(new 
EncryptTableRuleConfiguration("t_encrypt", columnRuleConfigurations));
+        EncryptTable encryptTable = new EncryptTable(new 
EncryptTableRuleConfiguration("t_encrypt", columnRuleConfigs), 
Collections.emptyMap(), Collections.emptyMap(), Collections.emptyMap());
         
when(result.findEncryptTable("t_encrypt")).thenReturn(Optional.of(encryptTable));
         return result;
     }
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
index b3844207ac9..9cb592e3ddb 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
@@ -17,6 +17,9 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator;
 
+import 
org.apache.shardingsphere.encrypt.api.encrypt.assisted.AssistedEncryptAlgorithm;
+import org.apache.shardingsphere.encrypt.api.encrypt.like.LikeEncryptAlgorithm;
+import 
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptAlterTableToken;
 import org.apache.shardingsphere.encrypt.rule.EncryptColumn;
 import org.apache.shardingsphere.encrypt.rule.EncryptColumnItem;
@@ -79,16 +82,17 @@ class EncryptAlterTableTokenGeneratorTest {
     }
     
     private EncryptColumn mockEncryptColumn() {
-        EncryptColumn result = new EncryptColumn("certificate_number", new 
EncryptColumnItem("cipher_certificate_number", "test"));
-        result.setAssistedQuery(new 
EncryptColumnItem("assisted_certificate_number", "assisted_encryptor"));
-        result.setLikeQuery(new EncryptColumnItem("like_certificate_number", 
"like_encryptor"));
+        EncryptColumn result = new EncryptColumn("certificate_number", new 
EncryptColumnItem<StandardEncryptAlgorithm<?, ?>>("cipher_certificate_number", 
mock(StandardEncryptAlgorithm.class)));
+        result.setAssistedQuery(new 
EncryptColumnItem<AssistedEncryptAlgorithm<?, 
?>>("assisted_certificate_number", mock(AssistedEncryptAlgorithm.class)));
+        result.setLikeQuery(new EncryptColumnItem<LikeEncryptAlgorithm<?, 
?>>("like_certificate_number", mock(LikeEncryptAlgorithm.class)));
         return result;
     }
     
     private EncryptColumn mockNewEncryptColumn() {
-        EncryptColumn result = new EncryptColumn("certificate_number_new", new 
EncryptColumnItem("cipher_certificate_number_new", "test"));
-        result.setAssistedQuery(new 
EncryptColumnItem("assisted_certificate_number_new", "assisted_encryptor"));
-        result.setLikeQuery(new 
EncryptColumnItem("like_certificate_number_new", "like_encryptor"));
+        EncryptColumn result = new EncryptColumn(
+                "certificate_number_new", new 
EncryptColumnItem<StandardEncryptAlgorithm<?, 
?>>("cipher_certificate_number_new", mock(StandardEncryptAlgorithm.class)));
+        result.setAssistedQuery(new 
EncryptColumnItem<AssistedEncryptAlgorithm<?, 
?>>("assisted_certificate_number_new", mock(AssistedEncryptAlgorithm.class)));
+        result.setLikeQuery(new EncryptColumnItem<LikeEncryptAlgorithm<?, 
?>>("like_certificate_number_new", mock(LikeEncryptAlgorithm.class)));
         return result;
     }
     
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
index 3f300318a63..a801fac7dd3 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
@@ -17,6 +17,9 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator;
 
+import 
org.apache.shardingsphere.encrypt.api.encrypt.assisted.AssistedEncryptAlgorithm;
+import org.apache.shardingsphere.encrypt.api.encrypt.like.LikeEncryptAlgorithm;
+import 
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
 import org.apache.shardingsphere.encrypt.rule.EncryptColumn;
 import org.apache.shardingsphere.encrypt.rule.EncryptColumnItem;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
@@ -71,9 +74,9 @@ class EncryptCreateTableTokenGeneratorTest {
     }
     
     private EncryptColumn mockEncryptColumn() {
-        EncryptColumn result = new EncryptColumn("certificate_number", new 
EncryptColumnItem("cipher_certificate_number", "test"));
-        result.setAssistedQuery(new 
EncryptColumnItem("assisted_certificate_number", "assisted_encryptor"));
-        result.setLikeQuery(new EncryptColumnItem("like_certificate_number", 
"like_encryptor"));
+        EncryptColumn result = new EncryptColumn("certificate_number", new 
EncryptColumnItem<StandardEncryptAlgorithm<?, ?>>("cipher_certificate_number", 
mock(StandardEncryptAlgorithm.class)));
+        result.setAssistedQuery(new 
EncryptColumnItem<AssistedEncryptAlgorithm<?, 
?>>("assisted_certificate_number", mock(AssistedEncryptAlgorithm.class)));
+        result.setLikeQuery(new EncryptColumnItem<LikeEncryptAlgorithm<?, 
?>>("like_certificate_number", mock(LikeEncryptAlgorithm.class)));
         return result;
     }
     
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnTest.java
deleted file mode 100644
index 577c739356b..00000000000
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.shardingsphere.encrypt.rule;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-class EncryptColumnTest {
-    
-    @Test
-    void assertGetAssistedQueryColumn() {
-        EncryptColumn encryptColumn = new EncryptColumn("logicColumn", new 
EncryptColumnItem("cipherColumn", "encryptorName"));
-        encryptColumn.setLikeQuery(new EncryptColumnItem("likeQueryColumn", 
"like_encryptor"));
-        encryptColumn.setAssistedQuery(new 
EncryptColumnItem("assistedQueryColumn", "assisted_encryptor"));
-        assertTrue(encryptColumn.getAssistedQuery().isPresent());
-    }
-    
-    @Test
-    void assertGetLikeQueryColumn() {
-        EncryptColumn encryptColumn = new EncryptColumn("logicColumn", new 
EncryptColumnItem("cipherColumn", "encryptorName"));
-        encryptColumn.setAssistedQuery(new 
EncryptColumnItem("assistedQueryColumn", "assisted_encryptor"));
-        encryptColumn.setLikeQuery(new EncryptColumnItem("likeQueryColumn", 
"like_encryptor"));
-        assertTrue(encryptColumn.getLikeQuery().isPresent());
-    }
-}
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptTableTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptTableTest.java
index 39416e82134..c99c9b258f2 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptTableTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptTableTest.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.encrypt.rule;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnItemRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
+import 
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
 import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptLogicColumnNotFoundException;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -33,6 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.mock;
 
 class EncryptTableTest {
     
@@ -43,17 +45,18 @@ class EncryptTableTest {
         EncryptColumnRuleConfiguration columnRuleConfig = new 
EncryptColumnRuleConfiguration("logicColumn", new 
EncryptColumnItemRuleConfiguration("cipherColumn", "myEncryptor"));
         columnRuleConfig.setAssistedQuery(new 
EncryptColumnItemRuleConfiguration("assistedQueryColumn"));
         columnRuleConfig.setLikeQuery(new 
EncryptColumnItemRuleConfiguration("likeQueryColumn"));
-        encryptTable = new EncryptTable(new 
EncryptTableRuleConfiguration("t_encrypt", 
Collections.singleton(columnRuleConfig)));
+        encryptTable = new EncryptTable(new 
EncryptTableRuleConfiguration("t_encrypt",
+                Collections.singleton(columnRuleConfig)), 
Collections.singletonMap("myEncryptor", mock(StandardEncryptAlgorithm.class)), 
Collections.emptyMap(), Collections.emptyMap());
     }
     
     @Test
     void assertFindEncryptorName() {
-        assertTrue(encryptTable.findEncryptorName("logicColumn").isPresent());
+        assertTrue(encryptTable.findEncryptor("logicColumn").isPresent());
     }
     
     @Test
     void assertNotFindEncryptorName() {
-        
assertFalse(encryptTable.findEncryptorName("notExistLogicColumn").isPresent());
+        
assertFalse(encryptTable.findEncryptor("notExistLogicColumn").isPresent());
     }
     
     @Test

Reply via email to