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 a28969c3d8b Fix18970 (#19027)
a28969c3d8b is described below

commit a28969c3d8bb9ec4f2f90ee3720c6b560daa980f
Author: Da Xiang Huang <[email protected]>
AuthorDate: Sun Jul 24 00:06:47 2022 +0800

    Fix18970 (#19027)
    
    * add tests
    
    * split assertGenerateSQLTokens method
---
 ...eryAndPlainInsertColumnsTokenGeneratorTest.java | 41 +++++++++++++++++-----
 1 file changed, 33 insertions(+), 8 deletions(-)

diff --git 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/AssistQueryAndPlainInsertColumnsTokenGeneratorTest.java
 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/AssistQueryAndPlainInsertColumnsTokenGeneratorTest.java
index 58907728fec..0f5117334fb 100644
--- 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/AssistQueryAndPlainInsertColumnsTokenGeneratorTest.java
+++ 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/AssistQueryAndPlainInsertColumnsTokenGeneratorTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token;
 
+import java.util.Iterator;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.generator.AssistQueryAndPlainInsertColumnsTokenGenerator;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
@@ -42,34 +43,58 @@ import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
 public class AssistQueryAndPlainInsertColumnsTokenGeneratorTest {
-    
+
     @Test
     public void assertIsNotGenerateSQLTokenWithNotInsertStatementContext() {
         assertFalse(new 
AssistQueryAndPlainInsertColumnsTokenGenerator().isGenerateSQLToken(mock(SQLStatementContext.class)));
     }
-    
+
     @Test
     public void assertIsNotGenerateSQLTokenWithoutInsertColumns() {
         InsertStatementContext insertStatementContext = 
mock(InsertStatementContext.class, RETURNS_DEEP_STUBS);
         assertFalse(new 
AssistQueryAndPlainInsertColumnsTokenGenerator().isGenerateSQLToken(insertStatementContext));
     }
-    
+
     @Test
     public void assertIsGenerateSQLTokenWithInsertColumns() {
         InsertStatementContext insertStatementContext = 
mock(InsertStatementContext.class, RETURNS_DEEP_STUBS);
         when(insertStatementContext.containsInsertColumns()).thenReturn(true);
         assertTrue(new 
AssistQueryAndPlainInsertColumnsTokenGenerator().isGenerateSQLToken(insertStatementContext));
     }
-    
+
+    @Test
+    public void assertGenerateSQLTokensNotContainColumns() {
+        AssistQueryAndPlainInsertColumnsTokenGenerator tokenGenerator = new 
AssistQueryAndPlainInsertColumnsTokenGenerator();
+        tokenGenerator.setEncryptRule(mockEncryptRule());
+        InsertStatementContext insertStatementContext = 
mock(InsertStatementContext.class, RETURNS_DEEP_STUBS);
+        
when(insertStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue()).thenReturn("foo_tbl");
+        Collection<InsertColumnsToken> actual = 
tokenGenerator.generateSQLTokens(insertStatementContext);
+        assertTrue(actual.isEmpty());
+    }
+
     @Test
-    public void assertGenerateSQLTokens() {
+    public void assertGenerateSQLTokensNotExistColumns() {
+        AssistQueryAndPlainInsertColumnsTokenGenerator tokenGenerator = new 
AssistQueryAndPlainInsertColumnsTokenGenerator();
+        tokenGenerator.setEncryptRule(mockEncryptRule());
+        InsertStatementContext insertStatementContext = 
mockInsertStatementContext();
+        ColumnSegment columnSegment = mock(ColumnSegment.class, 
RETURNS_DEEP_STUBS);
+        when(columnSegment.getIdentifier().getValue()).thenReturn("bar_col");
+        
when(insertStatementContext.getSqlStatement().getColumns()).thenReturn(Collections.singleton(columnSegment));
+        Collection<InsertColumnsToken> actual = 
tokenGenerator.generateSQLTokens(insertStatementContext);
+        assertTrue(actual.isEmpty());
+    }
+
+    @Test
+    public void assertGenerateSQLTokensExistColumns() {
         AssistQueryAndPlainInsertColumnsTokenGenerator tokenGenerator = new 
AssistQueryAndPlainInsertColumnsTokenGenerator();
         tokenGenerator.setEncryptRule(mockEncryptRule());
         Collection<InsertColumnsToken> actual = 
tokenGenerator.generateSQLTokens(mockInsertStatementContext());
         assertThat(actual.size(), is(1));
-        // TODO add more assertions for actual value
+        Iterator<InsertColumnsToken> iterator = actual.iterator();
+        InsertColumnsToken insertColumnsToken = iterator.next();
+        assertThat(insertColumnsToken.getStartIndex(), is(1));
     }
-    
+
     private EncryptRule mockEncryptRule() {
         EncryptRule result = mock(EncryptRule.class);
         EncryptTable encryptTable = mock(EncryptTable.class);
@@ -78,7 +103,7 @@ public class 
AssistQueryAndPlainInsertColumnsTokenGeneratorTest {
         
when(result.findEncryptTable("foo_tbl")).thenReturn(Optional.of(encryptTable));
         return result;
     }
-    
+
     private InsertStatementContext mockInsertStatementContext() {
         InsertStatementContext result = mock(InsertStatementContext.class, 
RETURNS_DEEP_STUBS);
         
when(result.getSqlStatement().getTable().getTableName().getIdentifier().getValue()).thenReturn("foo_tbl");

Reply via email to