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 7595b2a46e2 Upgrade junit 5 on HBase checker test (#24682)
7595b2a46e2 is described below

commit 7595b2a46e29e02ff6ab6b2870c1ff7e65840b93
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Mar 20 13:46:23 2023 +0800

    Upgrade junit 5 on HBase checker test (#24682)
---
 ...CommonHeterogeneousSQLStatementCheckerTest.java |  91 +++++---------
 .../checker/HBaseDatabaseCheckerFactoryTest.java   |   5 +-
 .../HeterogeneousDeleteStatementCheckerTest.java   |  50 +++-----
 .../HeterogeneousInsertStatementCheckerTest.java   |  53 +++-----
 .../HeterogeneousSelectStatementCheckerTest.java   | 138 +++++++--------------
 .../HeterogeneousUpdateStatementCheckerTest.java   |  56 +++------
 6 files changed, 136 insertions(+), 257 deletions(-)

diff --git 
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/CommonHeterogeneousSQLStatementCheckerTest.java
 
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/CommonHeterogeneousSQLStatementCheckerTest.java
index 8fd840fed38..088855da509 100644
--- 
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/CommonHeterogeneousSQLStatementCheckerTest.java
+++ 
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/CommonHeterogeneousSQLStatementCheckerTest.java
@@ -22,115 +22,80 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BetweenE
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.predicate.WhereSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
 import java.util.Optional;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+
+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.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public final class CommonHeterogeneousSQLStatementCheckerTest {
     
     @Test
     public void assertIsSinglePoint() {
         SelectStatement sqlStatement = (SelectStatement) 
HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from 
t_order where rowKey = '1'");
-        CommonHeterogeneousSQLStatementChecker<SQLStatement> 
commonHeterogeneousSQLStatementChecker = new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement);
-        
commonHeterogeneousSQLStatementChecker.checkIsSinglePointQuery(sqlStatement.getWhere());
+        new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkIsSinglePointQuery(sqlStatement.getWhere());
     }
     
     @Test
     public void assertIsSinglePointWithErrorKey() {
         SelectStatement sqlStatement = (SelectStatement) 
HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from 
t_order where a = '1'");
-        CommonHeterogeneousSQLStatementChecker<SQLStatement> 
commonHeterogeneousSQLStatementChecker = new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement);
-        try {
-            
commonHeterogeneousSQLStatementChecker.checkIsSinglePointQuery(sqlStatement.getWhere());
-            fail();
-        } catch (IllegalArgumentException e) {
-            assertEquals(e.getMessage(), "a is not a allowed key");
-        }
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkIsSinglePointQuery(sqlStatement.getWhere()));
+        assertThat(ex.getMessage(), is("a is not a allowed key"));
     }
     
     @Test
     public void assertIsSinglePointWithErrorOperation() {
         SelectStatement sqlStatement = (SelectStatement) 
HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from 
t_order where rowKey between '1' and '2' ");
-        CommonHeterogeneousSQLStatementChecker<SQLStatement> 
commonHeterogeneousSQLStatementChecker = new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement);
-        try {
-            
commonHeterogeneousSQLStatementChecker.checkIsSinglePointQuery(sqlStatement.getWhere());
-            fail();
-        } catch (IllegalArgumentException e) {
-            assertEquals(e.getMessage(), "Only Support 
BinaryOperationExpression");
-        }
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkIsSinglePointQuery(sqlStatement.getWhere()));
+        assertThat(ex.getMessage(), is("Only Support 
BinaryOperationExpression"));
     }
     
     @Test
     public void assertInExpression() {
         SelectStatement sqlStatement = (SelectStatement) 
HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from 
t_order where rowKey in ('1', '2') ");
-        CommonHeterogeneousSQLStatementChecker<SQLStatement> 
commonHeterogeneousSQLStatementChecker = new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement);
         Optional<WhereSegment> whereSegment = sqlStatement.getWhere();
-        if (whereSegment.isPresent()) {
-            
commonHeterogeneousSQLStatementChecker.checkInExpressionIsExpected(whereSegment.get().getExpr());
-        } else {
-            fail();
-        }
+        assertTrue(whereSegment.isPresent());
+        new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkInExpressionIsExpected(whereSegment.get().getExpr());
     }
     
     @Test
     public void assertInExpressionWithNotIn() {
         SelectStatement sqlStatement = (SelectStatement) 
HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from 
t_order where rowKey not in ('1', '2') ");
-        CommonHeterogeneousSQLStatementChecker<SQLStatement> 
commonHeterogeneousSQLStatementChecker = new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement);
         Optional<WhereSegment> whereSegment = sqlStatement.getWhere();
-        if (whereSegment.isPresent()) {
-            try {
-                
commonHeterogeneousSQLStatementChecker.checkInExpressionIsExpected(whereSegment.get().getExpr());
-                fail();
-            } catch (IllegalArgumentException e) {
-                assertEquals(e.getMessage(), "Do not supported `not in`");
-            }
-        } else {
-            fail();
-        }
+        assertTrue(whereSegment.isPresent());
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkInExpressionIsExpected(whereSegment.get().getExpr()));
+        assertThat(ex.getMessage(), is("Do not supported `not in`"));
     }
     
     @Test
     public void assertInExpressionWithErrorKey() {
         SelectStatement sqlStatement = (SelectStatement) 
HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from 
t_order where a in ('1', '2') ");
-        CommonHeterogeneousSQLStatementChecker<SQLStatement> 
commonHeterogeneousSQLStatementChecker = new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement);
         Optional<WhereSegment> whereSegment = sqlStatement.getWhere();
-        if (whereSegment.isPresent()) {
-            try {
-                
commonHeterogeneousSQLStatementChecker.checkInExpressionIsExpected(whereSegment.get().getExpr());
-                fail();
-            } catch (IllegalArgumentException e) {
-                assertEquals(e.getMessage(), "a is not a allowed key");
-            }
-        } else {
-            fail();
-        }
+        assertTrue(whereSegment.isPresent());
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement).checkInExpressionIsExpected(whereSegment.get().getExpr()));
+        assertThat(ex.getMessage(), is("a is not a allowed key"));
     }
     
     @Test
     public void assertIsAllowExpressionSegment() {
         SelectStatement sqlStatement = (SelectStatement) 
HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from 
t_order where rowKey BETWEEN 'v1' AND 'v2' ");
-        CommonHeterogeneousSQLStatementChecker<SQLStatement> 
commonHeterogeneousSQLStatementChecker = new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement);
         Optional<WhereSegment> whereSegment = sqlStatement.getWhere();
-        if (whereSegment.isPresent()) {
-            BetweenExpression betweenExpression = (BetweenExpression) 
whereSegment.get().getExpr();
-            
assertTrue(commonHeterogeneousSQLStatementChecker.isAllowExpressionSegment(betweenExpression.getBetweenExpr()));
-            
assertTrue(commonHeterogeneousSQLStatementChecker.isAllowExpressionSegment(betweenExpression.getAndExpr()));
-        } else {
-            fail();
-        }
+        assertTrue(whereSegment.isPresent());
+        BetweenExpression betweenExpression = (BetweenExpression) 
whereSegment.get().getExpr();
+        CommonHeterogeneousSQLStatementChecker<SQLStatement> 
commonHeterogeneousSQLStatementChecker = new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement);
+        
assertTrue(commonHeterogeneousSQLStatementChecker.isAllowExpressionSegment(betweenExpression.getBetweenExpr()));
+        
assertTrue(commonHeterogeneousSQLStatementChecker.isAllowExpressionSegment(betweenExpression.getAndExpr()));
     }
     
     @Test
     public void assertIsAllowExpressionSegmentError() {
         SelectStatement sqlStatement = (SelectStatement) 
HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from 
t_order where rowKey = '1'");
-        CommonHeterogeneousSQLStatementChecker<SQLStatement> 
commonHeterogeneousSQLStatementChecker = new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement);
         Optional<WhereSegment> whereSegment = sqlStatement.getWhere();
-        if (whereSegment.isPresent()) {
-            
assertFalse(commonHeterogeneousSQLStatementChecker.isAllowExpressionSegment(whereSegment.get().getExpr()));
-        } else {
-            fail();
-        }
+        assertTrue(whereSegment.isPresent());
+        assertFalse(new 
CommonHeterogeneousSQLStatementChecker<>(sqlStatement).isAllowExpressionSegment(whereSegment.get().getExpr()));
     }
 }
diff --git 
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HBaseDatabaseCheckerFactoryTest.java
 
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HBaseDatabaseCheckerFactoryTest.java
index 8984f1c45f4..0248c871c7c 100644
--- 
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HBaseDatabaseCheckerFactoryTest.java
+++ 
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HBaseDatabaseCheckerFactoryTest.java
@@ -23,10 +23,11 @@ import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQ
 import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLInsertStatement;
 import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLSelectStatement;
 import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLUpdateStatement;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.mockito.Mockito.mock;
 
 public final class HBaseDatabaseCheckerFactoryTest {
diff --git 
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousDeleteStatementCheckerTest.java
 
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousDeleteStatementCheckerTest.java
index ee5bc56379a..c9d7b7e8bdf 100644
--- 
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousDeleteStatementCheckerTest.java
+++ 
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousDeleteStatementCheckerTest.java
@@ -19,79 +19,65 @@ package 
org.apache.shardingsphere.proxy.backend.hbase.checker;
 
 import 
org.apache.shardingsphere.proxy.backend.hbase.result.HBaseSupportedSQLStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 public final class HeterogeneousDeleteStatementCheckerTest {
     
-    @Rule
-    public ExpectedException expectedEx = ExpectedException.none();
-    
     @Test
     public void assertExecuteDeleteStatement() {
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(HBaseSupportedSQLStatement.getDeleteStatement());
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        HBaseCheckerFactory.newInstance(sqlStatement).execute();
     }
     
     @Test
     public void assertOperatorIsNotEqual() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Only Supported `=` operator");
         String sql = "delete /*+ hbase */ from t_test_order where rowKey > 1";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Only Supported `=` operator"));
     }
     
     @Test
     public void assertColumnIsNotRowKey() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("is not a allowed key");
         String sql = "delete /*+ hbase */ from t_test_order where age = 1";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("age is not a allowed key"));
     }
     
     @Test
     public void assertLeftIsNotColumn() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("left segment must is ColumnSegment");
         String sql = "delete /*+ hbase */ from t_test_order where 1 = 1";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("left segment must is ColumnSegment"));
     }
     
     @Test
     public void assertMultiExpression() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Do not supported Multiple expressions");
         String sql = "DELETE /*+ hbase */ FROM t_order WHERE order_id = ? AND 
user_id = ? AND status=?";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Do not supported Multiple 
expressions"));
     }
     
     @Test
     public void assertWithBetweenExpression() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Only Support BinaryOperationExpression");
         String sql = "DELETE /*+ hbase */ FROM t_order WHERE rowKey between 1 
and 5";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Only Support 
BinaryOperationExpression"));
     }
     
     @Test
     public void assertNotWhereSegment() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Must Have Where Segment");
         String sql = "DELETE /*+ hbase */ FROM t_order";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Must Have Where Segment"));
     }
 }
diff --git 
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousInsertStatementCheckerTest.java
 
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousInsertStatementCheckerTest.java
index 543ded8e1b9..384f1d0d1c9 100644
--- 
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousInsertStatementCheckerTest.java
+++ 
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousInsertStatementCheckerTest.java
@@ -19,87 +19,72 @@ package 
org.apache.shardingsphere.proxy.backend.hbase.checker;
 
 import 
org.apache.shardingsphere.proxy.backend.hbase.result.HBaseSupportedSQLStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 public final class HeterogeneousInsertStatementCheckerTest {
     
-    @Rule
-    public ExpectedException expectedEx = ExpectedException.none();
-    
     @Test
     public void assertExecuteInsertStatement() {
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(HBaseSupportedSQLStatement.getInsertStatement());
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        HBaseCheckerFactory.newInstance(sqlStatement).execute();
     }
     
     @Test
     public void assertInsertWithoutRowKey() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("First column must be rowKey");
         String sql = "INSERT /*+ HBase */ INTO t_order (order_id, user_id, 
status) VALUES (?, ?, ?)";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("First column must be rowKey"));
     }
     
     @Test
     public void assertInsertWithoutColumns() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("The inserted column must be explicitly 
specified");
         String sql = "INSERT /*+ HBase */ INTO t_order VALUES (?, ?, ?)";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("The inserted column must be explicitly 
specified"));
     }
     
     @Test
     public void assertInsertWithMultipleRowKey() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Cannot contain multiple rowKey");
         String sql = "INSERT /*+ HBase */ INTO t_order (rowKey, id, status) 
VALUES (?, ?, ?)";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Cannot contain multiple rowKey"));
     }
     
     @Test
     public void assertInsertWithOnDuplicateKey() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Do not supported ON DUPLICATE KEY UPDATE");
         String sql = "INSERT /*+ HBase */ INTO t_order (rowKey, user_id, 
status) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE status = ?";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Do not supported ON DUPLICATE KEY 
UPDATE"));
     }
     
     @Test
     public void assertInsertWithFunction() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Value must is literal or parameter marker");
         String sql = "INSERT /*+ HBase */ INTO t_order_item (rowKey, order_id, 
user_id, status, creation_date) VALUES (?, ?, ?, 'insert', now())";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Value must is literal or parameter 
marker"));
     }
     
     @Test
     public void assertInsertWithLiteralAndParameterMarker() {
         String sql = "INSERT /*+ HBase */ INTO t_order_item(rowKey, order_id, 
user_id, status, creation_date) VALUES (?, ?, ?, 'insert', '2017-08-08')";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        HBaseCheckerFactory.newInstance(sqlStatement).execute();
     }
     
     @Test
     public void assertInsertWithSubQuery() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Do not supported `insert into...select...`");
         String sql = "INSERT /*+ HBase */ INTO t_order_item(rowKey, order_id, 
user_id) select rowKey, order_id, user_id from t_order";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Do not supported `insert 
into...select...`"));
     }
 }
diff --git 
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSelectStatementCheckerTest.java
 
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSelectStatementCheckerTest.java
index 44ba3fbb630..a57ef12600d 100644
--- 
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSelectStatementCheckerTest.java
+++ 
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousSelectStatementCheckerTest.java
@@ -22,19 +22,18 @@ import 
org.apache.shardingsphere.proxy.backend.hbase.props.HBaseProperties;
 import org.apache.shardingsphere.proxy.backend.hbase.props.HBasePropertyKey;
 import 
org.apache.shardingsphere.proxy.backend.hbase.result.HBaseSupportedSQLStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 public final class HeterogeneousSelectStatementCheckerTest {
     
-    @Rule
-    public ExpectedException expectedEx = ExpectedException.none();
-    
-    @Before
+    @BeforeEach
     public void setUp() {
         HBaseProperties props = mock(HBaseProperties.class);
         
when(props.getValue(HBasePropertyKey.MAX_SCAN_LIMIT_SIZE)).thenReturn(5000L);
@@ -44,216 +43,175 @@ public final class 
HeterogeneousSelectStatementCheckerTest {
     @Test
     public void assertSelectStatement() {
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(HBaseSupportedSQLStatement.getSelectStatement());
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        HBaseCheckerFactory.newInstance(sqlStatement).execute();
     }
     
     @Test
     public void assertSelectStatementWithLargeRowCount() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("row count must less than 5000");
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from 
t_order where id = 1 limit 5001");
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("row count must less than 5000"));
     }
     
     @Test
     public void assertSelectStatementWithLimitSegment() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Do not supported offset segment");
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from 
t_order where id = 1 limit 5 offset 3");
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Do not supported offset segment"));
     }
     
     @Test
     public void assertSelectStatementWithLockSegment() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Do not supported lock segment");
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement("select /*+ hbase */ * from 
t_order where id = 1 lock in share mode");
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Do not supported lock segment"));
     }
     
     @Test
     public void assertSelectStatementWithFunction() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Only supported ShorthandProjection and 
ColumnProjection");
         String sql = "SELECT /*+ HBase */ sum(score) FROM person";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Only supported ShorthandProjection and 
ColumnProjection and crc32ExpressionProjection"));
     }
     
     @Test
     public void assertSelectStatementWithJoinStatement() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Only supported SimpleTableSegment");
         String sql = "SELECT /*+ HBase */ * FROM t_order o JOIN t_order_item i 
ON o.user_id = i.user_id AND o.order_id = i.order_id";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Only supported SimpleTableSegment"));
     }
     
     @Test
     public void assertSelectStatementWithMultipleInExpression() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("left segment must is ColumnSegment");
         String sql = "SELECT /*+ HBase */ * FROM t_order WHERE rowKey IN (?, 
?) AND id IN (?, ?)";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("left segment must is ColumnSegment"));
     }
     
     @Test
     public void assertSelectStatementWithInExpression() {
         String sql = "SELECT /*+ HBase */ * from t_order where rowKey in (1, 
2, 3)";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        HBaseCheckerFactory.newInstance(sqlStatement).execute();
     }
     
     @Test
     public void assertSelectStatementWithErrorKey() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("age is not a allowed key");
         String sql = "SELECT /*+ HBase */ * from t_order where age in (1, 2, 
3)";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("age is not a allowed key"));
     }
     
     @Test
     public void assertExecuteSelectWithNotIn() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Do not supported `not in`");
         String sql = "SELECT /*+ HBase */ * from t_order where rowKey not in 
(1, 2, 3)";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Do not supported `not in`"));
     }
     
     @Test
     public void assertExecuteSelectWithParameterMarker() {
         String sql = "SELECT /*+ HBase */ * from t_order where rowKey in (?, 
?, ?)";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        HBaseCheckerFactory.newInstance(sqlStatement).execute();
     }
     
     @Test
     public void assertSelectStatementUseCrc32() {
         String sql = "SELECT /*+ HBase */ crc32(concat_ws('#',rowKey)) from 
t_order where rowKey in (1, 2, 3)";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        HBaseCheckerFactory.newInstance(sqlStatement).execute();
     }
     
     @Test
     public void assertExecuteSelectWithErrorInExpression() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Only supported ListExpression");
         String sql = "SELECT /*+ HBase */ * from t_order where rowKey in 
(select rowKey from t_order_item)";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Only supported ListExpression"));
     }
     
     @Test
     public void assertExecuteSelectWithBetween() {
         String sql = "SELECT /*+ HBase */ * from t_order where rowKey between 
1 and 2";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        HBaseCheckerFactory.newInstance(sqlStatement).execute();
     }
     
     @Test
     public void assertExecuteSelectWithNotBetween() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Do not supported `not between...and...`");
         String sql = "SELECT /*+ HBase */ * from t_order where rowKey not 
between 1 and 2";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Do not supported `not 
between...and...`"));
     }
     
     @Test
     public void assertExecuteSelectWithBetweenErrorKey() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("age is not a allowed key");
         String sql = "SELECT /*+ HBase */ * from t_order where age between 1 
and 2";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("age is not a allowed key"));
     }
     
     @Test
     public void assertExecuteSelectWithErrorBetweenExpr() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("between expr must is literal or parameter 
marker");
         String sql = "SELECT /*+ HBase */ * from t_order where rowKey between 
1 and now()";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("between expr must is literal or 
parameter marker"));
     }
     
     @Test
     public void assertSelectWithGroupBy() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Do not supported group by segment");
         String sql = "SELECT /*+ HBase */ * from t_order group by order_id";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Do not supported group by segment"));
     }
     
     @Test
     public void assertSelectWithNotAllowOperator() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Only Supported `=` operator");
         String sql = "select /*+ hbase */ * from t_order where rowKey != 1";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Only Supported `=` operator"));
     }
     
     @Test
     public void assertSelectWithNotAllowColumn() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("age is not a allowed key");
         String sql = "select /*+ hbase */ * from t_order where age = 1";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("age is not a allowed key"));
     }
     
     @Test
     public void assertSelectWithMultipleExpression() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Do not supported Multiple expressions");
         String sql = "select /*+ hbase */ * from t_order where rowKey = 1 and 
age = 2";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Do not supported Multiple 
expressions"));
     }
     
     @Test
     public void assertSelectWithNotColumnExpression() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("left segment must is ColumnSegment");
         String sql = "select /*+ hbase */ * from t_order where 1 = 1";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("left segment must is ColumnSegment"));
     }
     
     @Test
     public void assertSelectWithParameterMarker() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Only supported ShorthandProjection and 
ColumnProjection");
         String sql = "select /*+ hbase */ rowKey, name, ? from t_order where 
rowKey = 'kid'";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Only supported ShorthandProjection and 
ColumnProjection and crc32ExpressionProjection"));
     }
 }
diff --git 
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementCheckerTest.java
 
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementCheckerTest.java
index 0ac5d34ebeb..34d24ce818d 100644
--- 
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementCheckerTest.java
+++ 
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementCheckerTest.java
@@ -19,89 +19,73 @@ package 
org.apache.shardingsphere.proxy.backend.hbase.checker;
 
 import 
org.apache.shardingsphere.proxy.backend.hbase.result.HBaseSupportedSQLStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 public final class HeterogeneousUpdateStatementCheckerTest {
     
-    @Rule
-    public ExpectedException expectedEx = ExpectedException.none();
-    
     @Test
     public void assertExecuteUpdateStatement() {
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(HBaseSupportedSQLStatement.getUpdateStatement());
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        HBaseCheckerFactory.newInstance(sqlStatement).execute();
     }
     
     @Test
     public void assertUpdateWithFunction() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Assigment must is literal or parameter 
marker");
         String sql = "update /*+ hbase */ t_test_order set age = 10, name = 
'bob', time = now() where rowKey = 1";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Assigment must is literal or parameter 
marker"));
     }
     
     @Test
     public void assertOperatorIsNotEqual() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Only Supported `=` operator");
         String sql = "update /*+ hbase */ t_test_order set age = 10 where 
rowKey > 1";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Only Supported `=` operator"));
     }
     
     @Test
     public void assertColumnIsNotRowKey() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("is not a allowed key");
         String sql = "update /*+ hbase */ t_test_order set age = 10 where age 
= 1";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("age is not a allowed key"));
     }
     
     @Test
     public void assertLeftIsNotColumn() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("left segment must is ColumnSegment");
         String sql = "update /*+ hbase */ t_test_order set age = 10 where 1 = 
1";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("left segment must is ColumnSegment"));
     }
     
     @Test
     public void assertMultiExpression() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Do not supported Multiple expressions");
         String sql = "update /*+ hbase */ t_test_order set age = 10 WHERE 
order_id = ? AND user_id = ? AND status=?";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Do not supported Multiple 
expressions"));
     }
     
     @Test
     public void assertNotWhereSegment() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Must Have Where Segment");
         String sql = "update /*+ hbase */ t_test_order set age = 10 ";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Must Have Where Segment"));
     }
     
     @Test
     public void assertUpdateRowKey() {
-        expectedEx.expect(IllegalArgumentException.class);
-        expectedEx.expectMessage("Do not allow update rowKey");
         String sql = "update /*+ hbase */ t_test_order set rowKey = 10 where 
rowKey = 'kid'";
         SQLStatement sqlStatement = 
HBaseSupportedSQLStatement.parseSQLStatement(sql);
-        HeterogeneousSQLStatementChecker<?> actual = 
HBaseCheckerFactory.newInstance(sqlStatement);
-        actual.execute();
+        Exception ex = assertThrows(IllegalArgumentException.class, () -> 
HBaseCheckerFactory.newInstance(sqlStatement).execute());
+        assertThat(ex.getMessage(), is("Do not allow update rowKey"));
     }
 }


Reply via email to