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

zhangliang 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 f489e895f50 Merge MergedEncryptShowCreateTableMergedResult and 
DecoratedEncryptShowCreateTableMergedResult into 
EncryptShowCreateTableMergedResult (#33603)
f489e895f50 is described below

commit f489e895f501755bf12174aa71d4ff81bb8a5d96
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Nov 9 11:53:34 2024 +0800

    Merge MergedEncryptShowCreateTableMergedResult and 
DecoratedEncryptShowCreateTableMergedResult into 
EncryptShowCreateTableMergedResult (#33603)
    
    * Add more test cases on EncryptShowColumnsMergedResult
    
    * Merge MergedEncryptShowColumnsMergedResult and 
DecoratedEncryptShowColumnsMergedResult
    
    * Merge MergedEncryptShowColumnsMergedResult and 
DecoratedEncryptShowColumnsMergedResult
    
    * Merge MergedEncryptShowCreateTableMergedResult and 
DecoratedEncryptShowCreateTableMergedResult into 
EncryptShowCreateTableMergedResult
    
    * Merge MergedEncryptShowCreateTableMergedResult and 
DecoratedEncryptShowCreateTableMergedResult into 
EncryptShowCreateTableMergedResult
    
    * Merge MergedEncryptShowCreateTableMergedResult and 
DecoratedEncryptShowCreateTableMergedResult into 
EncryptShowCreateTableMergedResult
    
    * Merge MergedEncryptShowCreateTableMergedResult and 
DecoratedEncryptShowCreateTableMergedResult into 
EncryptShowCreateTableMergedResult
---
 .../merge/dal/EncryptDALResultDecorator.java       |   7 +-
 ...ecoratedEncryptShowCreateTableMergedResult.java |  54 --------
 .../show/EncryptShowCreateTableMergedResult.java   |  29 +++--
 .../MergedEncryptShowCreateTableMergedResult.java  |  54 --------
 .../merge/dal/EncryptDALResultDecoratorTest.java   |   6 +-
 ...=> EncryptShowCreateTableMergedResultTest.java} |  20 +--
 ...rgedEncryptShowCreateTableMergedResultTest.java | 136 ---------------------
 7 files changed, 32 insertions(+), 274 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
index 9ec48af5266..167fdb45214 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
@@ -18,9 +18,8 @@
 package org.apache.shardingsphere.encrypt.merge.dal;
 
 import lombok.RequiredArgsConstructor;
-import 
org.apache.shardingsphere.encrypt.merge.dal.show.DecoratedEncryptShowCreateTableMergedResult;
 import 
org.apache.shardingsphere.encrypt.merge.dal.show.EncryptShowColumnsMergedResult;
-import 
org.apache.shardingsphere.encrypt.merge.dal.show.MergedEncryptShowCreateTableMergedResult;
+import 
org.apache.shardingsphere.encrypt.merge.dal.show.EncryptShowCreateTableMergedResult;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
@@ -48,7 +47,7 @@ public final class EncryptDALResultDecorator implements 
ResultDecorator<EncryptR
             return new EncryptShowColumnsMergedResult(new 
TransparentMergedResult(queryResult), sqlStatementContext, rule);
         }
         if (sqlStatement instanceof MySQLShowCreateTableStatement) {
-            return new 
MergedEncryptShowCreateTableMergedResult(globalRuleMetaData, queryResult, 
sqlStatementContext, rule);
+            return new EncryptShowCreateTableMergedResult(globalRuleMetaData, 
new TransparentMergedResult(queryResult), sqlStatementContext, rule);
         }
         return new TransparentMergedResult(queryResult);
     }
@@ -60,7 +59,7 @@ public final class EncryptDALResultDecorator implements 
ResultDecorator<EncryptR
             return new EncryptShowColumnsMergedResult(mergedResult, 
sqlStatementContext, rule);
         }
         if (sqlStatement instanceof MySQLShowCreateTableStatement) {
-            return new 
DecoratedEncryptShowCreateTableMergedResult(globalRuleMetaData, mergedResult, 
sqlStatementContext, rule);
+            return new EncryptShowCreateTableMergedResult(globalRuleMetaData, 
mergedResult, sqlStatementContext, rule);
         }
         return mergedResult;
     }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResult.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResult.java
deleted file mode 100644
index 2c8b6624cba..00000000000
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResult.java
+++ /dev/null
@@ -1,54 +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.merge.dal.show;
-
-import org.apache.shardingsphere.encrypt.rule.EncryptRule;
-import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
-import org.apache.shardingsphere.infra.merge.result.MergedResult;
-import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
-
-import java.sql.SQLException;
-
-/**
- * Decorated encrypt show create table merged result.
- */
-public final class DecoratedEncryptShowCreateTableMergedResult extends 
EncryptShowCreateTableMergedResult {
-    
-    private final MergedResult mergedResult;
-    
-    public DecoratedEncryptShowCreateTableMergedResult(final RuleMetaData 
globalRuleMetaData, final MergedResult mergedResult, final SQLStatementContext 
sqlStatementContext,
-                                                       final EncryptRule 
encryptRule) {
-        super(globalRuleMetaData, sqlStatementContext, encryptRule);
-        this.mergedResult = mergedResult;
-    }
-    
-    @Override
-    protected boolean nextValue() throws SQLException {
-        return mergedResult.next();
-    }
-    
-    @Override
-    protected Object getOriginalValue(final int columnIndex, final Class<?> 
type) throws SQLException {
-        return mergedResult.getValue(columnIndex, type);
-    }
-    
-    @Override
-    public boolean wasNull() throws SQLException {
-        return mergedResult.wasNull();
-    }
-}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
index 38df599b838..bdada6bdefe 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
@@ -43,35 +43,39 @@ import java.util.Optional;
 /**
  * Encrypt show create table merged result.
  */
-public abstract class EncryptShowCreateTableMergedResult implements 
MergedResult {
+public final class EncryptShowCreateTableMergedResult implements MergedResult {
     
     private static final String COMMA = ", ";
     
     private static final int CREATE_TABLE_DEFINITION_INDEX = 2;
     
+    private final MergedResult mergedResult;
+    
     private final String tableName;
     
     private final EncryptRule encryptRule;
     
     private final SQLParserEngine sqlParserEngine;
     
-    protected EncryptShowCreateTableMergedResult(final RuleMetaData 
globalRuleMetaData, final SQLStatementContext sqlStatementContext, final 
EncryptRule encryptRule) {
+    public EncryptShowCreateTableMergedResult(final RuleMetaData 
globalRuleMetaData, final MergedResult mergedResult,
+                                              final SQLStatementContext 
sqlStatementContext, final EncryptRule encryptRule) {
         ShardingSpherePreconditions.checkState(sqlStatementContext instanceof 
TableAvailable && 1 == ((TableAvailable) 
sqlStatementContext).getTablesContext().getSimpleTables().size(),
                 () -> new UnsupportedEncryptSQLException("SHOW CREATE TABLE 
FOR MULTI TABLE"));
+        this.mergedResult = mergedResult;
         tableName = ((TableAvailable) 
sqlStatementContext).getTablesContext().getSimpleTables().iterator().next().getTableName().getIdentifier().getValue();
         this.encryptRule = encryptRule;
         sqlParserEngine = 
globalRuleMetaData.getSingleRule(SQLParserRule.class).getSQLParserEngine(sqlStatementContext.getDatabaseType());
     }
     
     @Override
-    public final boolean next() throws SQLException {
-        return nextValue();
+    public boolean next() throws SQLException {
+        return mergedResult.next();
     }
     
     @Override
-    public final Object getValue(final int columnIndex, final Class<?> type) 
throws SQLException {
+    public Object getValue(final int columnIndex, final Class<?> type) throws 
SQLException {
         if (CREATE_TABLE_DEFINITION_INDEX == columnIndex) {
-            String result = getOriginalValue(CREATE_TABLE_DEFINITION_INDEX, 
type).toString();
+            String result = 
mergedResult.getValue(CREATE_TABLE_DEFINITION_INDEX, type).toString();
             Optional<EncryptTable> encryptTable = 
encryptRule.findEncryptTable(tableName);
             if (!encryptTable.isPresent() || !result.contains("(")) {
                 return result;
@@ -86,7 +90,7 @@ public abstract class EncryptShowCreateTableMergedResult 
implements MergedResult
             builder.delete(builder.length() - COMMA.length(), 
builder.length()).append(result.substring(columnDefinitions.get(columnDefinitions.size()
 - 1).getStopIndex() + 1));
             return builder.toString();
         }
-        return getOriginalValue(columnIndex, type);
+        return mergedResult.getValue(columnIndex, type);
     }
     
     private Optional<String> findLogicColumnDefinition(final 
ColumnDefinitionSegment columnDefinition, final EncryptTable encryptTable, 
final String sql) {
@@ -108,12 +112,12 @@ public abstract class EncryptShowCreateTableMergedResult 
implements MergedResult
     }
     
     @Override
-    public final Object getCalendarValue(final int columnIndex, final Class<?> 
type, final Calendar calendar) throws SQLException {
+    public Object getCalendarValue(final int columnIndex, final Class<?> type, 
final Calendar calendar) throws SQLException {
         throw new SQLFeatureNotSupportedException("");
     }
     
     @Override
-    public final InputStream getInputStream(final int columnIndex, final 
String type) throws SQLException {
+    public InputStream getInputStream(final int columnIndex, final String 
type) throws SQLException {
         throw new SQLFeatureNotSupportedException("");
     }
     
@@ -122,7 +126,8 @@ public abstract class EncryptShowCreateTableMergedResult 
implements MergedResult
         throw new SQLFeatureNotSupportedException("");
     }
     
-    protected abstract boolean nextValue() throws SQLException;
-    
-    protected abstract Object getOriginalValue(int columnIndex, Class<?> type) 
throws SQLException;
+    @Override
+    public boolean wasNull() throws SQLException {
+        return mergedResult.wasNull();
+    }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResult.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResult.java
deleted file mode 100644
index db7485ea2ec..00000000000
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResult.java
+++ /dev/null
@@ -1,54 +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.merge.dal.show;
-
-import org.apache.shardingsphere.encrypt.rule.EncryptRule;
-import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
-import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
-import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
-
-import java.sql.SQLException;
-
-/**
- * Merged encrypt show create table merged result.
- */
-public final class MergedEncryptShowCreateTableMergedResult extends 
EncryptShowCreateTableMergedResult {
-    
-    private final QueryResult queryResult;
-    
-    public MergedEncryptShowCreateTableMergedResult(final RuleMetaData 
globalRuleMetaData, final QueryResult queryResult, final SQLStatementContext 
sqlStatementContext,
-                                                    final EncryptRule 
encryptRule) {
-        super(globalRuleMetaData, sqlStatementContext, encryptRule);
-        this.queryResult = queryResult;
-    }
-    
-    @Override
-    protected boolean nextValue() throws SQLException {
-        return queryResult.next();
-    }
-    
-    @Override
-    protected Object getOriginalValue(final int columnIndex, final Class<?> 
type) throws SQLException {
-        return queryResult.getValue(columnIndex, type);
-    }
-    
-    @Override
-    public boolean wasNull() throws SQLException {
-        return queryResult.wasNull();
-    }
-}
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java
index efda9b4babe..252d75954a3 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java
@@ -17,9 +17,8 @@
 
 package org.apache.shardingsphere.encrypt.merge.dal;
 
-import 
org.apache.shardingsphere.encrypt.merge.dal.show.DecoratedEncryptShowCreateTableMergedResult;
 import 
org.apache.shardingsphere.encrypt.merge.dal.show.EncryptShowColumnsMergedResult;
-import 
org.apache.shardingsphere.encrypt.merge.dal.show.MergedEncryptShowCreateTableMergedResult;
+import 
org.apache.shardingsphere.encrypt.merge.dal.show.EncryptShowCreateTableMergedResult;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.dal.ExplainStatementContext;
@@ -82,8 +81,7 @@ class EncryptDALResultDecoratorTest {
         RuleMetaData ruleMetaData = mock(RuleMetaData.class);
         
when(ruleMetaData.getSingleRule(SQLParserRule.class)).thenReturn(mock(SQLParserRule.class));
         EncryptDALResultDecorator encryptDALResultDecorator = new 
EncryptDALResultDecorator(ruleMetaData);
-        assertThat(encryptDALResultDecorator.decorate(mock(QueryResult.class), 
sqlStatementContext, rule), 
instanceOf(MergedEncryptShowCreateTableMergedResult.class));
-        
assertThat(encryptDALResultDecorator.decorate(mock(MergedResult.class), 
sqlStatementContext, rule), 
instanceOf(DecoratedEncryptShowCreateTableMergedResult.class));
+        
assertThat(encryptDALResultDecorator.decorate(mock(MergedResult.class), 
sqlStatementContext, rule), 
instanceOf(EncryptShowCreateTableMergedResult.class));
     }
     
     @Test
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/EncryptShowCreateTableMergedResultTest.java
similarity index 86%
rename from 
features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
rename to 
features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResultTest.java
index 056d14559a9..fbef912fe40 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/EncryptShowCreateTableMergedResultTest.java
@@ -53,20 +53,20 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @ExtendWith(MockitoExtension.class)
-class DecoratedEncryptShowCreateTableMergedResultTest {
+class EncryptShowCreateTableMergedResultTest {
     
     @Mock
     private MergedResult mergedResult;
     
     @Test
     void assertNextWhenNextExist() throws SQLException {
-        
assertFalse(createDecoratedEncryptShowCreateTableMergedResult(mergedResult, 
mock(EncryptRule.class)).next());
+        assertFalse(createEncryptShowCreateTableMergedResult(mergedResult, 
mock(EncryptRule.class)).next());
     }
     
     @Test
     void assertNextWhenNextNotExist() throws SQLException {
         when(mergedResult.next()).thenReturn(true);
-        
assertTrue(createDecoratedEncryptShowCreateTableMergedResult(mergedResult, 
mock(EncryptRule.class)).next());
+        assertTrue(createEncryptShowCreateTableMergedResult(mergedResult, 
mock(EncryptRule.class)).next());
     }
     
     @Test
@@ -76,7 +76,7 @@ class DecoratedEncryptShowCreateTableMergedResultTest {
                 "CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id_cipher` 
FLOAT(10, 2) NOT NULL "
                         + "COMMENT ',123\\&/\\`\"abc', `order_id` VARCHAR(30) 
NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");
         EncryptColumnRuleConfiguration columnRuleConfig = new 
EncryptColumnRuleConfiguration("user_id", new 
EncryptColumnItemRuleConfiguration("user_id_cipher", "foo_encryptor"));
-        DecoratedEncryptShowCreateTableMergedResult actual = 
createDecoratedEncryptShowCreateTableMergedResult(mergedResult, 
mockEncryptRule(Collections.singleton(columnRuleConfig)));
+        EncryptShowCreateTableMergedResult actual = 
createEncryptShowCreateTableMergedResult(mergedResult, 
mockEncryptRule(Collections.singleton(columnRuleConfig)));
         assertTrue(actual.next());
         assertThat(actual.getValue(2, String.class),
                 is("CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id` 
FLOAT(10, 2) NOT NULL "
@@ -91,7 +91,7 @@ class DecoratedEncryptShowCreateTableMergedResultTest {
                         + "`user_id_assisted` VARCHAR(100) NOT NULL, 
`order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4;");
         EncryptColumnRuleConfiguration columnRuleConfig = new 
EncryptColumnRuleConfiguration("user_id", new 
EncryptColumnItemRuleConfiguration("user_id_cipher", "foo_encryptor"));
         columnRuleConfig.setAssistedQuery(new 
EncryptColumnItemRuleConfiguration("user_id_assisted", 
"foo_assist_query_encryptor"));
-        DecoratedEncryptShowCreateTableMergedResult actual = 
createDecoratedEncryptShowCreateTableMergedResult(mergedResult, 
mockEncryptRule(Collections.singleton(columnRuleConfig)));
+        EncryptShowCreateTableMergedResult actual = 
createEncryptShowCreateTableMergedResult(mergedResult, 
mockEncryptRule(Collections.singleton(columnRuleConfig)));
         assertTrue(actual.next());
         assertThat(actual.getValue(2, String.class),
                 is("CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id` 
VARCHAR(100) NOT NULL, `order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) 
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"));
@@ -104,7 +104,7 @@ class DecoratedEncryptShowCreateTableMergedResultTest {
                 + "`user_id_like` VARCHAR(100) NOT NULL, `order_id` 
VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4;");
         EncryptColumnRuleConfiguration columnRuleConfig = new 
EncryptColumnRuleConfiguration("user_id", new 
EncryptColumnItemRuleConfiguration("user_id_cipher", "foo_encryptor"));
         columnRuleConfig.setLikeQuery(new 
EncryptColumnItemRuleConfiguration("user_id_like", "foo_like_encryptor"));
-        DecoratedEncryptShowCreateTableMergedResult actual = 
createDecoratedEncryptShowCreateTableMergedResult(mergedResult, 
mockEncryptRule(Collections.singleton(columnRuleConfig)));
+        EncryptShowCreateTableMergedResult actual = 
createEncryptShowCreateTableMergedResult(mergedResult, 
mockEncryptRule(Collections.singleton(columnRuleConfig)));
         assertTrue(actual.next());
         assertThat(actual.getValue(2, String.class),
                 is("CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id` 
VARCHAR(100) NOT NULL, `order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) 
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"));
@@ -130,7 +130,7 @@ class DecoratedEncryptShowCreateTableMergedResultTest {
         EncryptColumnRuleConfiguration orderIdColumnConfig = new 
EncryptColumnRuleConfiguration("order_id", new 
EncryptColumnItemRuleConfiguration("order_id_cipher", "foo_encryptor"));
         orderIdColumnConfig.setLikeQuery(new 
EncryptColumnItemRuleConfiguration("order_id_like", "foo_like_encryptor"));
         columns.add(orderIdColumnConfig);
-        DecoratedEncryptShowCreateTableMergedResult actual = 
createDecoratedEncryptShowCreateTableMergedResult(mergedResult, 
mockEncryptRule(columns));
+        EncryptShowCreateTableMergedResult actual = 
createEncryptShowCreateTableMergedResult(mergedResult, 
mockEncryptRule(columns));
         assertTrue(actual.next());
         assertThat(actual.getValue(2, String.class),
                 is("CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id` 
VARCHAR(100) NOT NULL, `order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) 
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"));
@@ -138,10 +138,10 @@ class DecoratedEncryptShowCreateTableMergedResultTest {
     
     @Test
     void assertWasNull() throws SQLException {
-        
assertFalse(createDecoratedEncryptShowCreateTableMergedResult(mergedResult, 
mock(EncryptRule.class)).wasNull());
+        assertFalse(createEncryptShowCreateTableMergedResult(mergedResult, 
mock(EncryptRule.class)).wasNull());
     }
     
-    private DecoratedEncryptShowCreateTableMergedResult 
createDecoratedEncryptShowCreateTableMergedResult(final MergedResult 
mergedResult, final EncryptRule encryptRule) {
+    private EncryptShowCreateTableMergedResult 
createEncryptShowCreateTableMergedResult(final MergedResult mergedResult, final 
EncryptRule encryptRule) {
         ShowCreateTableStatementContext sqlStatementContext = 
mock(ShowCreateTableStatementContext.class, RETURNS_DEEP_STUBS);
         IdentifierValue identifierValue = new IdentifierValue("t_encrypt");
         TableNameSegment tableNameSegment = new TableNameSegment(1, 4, 
identifierValue);
@@ -150,6 +150,6 @@ class DecoratedEncryptShowCreateTableMergedResultTest {
         
when(sqlStatementContext.getDatabaseType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
 "MySQL"));
         RuleMetaData ruleMetaData = mock(RuleMetaData.class);
         when(ruleMetaData.getSingleRule(SQLParserRule.class)).thenReturn(new 
SQLParserRule(new SQLParserRuleConfiguration(new CacheOption(128, 1024L), new 
CacheOption(2000, 65535L))));
-        return new DecoratedEncryptShowCreateTableMergedResult(ruleMetaData, 
mergedResult, sqlStatementContext, encryptRule);
+        return new EncryptShowCreateTableMergedResult(ruleMetaData, 
mergedResult, sqlStatementContext, encryptRule);
     }
 }
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
deleted file mode 100644
index c250c4ee1a0..00000000000
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
+++ /dev/null
@@ -1,136 +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.merge.dal.show;
-
-import 
org.apache.shardingsphere.encrypt.config.rule.EncryptColumnItemRuleConfiguration;
-import 
org.apache.shardingsphere.encrypt.config.rule.EncryptColumnRuleConfiguration;
-import 
org.apache.shardingsphere.encrypt.config.rule.EncryptTableRuleConfiguration;
-import org.apache.shardingsphere.encrypt.rule.EncryptRule;
-import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
-import 
org.apache.shardingsphere.infra.binder.context.statement.dal.ShowCreateTableStatementContext;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
-import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
-import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.parser.config.SQLParserRuleConfiguration;
-import org.apache.shardingsphere.parser.rule.SQLParserRule;
-import org.apache.shardingsphere.sql.parser.api.CacheOption;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Mock;
-import org.mockito.junit.jupiter.MockitoExtension;
-
-import java.sql.SQLException;
-import java.util.Collection;
-import java.util.Collections;
-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.RETURNS_DEEP_STUBS;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-@ExtendWith(MockitoExtension.class)
-class MergedEncryptShowCreateTableMergedResultTest {
-    
-    @Mock
-    private QueryResult queryResult;
-    
-    @Test
-    void assertNextWhenNextExist() throws SQLException {
-        
assertFalse(createMergedEncryptShowCreateTableMergedResult(queryResult, 
mock(EncryptRule.class)).next());
-    }
-    
-    @Test
-    void assertNextWhenNextNotExist() throws SQLException {
-        when(queryResult.next()).thenReturn(true);
-        assertTrue(createMergedEncryptShowCreateTableMergedResult(queryResult, 
mock(EncryptRule.class)).next());
-    }
-    
-    @Test
-    void assertGetValueWhenConfigFloatDataTypeAndComment() throws SQLException 
{
-        when(queryResult.next()).thenReturn(true).thenReturn(false);
-        when(queryResult.getValue(2, String.class)).thenReturn(
-                "CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id_cipher` 
FLOAT(10, 2) NOT NULL "
-                        + "COMMENT ',123\\&/\\`\"abc', `order_id` VARCHAR(30) 
NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");
-        EncryptColumnRuleConfiguration columnRuleConfig = new 
EncryptColumnRuleConfiguration("user_id", new 
EncryptColumnItemRuleConfiguration("user_id_cipher", "foo_encryptor"));
-        MergedEncryptShowCreateTableMergedResult actual = 
createMergedEncryptShowCreateTableMergedResult(queryResult, 
mockEncryptRule(Collections.singleton(columnRuleConfig)));
-        assertTrue(actual.next());
-        assertThat(actual.getValue(2, String.class),
-                is("CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id` 
FLOAT(10, 2) NOT NULL "
-                        + "COMMENT ',123\\&/\\`\"abc', `order_id` VARCHAR(30) 
NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"));
-    }
-    
-    @Test
-    void assertGetValueWhenConfigAssistedQueryColumn() throws SQLException {
-        when(queryResult.next()).thenReturn(true).thenReturn(false);
-        when(queryResult.getValue(2, String.class)).thenReturn(
-                "CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id_cipher` 
VARCHAR(100) NOT NULL, "
-                        + "`user_id_assisted` VARCHAR(100) NOT NULL, 
`order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4;");
-        EncryptColumnRuleConfiguration columnRuleConfig = new 
EncryptColumnRuleConfiguration("user_id", new 
EncryptColumnItemRuleConfiguration("user_id_cipher", "foo_encryptor"));
-        columnRuleConfig.setAssistedQuery(new 
EncryptColumnItemRuleConfiguration("user_id_assisted", 
"foo_assist_query_encryptor"));
-        MergedEncryptShowCreateTableMergedResult actual = 
createMergedEncryptShowCreateTableMergedResult(queryResult, 
mockEncryptRule(Collections.singleton(columnRuleConfig)));
-        assertTrue(actual.next());
-        assertThat(actual.getValue(2, String.class),
-                is("CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id` 
VARCHAR(100) NOT NULL, `order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) 
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"));
-    }
-    
-    @Test
-    void assertGetValueWhenConfigLikeQueryColumn() throws SQLException {
-        when(queryResult.next()).thenReturn(true).thenReturn(false);
-        when(queryResult.getValue(2, String.class)).thenReturn(
-                "CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id_cipher` 
VARCHAR(100) NOT NULL, "
-                        + "`user_id_like` VARCHAR(100) NOT NULL, `order_id` 
VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4;");
-        EncryptColumnRuleConfiguration columnRuleConfig = new 
EncryptColumnRuleConfiguration("user_id", new 
EncryptColumnItemRuleConfiguration("user_id_cipher", "foo_encryptor"));
-        columnRuleConfig.setLikeQuery(new 
EncryptColumnItemRuleConfiguration("user_id_like", "foo_like_encryptor"));
-        MergedEncryptShowCreateTableMergedResult actual = 
createMergedEncryptShowCreateTableMergedResult(queryResult, 
mockEncryptRule(Collections.singleton(columnRuleConfig)));
-        assertTrue(actual.next());
-        assertThat(actual.getValue(2, String.class),
-                is("CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id` 
VARCHAR(100) NOT NULL, `order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) 
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"));
-    }
-    
-    private EncryptRule mockEncryptRule(final 
Collection<EncryptColumnRuleConfiguration> columnRuleConfigs) {
-        EncryptRule result = mock(EncryptRule.class);
-        EncryptTable encryptTable = new EncryptTable(new 
EncryptTableRuleConfiguration("t_encrypt", columnRuleConfigs), 
Collections.emptyMap());
-        
when(result.findEncryptTable("t_encrypt")).thenReturn(Optional.of(encryptTable));
-        return result;
-    }
-    
-    @Test
-    void assertWasNull() throws SQLException {
-        
assertFalse(createMergedEncryptShowCreateTableMergedResult(queryResult, 
mock(EncryptRule.class)).wasNull());
-    }
-    
-    private MergedEncryptShowCreateTableMergedResult 
createMergedEncryptShowCreateTableMergedResult(final QueryResult queryResult, 
final EncryptRule encryptRule) {
-        ShowCreateTableStatementContext sqlStatementContext = 
mock(ShowCreateTableStatementContext.class, RETURNS_DEEP_STUBS);
-        IdentifierValue identifierValue = new IdentifierValue("t_encrypt");
-        TableNameSegment tableNameSegment = new TableNameSegment(1, 4, 
identifierValue);
-        SimpleTableSegment simpleTableSegment = new 
SimpleTableSegment(tableNameSegment);
-        
when(sqlStatementContext.getTablesContext().getSimpleTables()).thenReturn(Collections.singleton(simpleTableSegment));
-        
when(sqlStatementContext.getDatabaseType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
 "MySQL"));
-        RuleMetaData ruleMetaData = mock(RuleMetaData.class);
-        when(ruleMetaData.getSingleRule(SQLParserRule.class)).thenReturn(new 
SQLParserRule(new SQLParserRuleConfiguration(new CacheOption(128, 1024L), new 
CacheOption(2000, 65535L))));
-        return new MergedEncryptShowCreateTableMergedResult(ruleMetaData, 
queryResult, sqlStatementContext, encryptRule);
-    }
-}

Reply via email to