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

duanzhengqiang 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 45c244b1161 [Issue #20364]-Improve coverage for DeleteStatementHandler 
(#20875)
45c244b1161 is described below

commit 45c244b1161ab966bb3e8bedc2f65b6f751873fa
Author: Abhinav Koppula <[email protected]>
AuthorDate: Fri Sep 9 10:21:24 2022 +0530

    [Issue #20364]-Improve coverage for DeleteStatementHandler (#20875)
---
 .../handler/dml/DeleteStatementHandlerTest.java    | 82 ++++++++++++++++++----
 1 file changed, 69 insertions(+), 13 deletions(-)

diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/test/java/org/apache/shardingsphere/sql/parser/sql/dialect/handler/dml/DeleteStatementHandlerTest.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/test/java/org/apache/shardingsphere/sql/parser/sql/dialect/handler/dml/DeleteStatementHandlerTest.java
index 7a42fd3929f..2f9b3ddbce0 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/test/java/org/apache/shardingsphere/sql/parser/sql/dialect/handler/dml/DeleteStatementHandlerTest.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/test/java/org/apache/shardingsphere/sql/parser/sql/dialect/handler/dml/DeleteStatementHandlerTest.java
@@ -17,46 +17,102 @@
 
 package org.apache.shardingsphere.sql.parser.sql.dialect.handler.dml;
 
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+
+import java.util.LinkedList;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.OrderBySegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.pagination.limit.LimitSegment;
+import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OutputSegment;
+import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.WithSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLDeleteStatement;
+import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.dml.OpenGaussDeleteStatement;
+import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.OracleDeleteStatement;
+import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLDeleteStatement;
+import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.sql92.dml.SQL92DeleteStatement;
+import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.dml.SQLServerDeleteStatement;
 import org.junit.Test;
 
 import java.util.Collections;
 import java.util.Optional;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
 public final class DeleteStatementHandlerTest {
     
     @Test
-    public void assertGetOrderBySegmentWithOrderBySegmentForMySQL() {
+    public void assertGetOrderBySegmentForMySQL() {
         MySQLDeleteStatement deleteStatement = new MySQLDeleteStatement();
         deleteStatement.setOrderBy(new OrderBySegment(0, 0, 
Collections.emptyList()));
         Optional<OrderBySegment> orderBySegment = 
DeleteStatementHandler.getOrderBySegment(deleteStatement);
         assertTrue(orderBySegment.isPresent());
+        assertThat(orderBySegment.get(), 
is(deleteStatement.getOrderBy().get()));
+        assertFalse(DeleteStatementHandler.getOrderBySegment(new 
MySQLDeleteStatement()).isPresent());
     }
     
     @Test
-    public void assertGetOrderBySegmentWithoutOrderBySegmentForMySQL() {
-        MySQLDeleteStatement deleteStatement = new MySQLDeleteStatement();
-        Optional<OrderBySegment> orderBySegment = 
DeleteStatementHandler.getOrderBySegment(deleteStatement);
-        assertFalse(orderBySegment.isPresent());
+    public void assertGetOrderBySegmentForOtherDatabases() {
+        assertFalse(DeleteStatementHandler.getOrderBySegment(new 
OpenGaussDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getOrderBySegment(new 
OracleDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getOrderBySegment(new 
PostgreSQLDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getOrderBySegment(new 
SQL92DeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getOrderBySegment(new 
SQLServerDeleteStatement()).isPresent());
     }
     
     @Test
-    public void assertGetLimitSegmentWithLimitSegmentForMySQL() {
+    public void assertGetLimitSegmentForMySQL() {
         MySQLDeleteStatement deleteStatement = new MySQLDeleteStatement();
         deleteStatement.setLimit(new LimitSegment(0, 0, null, null));
         Optional<LimitSegment> limitSegment = 
DeleteStatementHandler.getLimitSegment(deleteStatement);
         assertTrue(limitSegment.isPresent());
+        assertThat(limitSegment.get(), is(deleteStatement.getLimit().get()));
+        assertFalse(DeleteStatementHandler.getLimitSegment(new 
MySQLDeleteStatement()).isPresent());
     }
     
     @Test
-    public void assertGetLimitSegmentWithoutLimitSegmentForMySQL() {
-        MySQLDeleteStatement deleteStatement = new MySQLDeleteStatement();
-        Optional<LimitSegment> limitSegment = 
DeleteStatementHandler.getLimitSegment(deleteStatement);
-        assertFalse(limitSegment.isPresent());
+    public void assertGetLimitSegmentForOtherDatabases() {
+        assertFalse(DeleteStatementHandler.getLimitSegment(new 
OpenGaussDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getLimitSegment(new 
OracleDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getLimitSegment(new 
PostgreSQLDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getLimitSegment(new 
SQL92DeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getLimitSegment(new 
SQLServerDeleteStatement()).isPresent());
+    }
+    
+    @Test
+    public void assertGetOutputSegmentForSQLServer() {
+        SQLServerDeleteStatement deleteStatement = new 
SQLServerDeleteStatement();
+        deleteStatement.setOutputSegment(new OutputSegment(0, 0));
+        Optional<OutputSegment> outputSegment = 
DeleteStatementHandler.getOutputSegment(deleteStatement);
+        assertTrue(outputSegment.isPresent());
+        assertThat(outputSegment.get(), 
is(deleteStatement.getOutputSegment().get()));
+        assertFalse(DeleteStatementHandler.getOutputSegment(new 
SQLServerDeleteStatement()).isPresent());
+    }
+    
+    @Test
+    public void assertGetOutputSegmentForOtherDatabases() {
+        assertFalse(DeleteStatementHandler.getOutputSegment(new 
MySQLDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getOutputSegment(new 
OpenGaussDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getOutputSegment(new 
OracleDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getOutputSegment(new 
PostgreSQLDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getOutputSegment(new 
SQL92DeleteStatement()).isPresent());
+    }
+    
+    @Test
+    public void assertGetWithSegmentForSQLServer() {
+        SQLServerDeleteStatement deleteStatement = new 
SQLServerDeleteStatement();
+        deleteStatement.setWithSegment(new WithSegment(0, 0, new 
LinkedList<>()));
+        Optional<WithSegment> withSegment = 
DeleteStatementHandler.getWithSegment(deleteStatement);
+        assertTrue(withSegment.isPresent());
+        assertThat(withSegment.get(), 
is(deleteStatement.getWithSegment().get()));
+        assertFalse(DeleteStatementHandler.getWithSegment(new 
SQLServerDeleteStatement()).isPresent());
+    }
+    
+    @Test
+    public void assertGetWithSegmentForOtherDatabases() {
+        assertFalse(DeleteStatementHandler.getWithSegment(new 
MySQLDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getWithSegment(new 
OpenGaussDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getWithSegment(new 
OracleDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getWithSegment(new 
PostgreSQLDeleteStatement()).isPresent());
+        assertFalse(DeleteStatementHandler.getWithSegment(new 
SQL92DeleteStatement()).isPresent());
     }
 }

Reply via email to