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")));
}
}