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 fb98043a9c3 Add more test cases on EncryptBinaryCondition (#33625)
fb98043a9c3 is described below

commit fb98043a9c356f39d824ecac01c522749a10282f
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Nov 12 14:00:27 2024 +0800

    Add more test cases on EncryptBinaryCondition (#33625)
    
    * Add more test cases on EncryptBinaryCondition
    
    * Add more test cases on EncryptBinaryCondition
---
 .../condition/impl/EncryptBinaryConditionTest.java | 42 +++++++++++++++++++---
 .../condition/impl/EncryptInConditionTest.java     | 11 +++---
 2 files changed, 42 insertions(+), 11 deletions(-)

diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/condition/impl/EncryptBinaryConditionTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/condition/impl/EncryptBinaryConditionTest.java
index 151340ab499..9a18fef1b85 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/condition/impl/EncryptBinaryConditionTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/condition/impl/EncryptBinaryConditionTest.java
@@ -17,20 +17,54 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.condition.impl;
 
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.FunctionSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.LiteralExpressionSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
 import org.junit.jupiter.api.Test;
 
 import java.util.Collections;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.mock;
 
 class EncryptBinaryConditionTest {
     
     @Test
-    void assertNewInstance() {
-        EncryptBinaryCondition actual = new EncryptBinaryCondition("col", 
null, null, 0, 0, new LiteralExpressionSegment(0, 0, 1));
-        assertThat(actual.getPositionIndexMap(), is(Collections.emptyMap()));
-        assertThat(actual.getPositionValueMap().size(), is(1));
+    void assertNewInstanceWithParameterMarkerExpression() {
+        EncryptBinaryCondition actual = new EncryptBinaryCondition("col", 
null, null, 0, 0, new ParameterMarkerExpressionSegment(0, 0, 1));
+        assertThat(actual.getPositionIndexMap(), 
is(Collections.singletonMap(0, 1)));
+        assertTrue(actual.getPositionValueMap().isEmpty());
+    }
+    
+    @Test
+    void assertNewInstanceWithLiteralExpression() {
+        EncryptBinaryCondition actual = new EncryptBinaryCondition("col", 
null, null, 0, 0, new LiteralExpressionSegment(0, 0, "foo"));
+        assertTrue(actual.getPositionIndexMap().isEmpty());
+        assertThat(actual.getPositionValueMap(), 
is(Collections.singletonMap(0, "foo")));
+    }
+    
+    @Test
+    void assertNewInstanceWithConcatFunctionExpression() {
+        FunctionSegment functionSegment = new FunctionSegment(0, 0, "CONCAT", 
"");
+        functionSegment.getParameters().add(new LiteralExpressionSegment(0, 0, 
"foo"));
+        functionSegment.getParameters().add(new 
ParameterMarkerExpressionSegment(0, 0, 1));
+        functionSegment.getParameters().add(mock(ExpressionSegment.class));
+        EncryptBinaryCondition actual = new EncryptBinaryCondition("col", 
null, null, 0, 0, functionSegment);
+        assertThat(actual.getPositionIndexMap(), 
is(Collections.singletonMap(1, 1)));
+        assertThat(actual.getPositionValueMap(), 
is(Collections.singletonMap(0, "foo")));
+    }
+    
+    @Test
+    void assertNewInstanceWithNotConcatFunctionExpression() {
+        FunctionSegment functionSegment = new FunctionSegment(0, 0, "SUBSTR", 
"");
+        functionSegment.getParameters().add(new LiteralExpressionSegment(0, 0, 
"foo"));
+        functionSegment.getParameters().add(new 
ParameterMarkerExpressionSegment(0, 0, 1));
+        functionSegment.getParameters().add(mock(ExpressionSegment.class));
+        EncryptBinaryCondition actual = new EncryptBinaryCondition("col", 
null, null, 0, 0, functionSegment);
+        assertTrue(actual.getPositionIndexMap().isEmpty());
+        assertTrue(actual.getPositionValueMap().isEmpty());
     }
 }
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/condition/impl/EncryptInConditionTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/condition/impl/EncryptInConditionTest.java
index 314c5f701d6..8653a506c33 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/condition/impl/EncryptInConditionTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/condition/impl/EncryptInConditionTest.java
@@ -23,6 +23,7 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simp
 import org.junit.jupiter.api.Test;
 
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -33,13 +34,9 @@ class EncryptInConditionTest {
     
     @Test
     void assertNewInstance() {
-        List<ExpressionSegment> expressions = Arrays.asList(new 
ParameterMarkerExpressionSegment(0, 0, 0), new LiteralExpressionSegment(0, 0, 
1),
-                new ParameterMarkerExpressionSegment(0, 0, 1), 
mock(ExpressionSegment.class));
+        List<ExpressionSegment> expressions = Arrays.asList(new 
ParameterMarkerExpressionSegment(0, 0, 0), new LiteralExpressionSegment(0, 0, 
"foo"), mock(ExpressionSegment.class));
         EncryptInCondition actual = new EncryptInCondition("foo_col", null, 0, 
0, expressions);
-        assertThat(actual.getPositionIndexMap().size(), is(2));
-        assertThat(actual.getPositionIndexMap().get(0), is(0));
-        assertThat(actual.getPositionIndexMap().get(2), is(1));
-        assertThat(actual.getPositionValueMap().size(), is(1));
-        assertThat(actual.getPositionValueMap().get(1), is(1));
+        assertThat(actual.getPositionIndexMap(), 
is(Collections.singletonMap(0, 0)));
+        assertThat(actual.getPositionValueMap(), 
is(Collections.singletonMap(1, "foo")));
     }
 }

Reply via email to