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 4e3d9d6bd6f Use isA instead of instanceOf (#38056)
4e3d9d6bd6f is described below

commit 4e3d9d6bd6f6784e9b254ba1ca5c54dd58730caf
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Feb 16 14:46:07 2026 +0800

    Use isA instead of instanceOf (#38056)
    
    * Use isA instead of instanceOf
    
    * Use isA instead of instanceOf
    
    * Use isA instead of instanceOf
    
    * Use isA instead of instanceOf
---
 .../PostgreSQLVarcharArrayValueParserTest.java     |   4 +-
 .../util/ShardingValueTypeConvertUtilsTest.java    | 964 +++------------------
 .../infra/database/DatabaseTypeEngineTest.java     |   6 +-
 .../infra/rule/attribute/RuleAttributesTest.java   |   4 +-
 .../resultset/CircuitBreakerResultSetTest.java     |   4 +-
 .../CircuitBreakerPreparedStatementTest.java       |  10 +-
 .../statement/CircuitBreakerStatementTest.java     |   4 +-
 .../impl/MySQLBinlogUnsignedBigintHandlerTest.java |   6 +-
 .../impl/MySQLBinlogUnsignedIntHandlerTest.java    |   6 +-
 .../MySQLBinlogUnsignedMediumintHandlerTest.java   |   6 +-
 .../MySQLBinlogUnsignedSmallintHandlerTest.java    |   6 +-
 .../MySQLBinlogUnsignedTinyintHandlerTest.java     |   6 +-
 .../YamlCDCJobConfigurationSwapperTest.java        |   4 +-
 .../cdc/core/importer/CDCImporterTest.java         |   6 +-
 .../ConsistencyCheckJobItemContextTest.java        |   4 +-
 .../expression/impl/FunctionConverterTest.java     |   4 +-
 .../expression/impl/InExpressionConverterTest.java |   4 +-
 .../impl/MatchExpressionConverterTest.java         |   4 +-
 .../impl/TypeCastExpressionConverterTest.java      |   4 +-
 .../impl/WindowFunctionConverterTest.java          |   7 +-
 .../segment/from/impl/JoinTableConverterTest.java  |   4 +-
 .../from/impl/SimpleTableConverterTest.java        |   4 +-
 .../from/impl/SubqueryTableConverterTest.java      |   6 +-
 .../impl/AggregationProjectionConverterTest.java   |   6 +-
 .../impl/ColumnProjectionConverterTest.java        |   4 +-
 .../type/InsertStatementConverterTest.java         |  15 +-
 .../type/SelectStatementConverterTest.java         |  23 +-
 .../type/UpdateStatementConverterTest.java         |   8 +-
 .../enumerator/jdbc/JDBCDataRowEnumeratorTest.java |   5 +-
 .../memory/MemoryDataRowEnumeratorTest.java        |   4 +-
 .../StandardDatabaseProxyConnectorTest.java        |  30 +-
 .../ProxyJDBCExecutorCallbackFactoryTest.java      |   6 +-
 .../local/type/CommitProxyBackendHandlerTest.java  |   4 +-
 .../admin/FirebirdAdminExecutorCreatorTest.java    |  10 +-
 .../factory/MySQLShowAdminExecutorFactoryTest.java |   4 +-
 ...LSelectWithoutFromAdminExecutorFactoryTest.java |  20 +-
 .../ConsistencyCheckJobExecutorCallbackTest.java   |   6 +-
 37 files changed, 252 insertions(+), 970 deletions(-)

diff --git 
a/database/protocol/dialect/postgresql/src/test/java/org/apache/shardingsphere/database/protocol/postgresql/packet/command/query/extended/bind/protocol/text/impl/PostgreSQLVarcharArrayValueParserTest.java
 
b/database/protocol/dialect/postgresql/src/test/java/org/apache/shardingsphere/database/protocol/postgresql/packet/command/query/extended/bind/protocol/text/impl/PostgreSQLVarcharArrayValueParserTest.java
index 459c866796a..8e06b4f8b8e 100644
--- 
a/database/protocol/dialect/postgresql/src/test/java/org/apache/shardingsphere/database/protocol/postgresql/packet/command/query/extended/bind/protocol/text/impl/PostgreSQLVarcharArrayValueParserTest.java
+++ 
b/database/protocol/dialect/postgresql/src/test/java/org/apache/shardingsphere/database/protocol/postgresql/packet/command/query/extended/bind/protocol/text/impl/PostgreSQLVarcharArrayValueParserTest.java
@@ -24,9 +24,9 @@ import org.postgresql.util.PGobject;
 
 import java.sql.SQLException;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doThrow;
@@ -45,7 +45,7 @@ class PostgreSQLVarcharArrayValueParserTest {
     void assertParseThrowsOnSQLException() {
         try (MockedConstruction<PGobject> mocked = 
mockConstruction(PGobject.class, (mock, context) -> doThrow(new 
SQLException("failed")).when(mock).setValue(anyString()))) {
             SQLWrapperException ex = assertThrows(SQLWrapperException.class, 
() -> new PostgreSQLVarcharArrayValueParser().parse("bad"));
-            assertThat(ex.getCause(), instanceOf(SQLException.class));
+            assertThat(ex.getCause(), isA(SQLException.class));
             assertThat(mocked.constructed().size(), is(1));
         }
     }
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/util/ShardingValueTypeConvertUtilsTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/util/ShardingValueTypeConvertUtilsTest.java
index 7033daebbb9..ba21d295a06 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/util/ShardingValueTypeConvertUtilsTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/util/ShardingValueTypeConvertUtilsTest.java
@@ -17,10 +17,14 @@
 
 package org.apache.shardingsphere.sharding.util;
 
-import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.sql.Time;
+import java.sql.Timestamp;
 import java.time.Duration;
 import java.time.Instant;
 import java.time.LocalDate;
@@ -33,853 +37,137 @@ import java.time.ZoneId;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Date;
-import java.util.HashSet;
-import java.util.LinkedList;
+import java.util.stream.Stream;
 
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 
 class ShardingValueTypeConvertUtilsTest {
     
-    @Test
-    void assertConvertToTargetTypeWhenValueIsNull() {
-        assertThat(ShardingValueTypeConvertUtils.convertToTargetType(null, 
Integer.class), is(equalTo(null)));
+    @ParameterizedTest(name = "{0}")
+    @MethodSource("convertToTargetTypeArguments")
+    void assertConvertToTargetType(final String name, final Comparable<?> 
value, final Class<?> targetType, final Object expected) {
+        assertThat(ShardingValueTypeConvertUtils.convertToTargetType(value, 
targetType), is(expected));
     }
     
-    @Test
-    void assertConvertToTargetTypeWhenTypesMatch() {
-        Integer value = 100;
-        assertThat(ShardingValueTypeConvertUtils.convertToTargetType(value, 
Integer.class), is(equalTo(value)));
-    }
-    
-    @Test
-    void assertConvertToIntegerFromLong() {
-        Long value = 123L;
-        Integer result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Integer.class);
-        assertThat(result, is(equalTo(123)));
-        assertThat(result, instanceOf(Integer.class));
-    }
-    
-    @Test
-    void assertConvertToIntegerFromShort() {
-        Short value = 45;
-        Integer result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Integer.class);
-        assertThat(result, is(equalTo(45)));
-        assertThat(result, instanceOf(Integer.class));
-    }
-    
-    @Test
-    void assertConvertToIntegerFromByte() {
-        Byte value = 10;
-        Integer result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Integer.class);
-        assertThat(result, is(equalTo(10)));
-        assertThat(result, instanceOf(Integer.class));
-    }
-    
-    @Test
-    void assertConvertToIntegerFromDouble() {
-        Double value = 123.45;
-        Integer result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Integer.class);
-        assertThat(result, is(equalTo(123)));
-        assertThat(result, instanceOf(Integer.class));
-    }
-    
-    @Test
-    void assertConvertToIntegerFromFloat() {
-        Float value = 67.89f;
-        Integer result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Integer.class);
-        assertThat(result, is(equalTo(67)));
-        assertThat(result, instanceOf(Integer.class));
-    }
-    
-    @Test
-    void assertConvertToIntegerFromBigDecimal() {
-        BigDecimal value = new BigDecimal("999");
-        Integer result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Integer.class);
-        assertThat(result, is(equalTo(999)));
-        assertThat(result, instanceOf(Integer.class));
-    }
-    
-    @Test
-    void assertConvertToIntegerFromBigInteger() {
-        BigInteger value = BigInteger.valueOf(777);
-        Integer result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Integer.class);
-        assertThat(result, is(equalTo(777)));
-        assertThat(result, instanceOf(Integer.class));
-    }
-    
-    @Test
-    void assertConvertToIntegerFromString() {
-        String value = "555";
-        Integer result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Integer.class);
-        assertThat(result, is(equalTo(555)));
-        assertThat(result, instanceOf(Integer.class));
-    }
-    
-    @Test
-    void assertConvertToLongFromInteger() {
-        Integer value = 123456;
-        Long result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Long.class);
-        assertThat(result, is(equalTo(123456L)));
-        assertThat(result, instanceOf(Long.class));
-    }
-    
-    @Test
-    void assertConvertToLongFromShort() {
-        Short value = 789;
-        Long result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Long.class);
-        assertThat(result, is(equalTo(789L)));
-        assertThat(result, instanceOf(Long.class));
-    }
-    
-    @Test
-    void assertConvertToLongFromDouble() {
-        Double value = 12345.67;
-        Long result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Long.class);
-        assertThat(result, is(equalTo(12345L)));
-        assertThat(result, instanceOf(Long.class));
-    }
-    
-    @Test
-    void assertConvertToLongFromBigDecimal() {
-        BigDecimal value = new BigDecimal("9876543210");
-        Long result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Long.class);
-        assertThat(result, is(equalTo(9876543210L)));
-        assertThat(result, instanceOf(Long.class));
-    }
-    
-    @Test
-    void assertConvertToShortFromInteger() {
-        Integer value = 123;
-        Short result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Short.class);
-        assertThat(result, is(equalTo((short) 123)));
-        assertThat(result, instanceOf(Short.class));
-    }
-    
-    @Test
-    void assertConvertToShortFromLong() {
-        Long value = 456L;
-        Short result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Short.class);
-        assertThat(result, is(equalTo((short) 456)));
-        assertThat(result, instanceOf(Short.class));
-    }
-    
-    @Test
-    void assertConvertToByteFromInteger() {
-        Integer value = 100;
-        Byte result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Byte.class);
-        assertThat(result, is(equalTo((byte) 100)));
-        assertThat(result, instanceOf(Byte.class));
-    }
-    
-    @Test
-    void assertConvertToByteFromShort() {
-        Short value = 50;
-        Byte result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Byte.class);
-        assertThat(result, is(equalTo((byte) 50)));
-        assertThat(result, instanceOf(Byte.class));
-    }
-    
-    @Test
-    void assertConvertToDoubleFromInteger() {
-        Integer value = 123;
-        Double result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Double.class);
-        assertThat(result, is(equalTo(123.0)));
-        assertThat(result, instanceOf(Double.class));
-    }
-    
-    @Test
-    void assertConvertToDoubleFromLong() {
-        Long value = 456L;
-        Double result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Double.class);
-        assertThat(result, is(equalTo(456.0)));
-        assertThat(result, instanceOf(Double.class));
-    }
-    
-    @Test
-    void assertConvertToDoubleFromFloat() {
-        Float value = 78.9f;
-        Double result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Double.class);
-        assertThat(result, is(equalTo(78.9000015258789)));
-        assertThat(result, instanceOf(Double.class));
-    }
-    
-    @Test
-    void assertConvertToDoubleFromBigDecimal() {
-        BigDecimal value = new BigDecimal("123.456");
-        Double result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Double.class);
-        assertThat(result, is(equalTo(123.456)));
-        assertThat(result, instanceOf(Double.class));
-    }
-    
-    @Test
-    void assertConvertToFloatFromInteger() {
-        Integer value = 234;
-        Float result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Float.class);
-        assertThat(result, is(equalTo(234.0f)));
-        assertThat(result, instanceOf(Float.class));
-    }
-    
-    @Test
-    void assertConvertToFloatFromDouble() {
-        Double value = 56.78;
-        Float result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Float.class);
-        assertThat(result, is(equalTo(56.78f)));
-        assertThat(result, instanceOf(Float.class));
-    }
-    
-    @Test
-    void assertConvertToBigDecimalFromInteger() {
-        Integer value = 999;
-        BigDecimal result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, BigDecimal.class);
-        assertThat(result.compareTo(new BigDecimal("999")), is(equalTo(0)));
-        assertThat(result, instanceOf(BigDecimal.class));
-    }
-    
-    @Test
-    void assertConvertToBigDecimalFromLong() {
-        Long value = 888L;
-        BigDecimal result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, BigDecimal.class);
-        assertThat(result.compareTo(new BigDecimal("888")), is(equalTo(0)));
-        assertThat(result, instanceOf(BigDecimal.class));
-    }
-    
-    @Test
-    void assertConvertToBigDecimalFromDouble() {
-        Double value = 123.456;
-        BigDecimal result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, BigDecimal.class);
-        assertThat(result, is(equalTo(BigDecimal.valueOf(123.456))));
-        assertThat(result, instanceOf(BigDecimal.class));
-    }
-    
-    @Test
-    void assertConvertToBigDecimalFromBigInteger() {
-        BigInteger value = BigInteger.valueOf(12345);
-        BigDecimal result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, BigDecimal.class);
-        assertThat(result, is(equalTo(new BigDecimal("12345"))));
-        assertThat(result, instanceOf(BigDecimal.class));
-    }
-    
-    @Test
-    void assertConvertToBigDecimalFromString() {
-        String value = "999.888";
-        BigDecimal result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, BigDecimal.class);
-        assertThat(result, is(equalTo(new BigDecimal("999.888"))));
-        assertThat(result, instanceOf(BigDecimal.class));
-    }
-    
-    @Test
-    void assertConvertToBigIntegerFromInteger() {
-        Integer value = 777;
-        BigInteger result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, BigInteger.class);
-        assertThat(result, is(equalTo(BigInteger.valueOf(777))));
-        assertThat(result, instanceOf(BigInteger.class));
-    }
-    
-    @Test
-    void assertConvertToBigIntegerFromLong() {
-        Long value = 666L;
-        BigInteger result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, BigInteger.class);
-        assertThat(result, is(equalTo(BigInteger.valueOf(666))));
-        assertThat(result, instanceOf(BigInteger.class));
-    }
-    
-    @Test
-    void assertConvertToBigIntegerFromBigDecimal() {
-        BigDecimal value = new BigDecimal("555");
-        BigInteger result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, BigInteger.class);
-        assertThat(result, is(equalTo(BigInteger.valueOf(555))));
-        assertThat(result, instanceOf(BigInteger.class));
-    }
-    
-    @Test
-    void assertConvertToStringFromInteger() {
-        Integer value = 123;
-        String result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, String.class);
-        assertThat(result, is(equalTo("123")));
-        assertThat(result, instanceOf(String.class));
-    }
-    
-    @Test
-    void assertConvertToStringFromLong() {
-        Long value = 456L;
-        String result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, String.class);
-        assertThat(result, is(equalTo("456")));
-        assertThat(result, instanceOf(String.class));
-    }
-    
-    @Test
-    void assertConvertToStringFromDouble() {
-        Double value = 78.9;
-        String result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, String.class);
-        assertThat(result, is(equalTo("78.9")));
-        assertThat(result, instanceOf(String.class));
-    }
-    
-    @Test
-    void assertConvertToStringFromBigDecimal() {
-        BigDecimal value = new BigDecimal("123.456");
-        String result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, String.class);
-        assertThat(result, is(equalTo("123.456")));
-        assertThat(result, instanceOf(String.class));
-    }
-    
-    @Test
-    void assertConvertCollectionTypeToIntegers() {
-        Collection<Comparable<?>> source = Arrays.asList(1L, 2L, 3L, 4L);
-        Collection<Comparable<?>> result = 
ShardingValueTypeConvertUtils.convertCollectionType(source, Integer.class);
-        assertThat(result.size(), is(4));
-        for (Comparable<?> value : result) {
-            assertThat(value, instanceOf(Integer.class));
+    @ParameterizedTest(name = "{0}")
+    @MethodSource("convertCollectionTypeArguments")
+    void assertConvertCollectionType(final String name, final 
Collection<Comparable<?>> source, final Class<?> targetType, final int 
expectedSize, final Class<?> expectedElementType) {
+        Collection<Comparable<?>> actual = 
ShardingValueTypeConvertUtils.convertCollectionType(source, targetType);
+        assertThat(actual.size(), is(expectedSize));
+        for (Comparable<?> each : actual) {
+            assertThat(each, isA(expectedElementType));
         }
     }
     
-    @Test
-    void assertConvertCollectionTypeToLongs() {
-        Collection<Comparable<?>> source = Arrays.asList(100, 200, 300);
-        Collection<Comparable<?>> result = 
ShardingValueTypeConvertUtils.convertCollectionType(source, Long.class);
-        assertThat(result.size(), is(3));
-        for (Comparable<?> value : result) {
-            assertThat(value, instanceOf(Long.class));
-        }
-    }
-    
-    @Test
-    void assertConvertCollectionTypeToDoubles() {
-        Collection<Comparable<?>> source = Arrays.asList(10, 20, 30);
-        Collection<Comparable<?>> result = 
ShardingValueTypeConvertUtils.convertCollectionType(source, Double.class);
-        assertThat(result.size(), is(3));
-        for (Comparable<?> value : result) {
-            assertThat(value, instanceOf(Double.class));
-        }
-    }
-    
-    @Test
-    void assertConvertCollectionTypeToStrings() {
-        Collection<Comparable<?>> source = Arrays.asList(123, 456, 789);
-        Collection<Comparable<?>> result = 
ShardingValueTypeConvertUtils.convertCollectionType(source, String.class);
-        assertThat(result.size(), is(3));
-        assertThat(new LinkedList<>(result).get(0), is(equalTo("123")));
-        assertThat(new LinkedList<>(result).get(1), is(equalTo("456")));
-        assertThat(new LinkedList<>(result).get(2), is(equalTo("789")));
-    }
-    
-    @Test
-    void assertConvertCollectionTypeWithMixedNumericTypes() {
-        Collection<Comparable<?>> source = Arrays.asList(1, 2L, 3.0, 4.0f);
-        Collection<Comparable<?>> result = 
ShardingValueTypeConvertUtils.convertCollectionType(source, Integer.class);
-        assertThat(result.size(), is(4));
-        for (Comparable<?> value : result) {
-            assertThat(value, instanceOf(Integer.class));
-        }
-    }
-    
-    @Test
-    void assertConvertCollectionTypeEmptyCollection() {
-        Collection<Comparable<?>> source = new HashSet<>();
-        Collection<Comparable<?>> result = 
ShardingValueTypeConvertUtils.convertCollectionType(source, Integer.class);
-        assertThat(result.isEmpty(), is(true));
-    }
-    
-    @Test
-    void assertConvertCollectionTypeToBigDecimal() {
-        Collection<Comparable<?>> source = Arrays.asList(100, 200L, 300.5);
-        Collection<Comparable<?>> result = 
ShardingValueTypeConvertUtils.convertCollectionType(source, BigDecimal.class);
-        assertThat(result.size(), is(3));
-        for (Comparable<?> value : result) {
-            assertThat(value, instanceOf(BigDecimal.class));
-        }
-    }
-    
-    @Test
-    void assertConvertCollectionTypeToBigInteger() {
-        Collection<Comparable<?>> source = Arrays.asList(100, 200L, 300);
-        Collection<Comparable<?>> result = 
ShardingValueTypeConvertUtils.convertCollectionType(source, BigInteger.class);
-        assertThat(result.size(), is(3));
-        for (Comparable<?> value : result) {
-            assertThat(value, instanceOf(BigInteger.class));
-        }
-    }
-    
-    @Test
-    void assertConvertToBooleanFromInteger() {
-        Integer value = 1;
-        Boolean result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Boolean.class);
-        assertThat(result, is(equalTo(true)));
-        assertThat(result, instanceOf(Boolean.class));
-    }
-    
-    @Test
-    void assertConvertToBooleanFromIntegerZero() {
-        Integer value = 0;
-        Boolean result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Boolean.class);
-        assertThat(result, is(equalTo(false)));
-        assertThat(result, instanceOf(Boolean.class));
-    }
-    
-    @Test
-    void assertConvertToBooleanFromStringTrue() {
-        String value = "true";
-        Boolean result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Boolean.class);
-        assertThat(result, is(equalTo(true)));
-        assertThat(result, instanceOf(Boolean.class));
-    }
-    
-    @Test
-    void assertConvertToBooleanFromStringFalse() {
-        String value = "false";
-        Boolean result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Boolean.class);
-        assertThat(result, is(equalTo(false)));
-        assertThat(result, instanceOf(Boolean.class));
-    }
-    
-    @Test
-    void assertConvertToBooleanFromStringOne() {
-        String value = "1";
-        Boolean result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Boolean.class);
-        assertThat(result, is(equalTo(true)));
-        assertThat(result, instanceOf(Boolean.class));
-    }
-    
-    @Test
-    void assertConvertToBooleanFromStringZero() {
-        String value = "0";
-        Boolean result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Boolean.class);
-        assertThat(result, is(equalTo(false)));
-        assertThat(result, instanceOf(Boolean.class));
-    }
-    
-    @Test
-    void assertConvertToCharacterFromInteger() {
-        Integer value = 65;
-        Character result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Character.class);
-        assertThat(result, is(equalTo('A')));
-        assertThat(result, instanceOf(Character.class));
-    }
-    
-    @Test
-    void assertConvertToCharacterFromString() {
-        String value = "X";
-        Character result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Character.class);
-        assertThat(result, is(equalTo('X')));
-        assertThat(result, instanceOf(Character.class));
-    }
-    
-    @Test
-    void assertConvertToCharacterFromEmptyString() {
-        String value = "";
-        Character result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Character.class);
-        assertThat(result, is(equalTo('\0')));
-        assertThat(result, instanceOf(Character.class));
-    }
-    
-    @Test
-    void assertConvertToDateFromLong() {
-        Long value = 1704067200000L;
-        Date result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Date.class);
-        assertThat(result, instanceOf(Date.class));
-        assertThat(result.getTime(), is(equalTo(value)));
-    }
-    
-    @Test
-    void assertConvertToDateFromLocalDateTime() {
-        LocalDateTime value = LocalDateTime.of(2024, 1, 1, 0, 0);
-        Date result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Date.class);
-        assertThat(result, instanceOf(Date.class));
-    }
-    
-    @Test
-    void assertConvertToDateFromLocalDate() {
-        LocalDate value = LocalDate.of(2024, 1, 1);
-        Date result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Date.class);
-        assertThat(result, instanceOf(Date.class));
-    }
-    
-    @Test
-    void assertConvertToDateFromInstant() {
-        Instant value = Instant.parse("2024-01-01T00:00:00Z");
-        Date result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Date.class);
-        assertThat(result, instanceOf(Date.class));
-        assertThat(result.toInstant(), is(equalTo(value)));
-    }
-    
-    @Test
-    void assertConvertToSqlDateFromLocalDate() {
-        LocalDate value = LocalDate.of(2024, 1, 1);
-        java.sql.Date result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, java.sql.Date.class);
-        assertThat(result, instanceOf(java.sql.Date.class));
-        assertThat(result.toLocalDate(), is(equalTo(value)));
-    }
-    
-    @Test
-    void assertConvertToSqlDateFromDate() {
-        Date value = new Date();
-        java.sql.Date result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, java.sql.Date.class);
-        assertThat(result, instanceOf(java.sql.Date.class));
-    }
-    
-    @Test
-    void assertConvertToSqlTimeFromLocalTime() {
-        LocalTime value = LocalTime.of(12, 30, 45);
-        java.sql.Time result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, java.sql.Time.class);
-        assertThat(result, instanceOf(java.sql.Time.class));
-        assertThat(result.toLocalTime(), is(equalTo(value)));
-    }
-    
-    @Test
-    void assertConvertToTimestampFromLocalDateTime() {
-        LocalDateTime value = LocalDateTime.of(2024, 1, 1, 12, 30, 45);
-        java.sql.Timestamp result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, 
java.sql.Timestamp.class);
-        assertThat(result, instanceOf(java.sql.Timestamp.class));
-        assertThat(result.toLocalDateTime(), is(equalTo(value)));
-    }
-    
-    @Test
-    void assertConvertToTimestampFromInstant() {
-        Instant value = Instant.parse("2024-01-01T12:30:45Z");
-        java.sql.Timestamp result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, 
java.sql.Timestamp.class);
-        assertThat(result, instanceOf(java.sql.Timestamp.class));
-    }
-    
-    @Test
-    void assertConvertToLocalDateFromDate() {
-        Date value = new Date();
-        LocalDate result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, LocalDate.class);
-        assertThat(result, instanceOf(LocalDate.class));
-    }
-    
-    @Test
-    void assertConvertToLocalDateFromLocalDateTime() {
-        LocalDateTime value = LocalDateTime.of(2024, 1, 1, 12, 30, 45);
-        LocalDate result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, LocalDate.class);
-        assertThat(result, is(equalTo(LocalDate.of(2024, 1, 1))));
-        assertThat(result, instanceOf(LocalDate.class));
-    }
-    
-    @Test
-    void assertConvertToLocalDateFromSqlDate() {
-        java.sql.Date value = java.sql.Date.valueOf("2024-01-01");
-        LocalDate result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, LocalDate.class);
-        assertThat(result, is(equalTo(LocalDate.of(2024, 1, 1))));
-        assertThat(result, instanceOf(LocalDate.class));
-    }
-    
-    @Test
-    void assertConvertToLocalTimeFromSqlTime() {
-        java.sql.Time value = java.sql.Time.valueOf("12:30:45");
-        LocalTime result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, LocalTime.class);
-        assertThat(result, is(equalTo(LocalTime.of(12, 30, 45))));
-        assertThat(result, instanceOf(LocalTime.class));
-    }
-    
-    @Test
-    void assertConvertToLocalTimeFromLocalDateTime() {
-        LocalDateTime value = LocalDateTime.of(2024, 1, 1, 12, 30, 45);
-        LocalTime result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, LocalTime.class);
-        assertThat(result, is(equalTo(LocalTime.of(12, 30, 45))));
-        assertThat(result, instanceOf(LocalTime.class));
-    }
-    
-    @Test
-    void assertConvertToLocalDateTimeFromDate() {
-        Date value = new Date();
-        LocalDateTime result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, LocalDateTime.class);
-        assertThat(result, instanceOf(LocalDateTime.class));
-    }
-    
-    @Test
-    void assertConvertToLocalDateTimeFromLocalDate() {
-        LocalDate value = LocalDate.of(2024, 1, 1);
-        LocalDateTime result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, LocalDateTime.class);
-        assertThat(result, is(equalTo(LocalDateTime.of(2024, 1, 1, 0, 0))));
-        assertThat(result, instanceOf(LocalDateTime.class));
-    }
-    
-    @Test
-    void assertConvertToLocalDateTimeFromTimestamp() {
-        java.sql.Timestamp value = java.sql.Timestamp.valueOf("2024-01-01 
12:30:45");
-        LocalDateTime result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, LocalDateTime.class);
-        assertThat(result, is(equalTo(LocalDateTime.of(2024, 1, 1, 12, 30, 
45))));
-        assertThat(result, instanceOf(LocalDateTime.class));
-    }
-    
-    @Test
-    void assertConvertToInstantFromDate() {
-        Date value = new Date();
-        Instant result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Instant.class);
-        assertThat(result, is(equalTo(value.toInstant())));
-        assertThat(result, instanceOf(Instant.class));
-    }
-    
-    @Test
-    void assertConvertToInstantFromLong() {
-        Long value = 1704067200000L;
-        Instant result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Instant.class);
-        assertThat(result, is(equalTo(Instant.ofEpochMilli(value))));
-        assertThat(result, instanceOf(Instant.class));
-    }
-    
-    @Test
-    void assertConvertToYearFromInteger() {
-        Integer value = 2024;
-        Year result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Year.class);
-        assertThat(result, is(equalTo(Year.of(2024))));
-        assertThat(result, instanceOf(Year.class));
-    }
-    
-    @Test
-    void assertConvertToYearFromLocalDate() {
-        LocalDate value = LocalDate.of(2024, 6, 15);
-        Year result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Year.class);
-        assertThat(result, is(equalTo(Year.of(2024))));
-        assertThat(result, instanceOf(Year.class));
-    }
-    
-    @Test
-    void assertConvertToYearMonthFromLocalDate() {
-        LocalDate value = LocalDate.of(2024, 6, 15);
-        YearMonth result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, YearMonth.class);
-        assertThat(result, is(equalTo(YearMonth.of(2024, 6))));
-        assertThat(result, instanceOf(YearMonth.class));
-    }
-    
-    @Test
-    void assertConvertToMonthDayFromLocalDate() {
-        LocalDate value = LocalDate.of(2024, 6, 15);
-        MonthDay result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, MonthDay.class);
-        assertThat(result, is(equalTo(MonthDay.of(6, 15))));
-        assertThat(result, instanceOf(MonthDay.class));
-    }
-    
-    @Test
-    void assertConvertToDurationFromLong() {
-        Long value = 5000L;
-        Duration result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Duration.class);
-        assertThat(result, is(equalTo(Duration.ofMillis(5000L))));
-        assertThat(result, instanceOf(Duration.class));
-    }
-    
-    @Test
-    void assertConvertToDurationFromString() {
-        String value = "PT60S";
-        Duration result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Duration.class);
-        assertThat(result, is(equalTo(Duration.ofSeconds(60))));
-        assertThat(result, instanceOf(Duration.class));
-    }
-    
-    @Test
-    void assertConvertCollectionTypeToLocalDates() {
-        Collection<Comparable<?>> source = Arrays.asList(
-                LocalDate.of(2024, 1, 1),
-                LocalDate.of(2024, 2, 1),
-                LocalDate.of(2024, 3, 1));
-        Collection<Comparable<?>> result = 
ShardingValueTypeConvertUtils.convertCollectionType(source, Year.class);
-        assertThat(result.size(), is(3));
-        for (Comparable<?> value : result) {
-            assertThat(value, instanceOf(Year.class));
-        }
-    }
-    
-    @Test
-    void assertConvertCollectionTypeToBooleans() {
-        Collection<Comparable<?>> source = Arrays.asList(1, 0, 2, "true");
-        Collection<Comparable<?>> result = 
ShardingValueTypeConvertUtils.convertCollectionType(source, Boolean.class);
-        assertThat(result.size(), is(4));
-        for (Comparable<?> value : result) {
-            assertThat(value, instanceOf(Boolean.class));
-        }
-    }
-    
-    @Test
-    void assertConvertCollectionTypeToDurations() {
-        Collection<Comparable<?>> source = Arrays.asList(1000L, 2000L, 3000L);
-        Collection<Comparable<?>> result = 
ShardingValueTypeConvertUtils.convertCollectionType(source, Duration.class);
-        assertThat(result.size(), is(3));
-        for (Comparable<?> value : result) {
-            assertThat(value, instanceOf(Duration.class));
-        }
-    }
-    
-    // ========== String to Type Conversion Tests (non-duplicate) ==========
-    
-    @Test
-    void assertConvertToLongFromString() {
-        String value = "123456789";
-        Long result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Long.class);
-        assertThat(result, is(equalTo(123456789L)));
-        assertThat(result, instanceOf(Long.class));
-    }
-    
-    @Test
-    void assertConvertToShortFromString() {
-        String value = "123";
-        Short result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Short.class);
-        assertThat(result, is(equalTo((short) 123)));
-        assertThat(result, instanceOf(Short.class));
-    }
-    
-    @Test
-    void assertConvertToByteFromString() {
-        String value = "100";
-        Byte result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Byte.class);
-        assertThat(result, is(equalTo((byte) 100)));
-        assertThat(result, instanceOf(Byte.class));
-    }
-    
-    @Test
-    void assertConvertToDoubleFromString() {
-        String value = "123.456";
-        Double result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Double.class);
-        assertThat(result, is(equalTo(123.456)));
-        assertThat(result, instanceOf(Double.class));
-    }
-    
-    @Test
-    void assertConvertToFloatFromString() {
-        String value = "78.9";
-        Float result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Float.class);
-        assertThat(result, is(equalTo(78.9f)));
-        assertThat(result, instanceOf(Float.class));
-    }
-    
-    @Test
-    void assertConvertToBigIntegerFromString() {
-        String value = "123456789";
-        BigInteger result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, BigInteger.class);
-        assertThat(result, is(equalTo(BigInteger.valueOf(123456789))));
-        assertThat(result, instanceOf(BigInteger.class));
-    }
-    
-    @Test
-    void assertConvertToBooleanFromStringUpperCase() {
-        String value = "TRUE";
-        Boolean result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Boolean.class);
-        assertThat(result, is(equalTo(true)));
-        assertThat(result, instanceOf(Boolean.class));
-    }
-    
-    @Test
-    void assertConvertToDateFromStringLocalDate() {
-        String value = "2024-08-05";
-        Date result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Date.class);
-        assertThat(result, instanceOf(Date.class));
-    }
-    
-    @Test
-    void assertConvertToDateFromStringLocalDateTime() {
-        String value = "2024-08-05T12:30:45";
-        Date result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Date.class);
-        assertThat(result, instanceOf(Date.class));
-    }
-    
-    @Test
-    void assertConvertToDateFromStringInstant() {
-        String value = "2024-08-05T12:30:45Z";
-        Date result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Date.class);
-        assertThat(result, instanceOf(Date.class));
-    }
-    
-    @Test
-    void assertConvertToSqlDateFromStringLocalDate() {
-        String value = "2024-08-05";
-        java.sql.Date result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, java.sql.Date.class);
-        assertThat(result, instanceOf(java.sql.Date.class));
-        assertThat(result.toLocalDate(), is(equalTo(LocalDate.of(2024, 8, 
5))));
-    }
-    
-    @Test
-    void assertConvertToSqlTimeFromString() {
-        String value = "12:30:45";
-        java.sql.Time result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, java.sql.Time.class);
-        assertThat(result, instanceOf(java.sql.Time.class));
-        assertThat(result.toLocalTime(), is(equalTo(LocalTime.of(12, 30, 
45))));
-    }
-    
-    @Test
-    void assertConvertToTimestampFromString() {
-        String value = "2024-08-05T12:30:45";
-        java.sql.Timestamp result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, 
java.sql.Timestamp.class);
-        assertThat(result, instanceOf(java.sql.Timestamp.class));
-    }
-    
-    @Test
-    void assertConvertToLocalDateFromString() {
-        String value = "2024-08-05";
-        LocalDate result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, LocalDate.class);
-        assertThat(result, is(equalTo(LocalDate.of(2024, 8, 5))));
-        assertThat(result, instanceOf(LocalDate.class));
-    }
-    
-    @Test
-    void assertConvertToLocalDateFromStringDateTime() {
-        String value = "2024-08-05T12:30:45";
-        LocalDate result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, LocalDate.class);
-        assertThat(result, is(equalTo(LocalDate.of(2024, 8, 5))));
-        assertThat(result, instanceOf(LocalDate.class));
-    }
-    
-    @Test
-    void assertConvertToLocalTimeFromString() {
-        String value = "12:30:45";
-        LocalTime result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, LocalTime.class);
-        assertThat(result, is(equalTo(LocalTime.of(12, 30, 45))));
-        assertThat(result, instanceOf(LocalTime.class));
-    }
-    
-    @Test
-    void assertConvertToLocalDateTimeFromString() {
-        String value = "2024-08-05T12:30:45";
-        LocalDateTime result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, LocalDateTime.class);
-        assertThat(result, is(equalTo(LocalDateTime.of(2024, 8, 5, 12, 30, 
45))));
-        assertThat(result, instanceOf(LocalDateTime.class));
-    }
-    
-    @Test
-    void assertConvertToInstantFromString() {
-        String value = "2024-08-05T12:30:45Z";
-        Instant result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Instant.class);
-        assertThat(result, instanceOf(Instant.class));
-    }
-    
-    @Test
-    void assertConvertToInstantFromStringLocalDate() {
-        String value = "2024-08-05";
-        Instant result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Instant.class);
-        assertThat(result, instanceOf(Instant.class));
-        assertThat(result.atZone(ZoneId.systemDefault()).toLocalDate(), 
is(equalTo(LocalDate.of(2024, 8, 5))));
-    }
-    
-    @Test
-    void assertConvertToYearFromString() {
-        String value = "2024";
-        Year result = ShardingValueTypeConvertUtils.convertToTargetType(value, 
Year.class);
-        assertThat(result, is(equalTo(Year.of(2024))));
-        assertThat(result, instanceOf(Year.class));
-    }
-    
-    @Test
-    void assertConvertToYearMonthFromString() {
-        String value = "2024-08";
-        YearMonth result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, YearMonth.class);
-        assertThat(result, is(equalTo(YearMonth.of(2024, 8))));
-        assertThat(result, instanceOf(YearMonth.class));
-    }
-    
-    @Test
-    void assertConvertToMonthDayFromString() {
-        String value = "--08-05";
-        MonthDay result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, MonthDay.class);
-        assertThat(result, is(equalTo(MonthDay.of(8, 5))));
-        assertThat(result, instanceOf(MonthDay.class));
-    }
-    
-    @Test
-    void assertConvertToDurationFromStringSeconds() {
-        String value = "PT60S";
-        Duration result = 
ShardingValueTypeConvertUtils.convertToTargetType(value, Duration.class);
-        assertThat(result, is(equalTo(Duration.ofSeconds(60))));
-        assertThat(result, instanceOf(Duration.class));
+    private static Stream<Arguments> convertToTargetTypeArguments() {
+        return Stream.of(
+                Arguments.of("TargetType <- null", null, Integer.class, null),
+                Arguments.of("TargetType <- types match", 100, Integer.class, 
100),
+                Arguments.of("Integer <- Long", 123L, Integer.class, 123),
+                Arguments.of("Integer <- Short", (short) 45, Integer.class, 
45),
+                Arguments.of("Integer <- Byte", (byte) 10, Integer.class, 10),
+                Arguments.of("Integer <- Double", 123.45D, Integer.class, 123),
+                Arguments.of("Integer <- Float", 67.89F, Integer.class, 67),
+                Arguments.of("Integer <- BigDecimal", new BigDecimal("999"), 
Integer.class, 999),
+                Arguments.of("Integer <- BigInteger", BigInteger.valueOf(777), 
Integer.class, 777),
+                Arguments.of("Integer <- String", "555", Integer.class, 555),
+                Arguments.of("Long <- Integer", 123456, Long.class, 123456L),
+                Arguments.of("Long <- Short", (short) 789, Long.class, 789L),
+                Arguments.of("Long <- Double", 12345.67D, Long.class, 12345L),
+                Arguments.of("Long <- BigDecimal", new 
BigDecimal("9876543210"), Long.class, 9876543210L),
+                Arguments.of("Long <- String", "123456789", Long.class, 
123456789L),
+                Arguments.of("Short <- Integer", 123, Short.class, (short) 
123),
+                Arguments.of("Short <- Long", 456L, Short.class, (short) 456),
+                Arguments.of("Short <- String", "123", Short.class, (short) 
123),
+                Arguments.of("Byte <- Integer", 100, Byte.class, (byte) 100),
+                Arguments.of("Byte <- Short", (short) 50, Byte.class, (byte) 
50),
+                Arguments.of("Byte <- String", "100", Byte.class, (byte) 100),
+                Arguments.of("Double <- Integer", 123, Double.class, 123.0D),
+                Arguments.of("Double <- Long", 456L, Double.class, 456.0D),
+                Arguments.of("Double <- Float", 78.9F, Double.class, 
78.9000015258789D),
+                Arguments.of("Double <- BigDecimal", new 
BigDecimal("123.456"), Double.class, 123.456D),
+                Arguments.of("Double <- String", "123.456", Double.class, 
123.456D),
+                Arguments.of("Float <- Integer", 234, Float.class, 234.0F),
+                Arguments.of("Float <- Double", 56.78D, Float.class, 56.78F),
+                Arguments.of("Float <- String", "78.9", Float.class, 78.9F),
+                Arguments.of("BigDecimal <- Integer", 999, BigDecimal.class, 
BigDecimal.valueOf(999D)),
+                Arguments.of("BigDecimal <- Long", 888L, BigDecimal.class, 
BigDecimal.valueOf(888D)),
+                Arguments.of("BigDecimal <- Double", 123.456D, 
BigDecimal.class, BigDecimal.valueOf(123.456D)),
+                Arguments.of("BigDecimal <- BigInteger", 
BigInteger.valueOf(12345), BigDecimal.class, new BigDecimal("12345")),
+                Arguments.of("BigDecimal <- String", "999.888", 
BigDecimal.class, new BigDecimal("999.888")),
+                Arguments.of("BigInteger <- Integer", 777, BigInteger.class, 
BigInteger.valueOf(777)),
+                Arguments.of("BigInteger <- Long", 666L, BigInteger.class, 
BigInteger.valueOf(666)),
+                Arguments.of("BigInteger <- BigDecimal", new 
BigDecimal("555"), BigInteger.class, BigInteger.valueOf(555)),
+                Arguments.of("BigInteger <- String", "123456789", 
BigInteger.class, BigInteger.valueOf(123456789L)),
+                Arguments.of("String <- Integer", 123, String.class, "123"),
+                Arguments.of("String <- Long", 456L, String.class, "456"),
+                Arguments.of("String <- Double", 78.9D, String.class, "78.9"),
+                Arguments.of("String <- BigDecimal", new 
BigDecimal("123.456"), String.class, "123.456"),
+                Arguments.of("Boolean <- Integer(1)", 1, Boolean.class, true),
+                Arguments.of("Boolean <- Integer(0)", 0, Boolean.class, false),
+                Arguments.of("Boolean <- String(true)", "true", Boolean.class, 
true),
+                Arguments.of("Boolean <- String(false)", "false", 
Boolean.class, false),
+                Arguments.of("Boolean <- String(1)", "1", Boolean.class, true),
+                Arguments.of("Boolean <- String(0)", "0", Boolean.class, 
false),
+                Arguments.of("Boolean <- String(TRUE)", "TRUE", Boolean.class, 
true),
+                Arguments.of("Character <- Integer", 65, Character.class, 'A'),
+                Arguments.of("Character <- String", "X", Character.class, 'X'),
+                Arguments.of("Character <- EmptyString", "", Character.class, 
'\0'),
+                Arguments.of("Date <- Long", 1704067200000L, Date.class, new 
Date(1704067200000L)),
+                Arguments.of("Date <- LocalDateTime", LocalDateTime.of(2024, 
1, 1, 0, 0), Date.class, Date.from(LocalDateTime.of(2024, 1, 1, 0, 
0).atZone(ZoneId.systemDefault()).toInstant())),
+                Arguments.of("Date <- LocalDate", LocalDate.of(2024, 1, 1), 
Date.class, Date.from(LocalDate.of(2024, 1, 
1).atStartOfDay(ZoneId.systemDefault()).toInstant())),
+                Arguments.of("Date <- Instant", 
Instant.parse("2024-01-01T00:00:00Z"), Date.class, 
Date.from(Instant.parse("2024-01-01T00:00:00Z"))),
+                Arguments.of("Date <- String(LocalDate)", "2024-08-05", 
Date.class, Date.from(LocalDate.of(2024, 8, 
5).atStartOfDay(ZoneId.systemDefault()).toInstant())),
+                Arguments.of("Date <- String(LocalDateTime)", 
"2024-08-05T12:30:45", Date.class, Date.from(LocalDateTime.of(2024, 8, 5, 12, 
30, 45).atZone(ZoneId.systemDefault()).toInstant())),
+                Arguments.of("Date <- String(Instant)", 
"2024-08-05T12:30:45Z", Date.class, 
Date.from(Instant.parse("2024-08-05T12:30:45Z"))),
+                Arguments.of("SqlDate <- LocalDate", LocalDate.of(2024, 1, 1), 
java.sql.Date.class, java.sql.Date.valueOf(LocalDate.of(2024, 1, 1))),
+                Arguments.of("SqlDate <- Date", new Date(1704067200000L), 
java.sql.Date.class, new java.sql.Date(new Date(1704067200000L).getTime())),
+                Arguments.of("SqlDate <- String(LocalDate)", "2024-08-05", 
java.sql.Date.class, java.sql.Date.valueOf(LocalDate.of(2024, 8, 5))),
+                Arguments.of("SqlTime <- LocalTime", LocalTime.of(12, 30, 45), 
Time.class, Time.valueOf(LocalTime.of(12, 30, 45))),
+                Arguments.of("SqlTime <- String", "12:30:45", Time.class, 
Time.valueOf(LocalTime.of(12, 30, 45))),
+                Arguments.of("Timestamp <- LocalDateTime", 
LocalDateTime.of(2024, 1, 1, 12, 30, 45), Timestamp.class, 
Timestamp.valueOf(LocalDateTime.of(2024, 1, 1, 12, 30, 45))),
+                Arguments.of("Timestamp <- Instant", 
Instant.parse("2024-01-01T12:30:45Z"), Timestamp.class, 
Timestamp.from(Instant.parse("2024-01-01T12:30:45Z"))),
+                Arguments.of("Timestamp <- String", "2024-08-05T12:30:45", 
Timestamp.class, Timestamp.from(LocalDateTime.of(2024, 8, 5, 12, 30, 
45).atZone(ZoneId.systemDefault()).toInstant())),
+                Arguments.of("Instant <- Date", new Date(1704067200000L), 
Instant.class, new Date(1704067200000L).toInstant()),
+                Arguments.of("LocalDate <- Date", new Date(1704067200000L), 
LocalDate.class, new 
Date(1704067200000L).toInstant().atZone(ZoneId.systemDefault()).toLocalDate()),
+                Arguments.of("LocalDate <- LocalDateTime", 
LocalDateTime.of(2024, 1, 1, 12, 30, 45), LocalDate.class, LocalDate.of(2024, 
1, 1)),
+                Arguments.of("LocalDate <- SqlDate", 
java.sql.Date.valueOf(LocalDate.of(2024, 1, 1)), LocalDate.class, 
LocalDate.of(2024, 1, 1)),
+                Arguments.of("LocalDate <- String", "2024-08-05", 
LocalDate.class, LocalDate.of(2024, 8, 5)),
+                Arguments.of("LocalDate <- String(LocalDateTime)", 
"2024-08-05T12:30:45", LocalDate.class, LocalDate.of(2024, 8, 5)),
+                Arguments.of("LocalTime <- SqlTime", Time.valueOf("12:30:45"), 
LocalTime.class, LocalTime.of(12, 30, 45)),
+                Arguments.of("LocalTime <- LocalDateTime", 
LocalDateTime.of(2024, 1, 1, 12, 30, 45), LocalTime.class, LocalTime.of(12, 30, 
45)),
+                Arguments.of("LocalTime <- String", "12:30:45", 
LocalTime.class, LocalTime.of(12, 30, 45)),
+                Arguments.of("LocalDateTime <- Date", new 
Date(1704067200000L), LocalDateTime.class, new 
Date(1704067200000L).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()),
+                Arguments.of("LocalDateTime <- LocalDate", LocalDate.of(2024, 
1, 1), LocalDateTime.class, LocalDateTime.of(2024, 1, 1, 0, 0)),
+                Arguments.of("LocalDateTime <- Timestamp", 
Timestamp.valueOf("2024-01-01 12:30:45"), LocalDateTime.class, 
LocalDateTime.of(2024, 1, 1, 12, 30, 45)),
+                Arguments.of("LocalDateTime <- String", "2024-08-05T12:30:45", 
LocalDateTime.class, LocalDateTime.of(2024, 8, 5, 12, 30, 45)),
+                Arguments.of("Instant <- Long", 1704067200000L, Instant.class, 
Instant.ofEpochMilli(1704067200000L)),
+                Arguments.of("Instant <- String", "2024-08-05T12:30:45Z", 
Instant.class, Instant.parse("2024-08-05T12:30:45Z")),
+                Arguments.of("Instant <- String(LocalDate)", "2024-08-05", 
Instant.class, LocalDate.of(2024, 8, 
5).atStartOfDay(ZoneId.systemDefault()).toInstant()),
+                Arguments.of("Year <- Integer", 2024, Year.class, 
Year.of(2024)),
+                Arguments.of("Year <- LocalDate", LocalDate.of(2024, 6, 15), 
Year.class, Year.of(2024)),
+                Arguments.of("Year <- String", "2024", Year.class, 
Year.of(2024)),
+                Arguments.of("YearMonth <- LocalDate", LocalDate.of(2024, 6, 
15), YearMonth.class, YearMonth.of(2024, 6)),
+                Arguments.of("YearMonth <- String", "2024-08", 
YearMonth.class, YearMonth.of(2024, 8)),
+                Arguments.of("MonthDay <- LocalDate", LocalDate.of(2024, 6, 
15), MonthDay.class, MonthDay.of(6, 15)),
+                Arguments.of("MonthDay <- String", "--08-05", MonthDay.class, 
MonthDay.of(8, 5)),
+                Arguments.of("Duration <- Long", 5000L, Duration.class, 
Duration.ofMillis(5000L)),
+                Arguments.of("Duration <- String", "PT60S", Duration.class, 
Duration.ofSeconds(60)));
+    }
+    
+    private static Stream<Arguments> convertCollectionTypeArguments() {
+        return Stream.of(
+                Arguments.of("Integer", Arrays.asList((Comparable<?>[]) new 
Comparable[]{1L, 2L, 3L, 4L}), Integer.class, 4, Integer.class),
+                Arguments.of("Long", Arrays.asList((Comparable<?>[]) new 
Comparable[]{100, 200, 300}), Long.class, 3, Long.class),
+                Arguments.of("Double", Arrays.asList((Comparable<?>[]) new 
Comparable[]{10, 20, 30}), Double.class, 3, Double.class),
+                Arguments.of("Collection Mixed -> Integer", 
Arrays.asList((Comparable<?>[]) new Comparable[]{1, 2L, 3.0D, 4.0F}), 
Integer.class, 4, Integer.class),
+                Arguments.of("BigDecimal", Arrays.asList((Comparable<?>[]) new 
Comparable[]{100, 200L, 300.5D}), BigDecimal.class, 3, BigDecimal.class),
+                Arguments.of("BigInteger", Arrays.asList((Comparable<?>[]) new 
Comparable[]{100, 200L, 300}), BigInteger.class, 3, BigInteger.class),
+                Arguments.of("Year", Arrays.asList((Comparable<?>[]) new 
Comparable[]{LocalDate.of(2024, 1, 1),
+                        LocalDate.of(2024, 2, 1), LocalDate.of(2024, 3, 1)}), 
Year.class, 3, Year.class),
+                Arguments.of("Boolean", Arrays.asList((Comparable<?>[]) new 
Comparable[]{1, 0, 2, "true"}), Boolean.class, 4, Boolean.class),
+                Arguments.of("Duration", Arrays.asList((Comparable<?>[]) new 
Comparable[]{1000L, 2000L, 3000L}), Duration.class, 3, Duration.class));
     }
 }
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngineTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngineTest.java
index 45cd6c7bad4..71287b67f3f 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngineTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngineTest.java
@@ -41,9 +41,9 @@ import java.sql.SQLFeatureNotSupportedException;
 import java.util.Collections;
 import java.util.Properties;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.any;
@@ -151,7 +151,7 @@ class DatabaseTypeEngineTest {
         try (MockedStatic<ShardingSphereServiceLoader> mocked = 
mockStatic(ShardingSphereServiceLoader.class)) {
             mocked.when(() -> 
ShardingSphereServiceLoader.getServiceInstances(DialectJdbcUrlFetcher.class)).thenReturn(Collections.singleton(mock(DialectJdbcUrlFetcher.class)));
             SQLWrapperException exception = 
assertThrows(SQLWrapperException.class, () -> 
DatabaseTypeEngine.getStorageType(new MockedDataSource(connection)));
-            assertThat(exception.getCause(), 
instanceOf(SQLFeatureNotSupportedException.class));
+            assertThat(exception.getCause(), 
isA(SQLFeatureNotSupportedException.class));
         }
     }
     
@@ -165,7 +165,7 @@ class DatabaseTypeEngineTest {
             
when(dialectJdbcUrlFetcher.fetch(connection)).thenThrow(SQLException.class);
             mocked.when(() -> 
ShardingSphereServiceLoader.getServiceInstances(DialectJdbcUrlFetcher.class)).thenReturn(Collections.singleton(dialectJdbcUrlFetcher));
             SQLWrapperException exception = 
assertThrows(SQLWrapperException.class, () -> 
DatabaseTypeEngine.getStorageType(new MockedDataSource(connection)));
-            assertThat(exception.getCause(), instanceOf(SQLException.class));
+            assertThat(exception.getCause(), isA(SQLException.class));
         }
     }
 }
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/attribute/RuleAttributesTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/attribute/RuleAttributesTest.java
index e661645cb70..2582224c9f2 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/attribute/RuleAttributesTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/attribute/RuleAttributesTest.java
@@ -22,8 +22,8 @@ import org.junit.jupiter.api.Test;
 import java.util.Optional;
 
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.instanceOf;
 import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -50,7 +50,7 @@ class RuleAttributesTest {
         RuleAttribute attribute = mock(RuleAttribute.class);
         RuleAttributes attributes = new RuleAttributes(attribute);
         RuleAttribute actual = attributes.getAttribute(RuleAttribute.class);
-        assertThat(actual, instanceOf(RuleAttribute.class));
+        assertThat(actual, isA(RuleAttribute.class));
     }
     
     @Test
diff --git 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/state/circuit/resultset/CircuitBreakerResultSetTest.java
 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/state/circuit/resultset/CircuitBreakerResultSetTest.java
index c5e7e8a42d4..7e51f62ab64 100644
--- 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/state/circuit/resultset/CircuitBreakerResultSetTest.java
+++ 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/state/circuit/resultset/CircuitBreakerResultSetTest.java
@@ -22,10 +22,10 @@ import org.junit.jupiter.api.Test;
 import java.sql.ResultSet;
 import java.util.Calendar;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.nullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 
 @SuppressWarnings("resource")
@@ -248,7 +248,7 @@ class CircuitBreakerResultSetTest {
     
     @Test
     void assertGetMetaData() {
-        assertThat(new CircuitBreakerResultSet().getMetaData(), 
instanceOf(CircuitBreakerResultSetMetaData.class));
+        assertThat(new CircuitBreakerResultSet().getMetaData(), 
isA(CircuitBreakerResultSetMetaData.class));
     }
     
     @Test
diff --git 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/state/circuit/statement/CircuitBreakerPreparedStatementTest.java
 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/state/circuit/statement/CircuitBreakerPreparedStatementTest.java
index 14e79d602ea..e647306b0af 100644
--- 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/state/circuit/statement/CircuitBreakerPreparedStatementTest.java
+++ 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/state/circuit/statement/CircuitBreakerPreparedStatementTest.java
@@ -35,10 +35,10 @@ import java.sql.Timestamp;
 import java.util.Calendar;
 import java.util.Collections;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.nullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 
 @SuppressWarnings("resource")
@@ -276,12 +276,12 @@ class CircuitBreakerPreparedStatementTest {
     
     @Test
     void assertGetConnection() {
-        assertThat(new CircuitBreakerPreparedStatement().getConnection(), 
instanceOf(CircuitBreakerConnection.class));
+        assertThat(new CircuitBreakerPreparedStatement().getConnection(), 
isA(CircuitBreakerConnection.class));
     }
     
     @Test
     void assertGetGeneratedKeys() {
-        assertThat(new CircuitBreakerPreparedStatement().getGeneratedKeys(), 
instanceOf(CircuitBreakerResultSet.class));
+        assertThat(new CircuitBreakerPreparedStatement().getGeneratedKeys(), 
isA(CircuitBreakerResultSet.class));
     }
     
     @Test
@@ -291,7 +291,7 @@ class CircuitBreakerPreparedStatementTest {
     
     @Test
     void assertGetResultSet() {
-        assertThat(new CircuitBreakerPreparedStatement().getResultSet(), 
instanceOf(CircuitBreakerResultSet.class));
+        assertThat(new CircuitBreakerPreparedStatement().getResultSet(), 
isA(CircuitBreakerResultSet.class));
     }
     
     @Test
@@ -321,7 +321,7 @@ class CircuitBreakerPreparedStatementTest {
     
     @Test
     void assertExecuteQuery() {
-        assertThat(new CircuitBreakerPreparedStatement().executeQuery(), 
instanceOf(CircuitBreakerResultSet.class));
+        assertThat(new CircuitBreakerPreparedStatement().executeQuery(), 
isA(CircuitBreakerResultSet.class));
     }
     
     @Test
diff --git 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/state/circuit/statement/CircuitBreakerStatementTest.java
 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/state/circuit/statement/CircuitBreakerStatementTest.java
index 1345c9b389c..23e4e33401c 100644
--- 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/state/circuit/statement/CircuitBreakerStatementTest.java
+++ 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/state/circuit/statement/CircuitBreakerStatementTest.java
@@ -23,10 +23,10 @@ import org.junit.jupiter.api.Test;
 import java.sql.ResultSet;
 import java.sql.Statement;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.nullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 
 @SuppressWarnings("resource")
@@ -144,7 +144,7 @@ class CircuitBreakerStatementTest {
     
     @Test
     void assertGetConnection() {
-        assertThat(new CircuitBreakerStatement().getConnection(), 
instanceOf(CircuitBreakerConnection.class));
+        assertThat(new CircuitBreakerStatement().getConnection(), 
isA(CircuitBreakerConnection.class));
     }
     
     @Test
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedBigintHandlerTest.java
 
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedBigintHandlerTest.java
index 3bbeb0b7854..0de55740b3e 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedBigintHandlerTest.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedBigintHandlerTest.java
@@ -22,9 +22,9 @@ import org.junit.jupiter.api.Test;
 import java.io.Serializable;
 import java.math.BigInteger;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 
 class MySQLBinlogUnsignedBigintHandlerTest {
     
@@ -33,10 +33,10 @@ class MySQLBinlogUnsignedBigintHandlerTest {
     @Test
     void assertHandle() {
         Serializable actual = handler.handle(1L);
-        assertThat(actual, instanceOf(BigInteger.class));
+        assertThat(actual, isA(BigInteger.class));
         assertThat(actual, is(new BigInteger("1")));
         actual = handler.handle(-1L);
-        assertThat(actual, instanceOf(BigInteger.class));
+        assertThat(actual, isA(BigInteger.class));
         assertThat(actual, is(new BigInteger("18446744073709551615")));
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedIntHandlerTest.java
 
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedIntHandlerTest.java
index 0ef0fb4f7ec..3dc1c1c551a 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedIntHandlerTest.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedIntHandlerTest.java
@@ -21,9 +21,9 @@ import org.junit.jupiter.api.Test;
 
 import java.io.Serializable;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 
 class MySQLBinlogUnsignedIntHandlerTest {
     
@@ -32,10 +32,10 @@ class MySQLBinlogUnsignedIntHandlerTest {
     @Test
     void assertHandle() {
         Serializable actual = handler.handle(1);
-        assertThat(actual, instanceOf(Long.class));
+        assertThat(actual, isA(Long.class));
         assertThat(actual, is(1L));
         actual = handler.handle(-1);
-        assertThat(actual, instanceOf(Long.class));
+        assertThat(actual, isA(Long.class));
         assertThat(actual, is(4294967295L));
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedMediumintHandlerTest.java
 
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedMediumintHandlerTest.java
index 93d2f9ffd67..352689c2a29 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedMediumintHandlerTest.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedMediumintHandlerTest.java
@@ -21,9 +21,9 @@ import org.junit.jupiter.api.Test;
 
 import java.io.Serializable;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 
 class MySQLBinlogUnsignedMediumintHandlerTest {
     
@@ -32,10 +32,10 @@ class MySQLBinlogUnsignedMediumintHandlerTest {
     @Test
     void assertHandle() {
         Serializable actual = handler.handle(1);
-        assertThat(actual, instanceOf(Integer.class));
+        assertThat(actual, isA(Integer.class));
         assertThat(actual, is(1));
         actual = handler.handle(-1);
-        assertThat(actual, instanceOf(Integer.class));
+        assertThat(actual, isA(Integer.class));
         assertThat(actual, is(16777215));
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedSmallintHandlerTest.java
 
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedSmallintHandlerTest.java
index 28cab367dd5..4af6b241497 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedSmallintHandlerTest.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedSmallintHandlerTest.java
@@ -21,9 +21,9 @@ import org.junit.jupiter.api.Test;
 
 import java.io.Serializable;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 
 class MySQLBinlogUnsignedSmallintHandlerTest {
     
@@ -32,10 +32,10 @@ class MySQLBinlogUnsignedSmallintHandlerTest {
     @Test
     void assertHandle() {
         Serializable actual = handler.handle((short) 1);
-        assertThat(actual, instanceOf(Integer.class));
+        assertThat(actual, isA(Integer.class));
         assertThat(actual, is(1));
         actual = handler.handle((short) -1);
-        assertThat(actual, instanceOf(Integer.class));
+        assertThat(actual, isA(Integer.class));
         assertThat(actual, is(65535));
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedTinyintHandlerTest.java
 
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedTinyintHandlerTest.java
index 3d21d22a8dc..f0e3f421380 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedTinyintHandlerTest.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/binlog/data/unsigned/impl/MySQLBinlogUnsignedTinyintHandlerTest.java
@@ -21,9 +21,9 @@ import org.junit.jupiter.api.Test;
 
 import java.io.Serializable;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 
 class MySQLBinlogUnsignedTinyintHandlerTest {
     
@@ -32,10 +32,10 @@ class MySQLBinlogUnsignedTinyintHandlerTest {
     @Test
     void assertHandle() {
         Serializable actual = handler.handle((byte) 1);
-        assertThat(actual, instanceOf(Short.class));
+        assertThat(actual, isA(Short.class));
         assertThat(actual, is((short) 1));
         actual = handler.handle((byte) -1);
-        assertThat(actual, instanceOf(Short.class));
+        assertThat(actual, isA(Short.class));
         assertThat(actual, is((short) 255));
     }
 }
diff --git 
a/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/config/yaml/swapper/YamlCDCJobConfigurationSwapperTest.java
 
b/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/config/yaml/swapper/YamlCDCJobConfigurationSwapperTest.java
index 7bc492f09f3..e27320d6d5c 100644
--- 
a/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/config/yaml/swapper/YamlCDCJobConfigurationSwapperTest.java
+++ 
b/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/config/yaml/swapper/YamlCDCJobConfigurationSwapperTest.java
@@ -47,7 +47,7 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.empty;
 import static org.hamcrest.Matchers.hasSize;
-import static org.hamcrest.Matchers.instanceOf;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -165,7 +165,7 @@ class YamlCDCJobConfigurationSwapperTest {
         assertThat(actual.getJobId(), 
is("j0302p00007a8bf46da145dc155ba25c710b550220"));
         assertThat(actual.getJobShardingDataNodes(), empty());
         assertNull(actual.getTablesFirstDataNodes());
-        assertThat(actual.getDataSourceConfig(), 
instanceOf(ShardingSpherePipelineDataSourceConfiguration.class));
+        assertThat(actual.getDataSourceConfig(), 
isA(ShardingSpherePipelineDataSourceConfiguration.class));
         assertThat(actual.getSinkConfig().getProps().getProperty("foo_key"), 
is("foo_value"));
         assertFalse(actual.isDecodeWithTX());
     }
diff --git 
a/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/core/importer/CDCImporterTest.java
 
b/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/core/importer/CDCImporterTest.java
index 48569d7dedb..8ceddb720e1 100644
--- 
a/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/core/importer/CDCImporterTest.java
+++ 
b/kernel/data-pipeline/scenario/cdc/core/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/core/importer/CDCImporterTest.java
@@ -39,10 +39,10 @@ import java.util.Queue;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyCollection;
@@ -81,7 +81,7 @@ class CDCImporterTest {
         CDCImporter importer = new CDCImporter(new 
LinkedList<>(Collections.singletonList(new CDCChannelProgressPair(channel, 
progressListener))), 1, 1L, sink, false, null);
         importer.start();
         importer.stop();
-        assertThat(captureAckRecords(channel, 1).get(0).get(0), 
instanceOf(FinishedRecord.class));
+        assertThat(captureAckRecords(channel, 1).get(0).get(0), 
isA(FinishedRecord.class));
         assertThat(captureProgressCounts(progressListener, 2), contains(0, 0));
     }
     
@@ -113,7 +113,7 @@ class CDCImporterTest {
         importer.stop();
         List<List<Record>> ackedRecords = captureAckRecords(channel, 1);
         assertThat(ackedRecords.size(), is(1));
-        assertThat(ackedRecords.get(0).get(0), 
instanceOf(FinishedRecord.class));
+        assertThat(ackedRecords.get(0).get(0), isA(FinishedRecord.class));
         assertThat(captureProgressCounts(progressListener, 2), contains(0, 1));
     }
     
diff --git 
a/kernel/data-pipeline/scenario/consistency-check/src/test/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/context/ConsistencyCheckJobItemContextTest.java
 
b/kernel/data-pipeline/scenario/consistency-check/src/test/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/context/ConsistencyCheckJobItemContextTest.java
index f1e70f0c64d..a2814ef01ca 100644
--- 
a/kernel/data-pipeline/scenario/consistency-check/src/test/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/context/ConsistencyCheckJobItemContextTest.java
+++ 
b/kernel/data-pipeline/scenario/consistency-check/src/test/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/context/ConsistencyCheckJobItemContextTest.java
@@ -30,8 +30,8 @@ import org.junit.jupiter.api.Test;
 import java.math.BigInteger;
 
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.instanceOf;
 import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.isA;
 
 class ConsistencyCheckJobItemContextTest {
     
@@ -82,7 +82,7 @@ class ConsistencyCheckJobItemContextTest {
     
     private void assertRange(final UniqueKeyIngestPosition<?> actual, final 
UniqueKeyIngestPosition<?> expected) {
         assertThat(actual.getClass(), is(expected.getClass()));
-        assertThat(actual, instanceOf(UniqueKeyIngestPosition.class));
+        assertThat(actual, isA(UniqueKeyIngestPosition.class));
         assertThat(actual.getLowerBound(), is(expected.getLowerBound()));
         assertThat(actual.getUpperBound(), is(expected.getUpperBound()));
     }
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/FunctionConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/FunctionConverterTest.java
index 53b2e76612e..a82e32b4534 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/FunctionConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/FunctionConverterTest.java
@@ -44,9 +44,9 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.Optional;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -124,7 +124,7 @@ class FunctionConverterTest {
         when(OwnerConverter.convert(owner)).thenReturn(new ArrayList<>());
         
when(ExpressionConverter.convert(param)).thenReturn(Optional.of(paramNode));
         SqlBasicCall actual = (SqlBasicCall) 
FunctionConverter.convert(segment);
-        assertThat(actual.getOperator(), 
instanceOf(SqlUnresolvedFunction.class));
+        assertThat(actual.getOperator(), isA(SqlUnresolvedFunction.class));
         SqlIdentifier functionName = actual.getOperator().getNameAsId();
         assertThat(functionName.names, 
is(Collections.singletonList("custom_func")));
         assertThat(functionName.getSimple(), is("custom_func"));
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/InExpressionConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/InExpressionConverterTest.java
index fa74cd2d70d..eca4886d31c 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/InExpressionConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/InExpressionConverterTest.java
@@ -34,9 +34,9 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.Optional;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -56,7 +56,7 @@ class InExpressionConverterTest {
         SqlBasicCall actual = InExpressionConverter.convert(new 
InExpression(0, 0, left, right, true));
         assertThat(actual.getOperator(), is(SqlStdOperatorTable.NOT_IN));
         SqlNode secondOperand = actual.getOperandList().get(1);
-        assertThat(secondOperand, instanceOf(SqlNodeList.class));
+        assertThat(secondOperand, isA(SqlNodeList.class));
         assertThat(((SqlNodeList) secondOperand).size(), is(1));
         assertThat(((SqlNodeList) secondOperand).get(0), is(rightOperand));
     }
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/MatchExpressionConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/MatchExpressionConverterTest.java
index 888f61ff4ce..8181a63a01d 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/MatchExpressionConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/MatchExpressionConverterTest.java
@@ -36,9 +36,9 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import java.util.Arrays;
 import java.util.Optional;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -76,7 +76,7 @@ class MatchExpressionConverterTest {
         segment.getColumns().add(columnSegment);
         SqlBasicCall actual = MatchExpressionConverter.convert(segment);
         assertThat(actual.getOperandList().size(), is(2));
-        assertThat(actual.getOperandList().get(0), 
instanceOf(SqlIdentifier.class));
+        assertThat(actual.getOperandList().get(0), isA(SqlIdentifier.class));
         SqlLiteral modifier = (SqlLiteral) actual.getOperandList().get(1);
         assertThat(modifier.getValueAs(String.class), is("modifier"));
     }
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/TypeCastExpressionConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/TypeCastExpressionConverterTest.java
index 56c132db8fb..2422fe1eede 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/TypeCastExpressionConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/TypeCastExpressionConverterTest.java
@@ -30,9 +30,9 @@ import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.util.Optional;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.Mockito.mock;
@@ -59,6 +59,6 @@ class TypeCastExpressionConverterTest {
         SqlBasicCall actual = (SqlBasicCall) 
TypeCastExpressionConverter.convert(typeCastExpression).orElse(null);
         assertNotNull(actual);
         assertThat(actual.getOperandList().get(0), is(expressionNode));
-        assertThat(actual.getOperandList().get(1), 
instanceOf(SqlDataTypeSpec.class));
+        assertThat(actual.getOperandList().get(1), isA(SqlDataTypeSpec.class));
     }
 }
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/WindowFunctionConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/WindowFunctionConverterTest.java
index b76baacac58..685a1cd3331 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/WindowFunctionConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/WindowFunctionConverterTest.java
@@ -31,9 +31,9 @@ import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.util.Optional;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -52,7 +52,7 @@ class WindowFunctionConverterTest {
         SqlBasicCall actual = WindowFunctionConverter.convert(segment);
         assertThat(actual.getOperator(), is(SqlStdOperatorTable.OVER));
         assertThat(actual.getOperandList().get(0), is(paramNode));
-        assertThat(actual.getOperandList().get(1), 
instanceOf(SqlWindow.class));
+        assertThat(actual.getOperandList().get(1), isA(SqlWindow.class));
     }
     
     @Test
@@ -61,7 +61,6 @@ class WindowFunctionConverterTest {
         LiteralExpressionSegment parameter = new LiteralExpressionSegment(0, 
0, "value");
         segment.getParameters().add(parameter);
         
when(ExpressionConverter.convert(parameter)).thenReturn(Optional.empty());
-        SqlBasicCall actual = WindowFunctionConverter.convert(segment);
-        assertTrue(actual.getOperandList().isEmpty());
+        
assertTrue(WindowFunctionConverter.convert(segment).getOperandList().isEmpty());
     }
 }
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/from/impl/JoinTableConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/from/impl/JoinTableConverterTest.java
index 4a5c87e5938..1183a878065 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/from/impl/JoinTableConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/from/impl/JoinTableConverterTest.java
@@ -40,9 +40,9 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Optional;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
@@ -98,7 +98,7 @@ class JoinTableConverterTest {
         assertNotNull(actual);
         assertThat(actual.getJoinType(), is(JoinType.INNER));
         assertThat(actual.getConditionType(), is(JoinConditionType.USING));
-        assertThat(actual.getCondition(), instanceOf(SqlNodeList.class));
+        assertThat(actual.getCondition(), isA(SqlNodeList.class));
         assertNotNull(actual.getCondition());
         assertThat(((SqlNodeList) actual.getCondition()).get(0), 
is(usingNode));
         assertTrue(actual.isNaturalNode().booleanValue());
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/from/impl/SimpleTableConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/from/impl/SimpleTableConverterTest.java
index f72eb09094c..b2750d00a0d 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/from/impl/SimpleTableConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/from/impl/SimpleTableConverterTest.java
@@ -30,9 +30,9 @@ import org.junit.jupiter.api.Test;
 import java.util.Arrays;
 import java.util.Collections;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
@@ -64,6 +64,6 @@ class SimpleTableConverterTest {
         assertThat(actual.getOperator(), is(SqlStdOperatorTable.AS));
         assertThat(((SqlIdentifier) actual.getOperandList().get(0)).names, 
is(Arrays.asList("schema", "t_complex", "db", "remote")));
         assertThat(((SqlIdentifier) actual.getOperandList().get(1)).names, 
is(Collections.singletonList("t_alias")));
-        assertThat(actual.getOperandList().get(0), 
instanceOf(SqlIdentifier.class));
+        assertThat(actual.getOperandList().get(0), isA(SqlIdentifier.class));
     }
 }
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/from/impl/SubqueryTableConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/from/impl/SubqueryTableConverterTest.java
index ea96df398a7..b0356561082 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/from/impl/SubqueryTableConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/from/impl/SubqueryTableConverterTest.java
@@ -44,9 +44,9 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import java.util.Collections;
 import java.util.Optional;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.Mockito.mock;
@@ -72,7 +72,7 @@ class SubqueryTableConverterTest {
         SqlBasicCall actual = (SqlBasicCall) 
SubqueryTableConverter.convert(segment).orElse(null);
         assertNotNull(actual);
         assertThat(actual.getOperator(), is(SqlStdOperatorTable.AS));
-        assertThat(actual.getOperandList().get(0), 
instanceOf(SqlBasicCall.class));
+        assertThat(actual.getOperandList().get(0), isA(SqlBasicCall.class));
         SqlBasicCall explicitTable = (SqlBasicCall) 
actual.getOperandList().get(0);
         assertThat(explicitTable.getOperator(), 
is(SqlStdOperatorTable.EXPLICIT_TABLE));
         assertThat(((SqlIdentifier) actual.getOperandList().get(1)).names, 
is(Collections.singletonList("alias")));
@@ -89,7 +89,7 @@ class SubqueryTableConverterTest {
         SqlBasicCall actual = (SqlBasicCall) 
SubqueryTableConverter.convert(segment).orElse(null);
         assertNotNull(actual);
         assertThat(actual.getOperator(), is(SqlStdOperatorTable.AS));
-        assertThat(actual.getOperandList().get(0), 
instanceOf(SqlSelect.class));
+        assertThat(actual.getOperandList().get(0), isA(SqlSelect.class));
         assertThat(actual.getOperandList().size(), is(1));
     }
 }
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/projection/impl/AggregationProjectionConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/projection/impl/AggregationProjectionConverterTest.java
index 36f4d17b7f7..7e858dedae2 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/projection/impl/AggregationProjectionConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/projection/impl/AggregationProjectionConverterTest.java
@@ -38,9 +38,9 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.Optional;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
@@ -70,7 +70,7 @@ class AggregationProjectionConverterTest {
         assertThat(innerCall.getOperator(), is(SqlStdOperatorTable.COUNT));
         assertNotNull(innerCall.getFunctionQuantifier());
         assertThat(innerCall.getOperandList().size(), is(1));
-        assertThat(innerCall.getOperandList().get(0), 
instanceOf(SqlIdentifier.class));
+        assertThat(innerCall.getOperandList().get(0), 
isA(SqlIdentifier.class));
         SqlIdentifier starIdentifier = (SqlIdentifier) 
innerCall.getOperandList().get(0);
         assertTrue(starIdentifier.isStar());
         SqlIdentifier aliasIdentifier = (SqlIdentifier) 
asCall.getOperandList().get(1);
@@ -94,7 +94,7 @@ class AggregationProjectionConverterTest {
         assertThat(sqlBasicCall.getOperandList().size(), is(3));
         assertThat(sqlBasicCall.getOperandList().get(0), is(firstNode));
         assertThat(sqlBasicCall.getOperandList().get(1), is(secondNode));
-        assertThat(sqlBasicCall.getOperandList().get(2), 
instanceOf(SqlLiteral.class));
+        assertThat(sqlBasicCall.getOperandList().get(2), 
isA(SqlLiteral.class));
         assertNull(sqlBasicCall.getFunctionQuantifier());
     }
     
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/projection/impl/ColumnProjectionConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/projection/impl/ColumnProjectionConverterTest.java
index 25cfd55a98b..bbf520bdabf 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/projection/impl/ColumnProjectionConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/projection/impl/ColumnProjectionConverterTest.java
@@ -33,9 +33,9 @@ import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.util.Collections;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -51,7 +51,7 @@ class ColumnProjectionConverterTest {
         SqlIdentifier columnNode = new SqlIdentifier("col", SqlParserPos.ZERO);
         when(ColumnConverter.convert(columnSegment)).thenReturn(columnNode);
         SqlBasicCall actual = (SqlBasicCall) 
ColumnProjectionConverter.convert(projectionSegment);
-        assertThat(actual.getOperator(), instanceOf(SqlAsOperator.class));
+        assertThat(actual.getOperator(), isA(SqlAsOperator.class));
         assertThat(actual.getOperandList().get(0), is(columnNode));
         assertThat(((SqlIdentifier) actual.getOperandList().get(1)).names, 
is(Collections.singletonList("alias")));
     }
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/InsertStatementConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/InsertStatementConverterTest.java
index 4236a8ead5c..314fe584ca3 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/InsertStatementConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/InsertStatementConverterTest.java
@@ -30,10 +30,10 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.Co
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.InsertColumnsSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ColumnProjectionSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionsSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.InsertStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.SelectStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
@@ -41,9 +41,8 @@ import org.junit.jupiter.api.Test;
 
 import java.util.Collections;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.CoreMatchers.isA;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
 class InsertStatementConverterTest {
@@ -70,8 +69,8 @@ class InsertStatementConverterTest {
         insertStatement.setInsertColumns(new InsertColumnsSegment(0, 0, 
Collections.emptyList()));
         SqlInsert actual = (SqlInsert) new 
InsertStatementConverter().convert(insertStatement);
         assertThat(actual.getTargetTable(), isA(SqlNode.class));
-        assertThat(actual.getSource(), instanceOf(SqlBasicCall.class));
-        assertThat(actual.getTargetColumnList(), 
instanceOf(SqlNodeList.class));
+        assertThat(actual.getSource(), isA(SqlBasicCall.class));
+        assertThat(actual.getTargetColumnList(), isA(SqlNodeList.class));
     }
     
     @Test
@@ -80,7 +79,7 @@ class InsertStatementConverterTest {
         insertStatement.setTable(new SimpleTableSegment(new 
TableNameSegment(0, 0, new IdentifierValue("t_insert_values"))));
         insertStatement.getValues().add(new InsertValuesSegment(0, 0, 
Collections.singletonList(new ParameterMarkerExpressionSegment(0, 0, 0))));
         SqlInsert actual = (SqlInsert) new 
InsertStatementConverter().convert(insertStatement);
-        assertThat(actual.getSource(), instanceOf(SqlBasicCall.class));
+        assertThat(actual.getSource(), isA(SqlBasicCall.class));
         assertNull(actual.getTargetColumnList());
     }
     
@@ -92,7 +91,7 @@ class InsertStatementConverterTest {
         insertStatement.setInsertColumns(insertColumnsSegment);
         insertStatement.getValues().add(new InsertValuesSegment(0, 0, 
Collections.singletonList(new ParameterMarkerExpressionSegment(0, 0, 0))));
         SqlInsert actual = (SqlInsert) new 
InsertStatementConverter().convert(insertStatement);
-        assertThat(actual.getTargetColumnList(), 
instanceOf(SqlNodeList.class));
+        assertThat(actual.getTargetColumnList(), isA(SqlNodeList.class));
     }
     
     private ProjectionsSegment createProjectionsSegment() {
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/SelectStatementConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/SelectStatementConverterTest.java
index de7f5857be8..53b585c26ff 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/SelectStatementConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/SelectStatementConverterTest.java
@@ -26,9 +26,14 @@ import 
org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.sql.parser.statement.core.enums.CombineType;
 import 
org.apache.shardingsphere.sql.parser.statement.core.enums.OrderDirection;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.combine.CombineSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ColumnProjectionSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionsSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.OrderBySegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.ColumnOrderByItemSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.pagination.limit.LimitSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.pagination.limit.NumberLiteralLimitValueSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.pagination.limit.ParameterMarkerLimitValueSegment;
@@ -37,22 +42,16 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.Alias
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.WindowItemSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.WindowSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.WithSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.OrderBySegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.ColumnOrderByItemSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ColumnProjectionSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionsSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.SelectStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
 import org.junit.jupiter.api.Test;
 
 import java.util.Collections;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.CoreMatchers.isA;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
 class SelectStatementConverterTest {
@@ -69,9 +68,9 @@ class SelectStatementConverterTest {
         LimitSegment limit = new LimitSegment(0, 0, new 
NumberLiteralLimitValueSegment(0, 0, 1L), new 
ParameterMarkerLimitValueSegment(0, 0, 0));
         selectStatement.setLimit(limit);
         SqlOrderBy actual = (SqlOrderBy) new 
SelectStatementConverter().convert(selectStatement);
-        assertThat(actual.offset, instanceOf(SqlNode.class));
-        assertThat(actual.fetch, instanceOf(SqlNode.class));
-        assertThat(actual.query, instanceOf(SqlBasicCall.class));
+        assertThat(actual.offset, isA(SqlNode.class));
+        assertThat(actual.fetch, isA(SqlNode.class));
+        assertThat(actual.query, isA(SqlBasicCall.class));
     }
     
     @Test
diff --git 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/UpdateStatementConverterTest.java
 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/UpdateStatementConverterTest.java
index 055e0c6ca8e..65494688118 100644
--- 
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/UpdateStatementConverterTest.java
+++ 
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/UpdateStatementConverterTest.java
@@ -45,8 +45,8 @@ import org.junit.jupiter.api.Test;
 
 import java.util.Collections;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
 class UpdateStatementConverterTest {
@@ -59,10 +59,10 @@ class UpdateStatementConverterTest {
         LimitSegment limit = new LimitSegment(0, 0, new 
NumberLiteralLimitValueSegment(0, 0, 1L), new 
ParameterMarkerLimitValueSegment(0, 0, 0));
         updateStatement.setLimit(limit);
         SqlOrderBy actual = (SqlOrderBy) new 
UpdateStatementConverter().convert(updateStatement);
-        assertThat(actual.offset, instanceOf(SqlNode.class));
-        assertThat(actual.fetch, instanceOf(SqlDynamicParam.class));
+        assertThat(actual.offset, isA(SqlNode.class));
+        assertThat(actual.fetch, isA(SqlDynamicParam.class));
         SqlUpdate sqlUpdate = (SqlUpdate) actual.query;
-        assertThat(sqlUpdate.getAlias(), instanceOf(SqlIdentifier.class));
+        assertThat(sqlUpdate.getAlias(), isA(SqlIdentifier.class));
     }
     
     @Test
diff --git 
a/kernel/sql-federation/executor/src/test/java/org/apache/shardingsphere/sqlfederation/executor/enumerable/enumerator/jdbc/JDBCDataRowEnumeratorTest.java
 
b/kernel/sql-federation/executor/src/test/java/org/apache/shardingsphere/sqlfederation/executor/enumerable/enumerator/jdbc/JDBCDataRowEnumeratorTest.java
index 46b25433d15..1c61bc5880f 100644
--- 
a/kernel/sql-federation/executor/src/test/java/org/apache/shardingsphere/sqlfederation/executor/enumerable/enumerator/jdbc/JDBCDataRowEnumeratorTest.java
+++ 
b/kernel/sql-federation/executor/src/test/java/org/apache/shardingsphere/sqlfederation/executor/enumerable/enumerator/jdbc/JDBCDataRowEnumeratorTest.java
@@ -31,7 +31,6 @@ import java.util.Collections;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.instanceOf;
 import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNull;
@@ -58,10 +57,10 @@ class JDBCDataRowEnumeratorTest {
         JDBCDataRowEnumerator enumerator = new 
JDBCDataRowEnumerator(firstQueryResult, firstMetaData, 
Arrays.asList(firstStatement, secondStatement));
         assertTrue(enumerator.moveNext());
         Object actualRow = enumerator.current();
-        assertThat(actualRow, instanceOf(Object[].class));
+        assertThat(actualRow, isA(Object[].class));
         Object[] actualRowValues = (Object[]) actualRow;
         assertThat(actualRowValues.length, is(2));
-        assertThat(actualRowValues[0], instanceOf(Timestamp.class));
+        assertThat(actualRowValues[0], isA(Timestamp.class));
         assertThat(actualRowValues[0], 
is(Timestamp.valueOf(expectedDateTime)));
         assertThat(actualRowValues[1], is("bar_value"));
         assertFalse(enumerator.moveNext());
diff --git 
a/kernel/sql-federation/executor/src/test/java/org/apache/shardingsphere/sqlfederation/executor/enumerable/enumerator/memory/MemoryDataRowEnumeratorTest.java
 
b/kernel/sql-federation/executor/src/test/java/org/apache/shardingsphere/sqlfederation/executor/enumerable/enumerator/memory/MemoryDataRowEnumeratorTest.java
index 48847dc815c..06ffeb538e1 100644
--- 
a/kernel/sql-federation/executor/src/test/java/org/apache/shardingsphere/sqlfederation/executor/enumerable/enumerator/memory/MemoryDataRowEnumeratorTest.java
+++ 
b/kernel/sql-federation/executor/src/test/java/org/apache/shardingsphere/sqlfederation/executor/enumerable/enumerator/memory/MemoryDataRowEnumeratorTest.java
@@ -29,7 +29,7 @@ import java.util.Collection;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.arrayContaining;
-import static org.hamcrest.Matchers.instanceOf;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -50,7 +50,7 @@ class MemoryDataRowEnumeratorTest {
         assertNull(enumerator.current());
         assertTrue(enumerator.moveNext());
         Object firstRow = enumerator.current();
-        assertThat(firstRow, instanceOf(Object[].class));
+        assertThat(firstRow, isA(Object[].class));
         assertThat((Object[]) firstRow, arrayContaining(1, "foo_name"));
         assertTrue(enumerator.moveNext());
         assertThat((Object[]) enumerator.current(), arrayContaining(2, 
"bar_name"));
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseProxyConnectorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseProxyConnectorTest.java
index 178ec4e8a74..391776b8719 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseProxyConnectorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseProxyConnectorTest.java
@@ -117,9 +117,9 @@ import java.util.Properties;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -226,7 +226,7 @@ class StandardDatabaseProxyConnectorTest {
         try (
                 MockedConstruction<FederationMetaDataRefreshEngine> 
mockedConstruction = mockConstruction(FederationMetaDataRefreshEngine.class,
                         (mock, context) -> 
when(mock.isNeedRefresh()).thenReturn(true))) {
-            assertThat(engine.execute(), 
instanceOf(UpdateResponseHeader.class));
+            assertThat(engine.execute(), isA(UpdateResponseHeader.class));
             FederationMetaDataRefreshEngine federationMetaDataRefreshEngine = 
mockedConstruction.constructed().iterator().next();
             verify(federationMetaDataRefreshEngine).refresh(any(), 
any(ShardingSphereDatabase.class));
         }
@@ -252,7 +252,7 @@ class StandardDatabaseProxyConnectorTest {
                 MockedConstruction<ProxyBackendTransactionManager> 
mockedTransactionManager = 
mockConstruction(ProxyBackendTransactionManager.class);
                 MockedStatic<ShardingSphereServiceLoader> serviceLoader = 
mockStatic(ShardingSphereServiceLoader.class)) {
             serviceLoader.when(() -> 
ShardingSphereServiceLoader.getServiceInstances(AdvancedProxySQLExecutor.class)).thenReturn(Collections.emptyList());
-            assertThat(engine.execute(), 
instanceOf(UpdateResponseHeader.class));
+            assertThat(engine.execute(), isA(UpdateResponseHeader.class));
             assertThat(mockedKernelProcessor.constructed().size(), is(1));
             assertThat(mockedDatabaseTypeRegistry.constructed().size(), is(1));
             ProxyBackendTransactionManager transactionManager = 
mockedTransactionManager.constructed().iterator().next();
@@ -444,7 +444,7 @@ class StandardDatabaseProxyConnectorTest {
             });
             spiLoader.when(() -> 
DatabaseTypedSPILoader.getService(eq(QueryHeaderBuilder.class), 
any(DatabaseType.class))).thenReturn(new QueryHeaderBuilderFixture());
             spiLoader.when(() -> 
DatabaseTypedSPILoader.getService(QueryHeaderBuilder.class, 
null)).thenReturn(new QueryHeaderBuilderFixture());
-            assertThat(engine.execute(), 
instanceOf(QueryResponseHeader.class));
+            assertThat(engine.execute(), isA(QueryResponseHeader.class));
         }
     }
     
@@ -465,7 +465,7 @@ class StandardDatabaseProxyConnectorTest {
         setField(engine, "proxySQLExecutor", proxySQLExecutor);
         try (MockedStatic<DatabaseTypedSPILoader> spiLoader = 
mockStatic(DatabaseTypedSPILoader.class)) {
             spiLoader.when(() -> 
DatabaseTypedSPILoader.getService(eq(QueryHeaderBuilder.class), 
any(DatabaseType.class))).thenReturn(new QueryHeaderBuilderFixture());
-            assertThat(engine.execute(), 
instanceOf(QueryResponseHeader.class));
+            assertThat(engine.execute(), isA(QueryResponseHeader.class));
         }
     }
     
@@ -487,7 +487,7 @@ class StandardDatabaseProxyConnectorTest {
                         (mock, context) -> 
when(mock.isNeedRefresh()).thenReturn(false));
                 MockedConstruction<KernelProcessor> mockedKernelProcessor = 
mockConstruction(KernelProcessor.class,
                         (mock, context) -> 
when(mock.generateExecutionContext(any(QueryContext.class), 
any(RuleMetaData.class), 
any(ConfigurationProperties.class))).thenReturn(executionContext))) {
-            assertThat(engine.execute(), 
instanceOf(UpdateResponseHeader.class));
+            assertThat(engine.execute(), isA(UpdateResponseHeader.class));
             assertThat(mockedRefreshEngine.constructed().size(), is(1));
             assertThat(mockedKernelProcessor.constructed().size(), is(1));
         }
@@ -527,7 +527,7 @@ class StandardDatabaseProxyConnectorTest {
                 MockedStatic<ShardingSphereServiceLoader> serviceLoader = 
mockStatic(ShardingSphereServiceLoader.class)) {
             spiLoader.when(() -> 
DatabaseTypedSPILoader.getService(eq(QueryHeaderBuilder.class), 
any(DatabaseType.class))).thenReturn(new QueryHeaderBuilderFixture());
             serviceLoader.when(() -> 
ShardingSphereServiceLoader.getServiceInstances(AdvancedProxySQLExecutor.class)).thenReturn(Collections.emptyList());
-            assertThat(engine.execute(), 
instanceOf(QueryResponseHeader.class));
+            assertThat(engine.execute(), isA(QueryResponseHeader.class));
             assertThat(mockedKernelProcessor.constructed().size(), is(1));
             assertThat(mockedDatabaseTypeRegistry.constructed().size(), is(1));
             assertThat(mockedMergeEngine.constructed().size(), is(1));
@@ -576,7 +576,7 @@ class StandardDatabaseProxyConnectorTest {
                 MockedStatic<ShardingSphereServiceLoader> serviceLoader = 
mockStatic(ShardingSphereServiceLoader.class)) {
             spiLoader.when(() -> 
DatabaseTypedSPILoader.getService(eq(QueryHeaderBuilder.class), 
any(DatabaseType.class))).thenReturn(new QueryHeaderBuilderFixture());
             serviceLoader.when(() -> 
ShardingSphereServiceLoader.getServiceInstances(AdvancedProxySQLExecutor.class)).thenReturn(Collections.emptyList());
-            assertThat(engine.execute(), 
instanceOf(QueryResponseHeader.class));
+            assertThat(engine.execute(), isA(QueryResponseHeader.class));
             assertThat(mockedKernelProcessor.constructed().size(), is(1));
             assertThat(mockedDatabaseTypeRegistry.constructed().size(), is(1));
             assertThat(mockedMergeEngine.constructed().size(), is(1));
@@ -608,7 +608,7 @@ class StandardDatabaseProxyConnectorTest {
                 MockedConstruction<ProxyBackendTransactionManager> 
mockedTransactionManager = 
mockConstruction(ProxyBackendTransactionManager.class);
                 MockedStatic<ShardingSphereServiceLoader> serviceLoader = 
mockStatic(ShardingSphereServiceLoader.class)) {
             serviceLoader.when(() -> 
ShardingSphereServiceLoader.getServiceInstances(AdvancedProxySQLExecutor.class)).thenReturn(Collections.emptyList());
-            assertThat(engine.execute(), 
instanceOf(UpdateResponseHeader.class));
+            assertThat(engine.execute(), isA(UpdateResponseHeader.class));
             assertThat(mockedKernelProcessor.constructed().size(), is(1));
             assertThat(mockedDatabaseTypeRegistry.constructed().size(), is(1));
             
verify(mockedTransactionManager.constructed().iterator().next()).commit();
@@ -645,31 +645,31 @@ class StandardDatabaseProxyConnectorTest {
     @Test
     void assertExecuteWithoutImplicitCommitWhenSingleExecutionUnit() throws 
SQLException {
         InsertStatement insertStatement = new InsertStatement(databaseType);
-        assertThat(executeWithImplicitCommitCondition(insertStatement, "XA", 
false, 1), instanceOf(UpdateResponseHeader.class));
+        assertThat(executeWithImplicitCommitCondition(insertStatement, "XA", 
false, 1), isA(UpdateResponseHeader.class));
     }
     
     @Test
     void assertExecuteWithoutImplicitCommitWhenLocalTransaction() throws 
SQLException {
         InsertStatement insertStatement = new InsertStatement(databaseType);
-        assertThat(executeWithImplicitCommitCondition(insertStatement, 
"LOCAL", false, 2), instanceOf(UpdateResponseHeader.class));
+        assertThat(executeWithImplicitCommitCondition(insertStatement, 
"LOCAL", false, 2), isA(UpdateResponseHeader.class));
     }
     
     @Test
     void assertExecuteWithoutImplicitCommitWhenAlreadyInTransaction() throws 
SQLException {
         InsertStatement insertStatement = new InsertStatement(databaseType);
-        assertThat(executeWithImplicitCommitCondition(insertStatement, "XA", 
true, 2), instanceOf(UpdateResponseHeader.class));
+        assertThat(executeWithImplicitCommitCondition(insertStatement, "XA", 
true, 2), isA(UpdateResponseHeader.class));
     }
     
     @Test
     void assertExecuteWithoutImplicitCommitWhenSelectStatement() throws 
SQLException {
         SelectStatement selectStatement = new SelectStatement(databaseType);
-        assertThat(executeWithImplicitCommitCondition(selectStatement, "XA", 
false, 2), instanceOf(UpdateResponseHeader.class));
+        assertThat(executeWithImplicitCommitCondition(selectStatement, "XA", 
false, 2), isA(UpdateResponseHeader.class));
     }
     
     @Test
     void assertExecuteWithoutImplicitCommitWhenSQLStatementIsNotDML() throws 
SQLException {
         SQLStatement sqlStatement = new SQLStatement(databaseType);
-        assertThat(executeWithImplicitCommitCondition(sqlStatement, "XA", 
false, 2), instanceOf(UpdateResponseHeader.class));
+        assertThat(executeWithImplicitCommitCondition(sqlStatement, "XA", 
false, 2), isA(UpdateResponseHeader.class));
     }
     
     @Test
@@ -692,7 +692,7 @@ class StandardDatabaseProxyConnectorTest {
                 MockedConstruction<ProxyBackendTransactionManager> 
mockedTransactionManager = 
mockConstruction(ProxyBackendTransactionManager.class);
                 MockedStatic<ShardingSphereServiceLoader> serviceLoader = 
mockStatic(ShardingSphereServiceLoader.class)) {
             serviceLoader.when(() -> 
ShardingSphereServiceLoader.getServiceInstances(AdvancedProxySQLExecutor.class)).thenReturn(Collections.emptyList());
-            assertThat(engine.execute(), 
instanceOf(UpdateResponseHeader.class));
+            assertThat(engine.execute(), isA(UpdateResponseHeader.class));
             assertThat(mockedKernelProcessor.constructed().size(), is(1));
             assertThat(mockedDatabaseTypeRegistry.constructed().size(), is(1));
             assertTrue(mockedTransactionManager.constructed().isEmpty());
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/executor/callback/ProxyJDBCExecutorCallbackFactoryTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/executor/callback/ProxyJDBCExecutorCallbackFactoryTest.java
index b9c66c4924d..69d929a9484 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/executor/callback/ProxyJDBCExecutorCallbackFactoryTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/executor/callback/ProxyJDBCExecutorCallbackFactoryTest.java
@@ -23,9 +23,9 @@ import 
org.apache.shardingsphere.proxy.backend.connector.jdbc.executor.callback.
 import 
org.apache.shardingsphere.proxy.backend.connector.jdbc.executor.callback.impl.ProxyStatementExecutorCallback;
 import org.junit.jupiter.api.Test;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.Mockito.mock;
 
@@ -34,13 +34,13 @@ class ProxyJDBCExecutorCallbackFactoryTest {
     @Test
     void assertNewInstanceWithStatementDriverType() {
         ProxyJDBCExecutorCallback actual = 
ProxyJDBCExecutorCallbackFactory.newInstance(JDBCDriverType.STATEMENT, mock(), 
mock(), mock(), mock(), true, true, true);
-        assertThat(actual, instanceOf(ProxyStatementExecutorCallback.class));
+        assertThat(actual, isA(ProxyStatementExecutorCallback.class));
     }
     
     @Test
     void assertNewInstanceWithPreparedStatementDriverType() {
         ProxyJDBCExecutorCallback actual = 
ProxyJDBCExecutorCallbackFactory.newInstance(JDBCDriverType.PREPARED_STATEMENT, 
mock(), mock(), mock(), mock(), false, false, false);
-        assertThat(actual, 
instanceOf(ProxyPreparedStatementExecutorCallback.class));
+        assertThat(actual, isA(ProxyPreparedStatementExecutorCallback.class));
     }
     
     @Test
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/tcl/local/type/CommitProxyBackendHandlerTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/tcl/local/type/CommitProxyBackendHandlerTest.java
index fc4b946407c..55f9b8c3220 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/tcl/local/type/CommitProxyBackendHandlerTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/tcl/local/type/CommitProxyBackendHandlerTest.java
@@ -37,9 +37,9 @@ import java.sql.Connection;
 import java.sql.SQLException;
 import java.util.Collections;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.mockConstruction;
 import static org.mockito.Mockito.mockStatic;
@@ -67,7 +67,7 @@ class CommitProxyBackendHandlerTest {
             ResponseHeader actual = new 
CommitProxyBackendHandler(sqlStatement, connectionSession).execute();
             ProxyBackendTransactionManager transactionManager = 
mockedConstruction.constructed().get(0);
             verify(transactionManager).commit();
-            assertThat(((UpdateResponseHeader) actual).getSqlStatement(), 
instanceOf(RollbackStatement.class));
+            assertThat(((UpdateResponseHeader) actual).getSqlStatement(), 
isA(RollbackStatement.class));
         }
     }
     
diff --git 
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
 
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
index 94d20742cbd..269eeda08ac 100644
--- 
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
+++ 
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
@@ -55,14 +55,14 @@ class FirebirdAdminExecutorCreatorTest {
     
     @ParameterizedTest(name = "{0}")
     @MethodSource("createArguments")
-    void assertCreate(final String scenario, final SQLStatementContext 
sqlStatementContext, final String sql, final Class<? extends 
DatabaseAdminExecutor> expectedExecutorType) {
+    void assertCreate(final String name, final SQLStatementContext 
sqlStatementContext, final String sql, final Class<? extends 
DatabaseAdminExecutor> expectedExecutorType) {
         final Optional<DatabaseAdminExecutor> actual = 
creator.create(sqlStatementContext, sql, "", Collections.emptyList());
         if (null == expectedExecutorType) {
-            assertFalse(actual.isPresent(), scenario);
-            return;
+            assertFalse(actual.isPresent(), name);
+        } else {
+            assertTrue(actual.isPresent(), name);
+            assertThat(actual.get(), isA(expectedExecutorType));
         }
-        assertTrue(actual.isPresent(), scenario);
-        assertThat(actual.get(), isA(expectedExecutorType));
     }
     
     private static Stream<Arguments> createArguments() {
diff --git 
a/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/factory/MySQLShowAdminExecutorFactoryTest.java
 
b/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/factory/MySQLShowAdminExecutorFactoryTest.java
index abc759c9a61..31a8317f0be 100644
--- 
a/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/factory/MySQLShowAdminExecutorFactoryTest.java
+++ 
b/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/factory/MySQLShowAdminExecutorFactoryTest.java
@@ -39,8 +39,8 @@ import org.junit.jupiter.params.provider.MethodSource;
 import java.util.Optional;
 import java.util.stream.Stream;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.mock;
@@ -52,7 +52,7 @@ class MySQLShowAdminExecutorFactoryTest {
     void assertCreateExecutor(final String caseName, final SQLStatement 
statement, final Class<? extends DatabaseAdminExecutor> expectedType) {
         Optional<DatabaseAdminExecutor> actual = 
MySQLShowAdminExecutorFactory.newInstance(statement);
         assertTrue(actual.isPresent(), caseName);
-        assertThat(actual.get(), instanceOf(expectedType));
+        assertThat(actual.get(), isA(expectedType));
     }
     
     @Test
diff --git 
a/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/factory/withoutfrom/MySQLSelectWithoutFromAdminExecutorFactoryTest.java
 
b/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/factory/withoutfrom/MySQLSelectWithoutFromAdminExecutorFactoryTest.java
index 464da229b52..274358b581f 100644
--- 
a/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/factory/withoutfrom/MySQLSelectWithoutFromAdminExecutorFactoryTest.java
+++ 
b/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/factory/withoutfrom/MySQLSelectWithoutFromAdminExecutorFactoryTest.java
@@ -40,8 +40,8 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.Optional;
 
-import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.mock;
@@ -57,7 +57,7 @@ class MySQLSelectWithoutFromAdminExecutorFactoryTest {
         Optional<DatabaseAdminExecutor> actual = 
MySQLSelectWithoutFromAdminExecutorFactory.newInstance(
                 mockSelectStatementContext(selectStatement), "", null, 
mock(ShardingSphereMetaData.class));
         assertTrue(actual.isPresent());
-        assertThat(actual.get(), 
instanceOf(MySQLSystemVariableQueryExecutor.class));
+        assertThat(actual.get(), isA(MySQLSystemVariableQueryExecutor.class));
     }
     
     @Test
@@ -66,7 +66,7 @@ class MySQLSelectWithoutFromAdminExecutorFactoryTest {
         Optional<DatabaseAdminExecutor> actual = 
MySQLSelectWithoutFromAdminExecutorFactory.newInstance(
                 mockSelectStatementContext(selectStatement), "", null, 
mock(ShardingSphereMetaData.class));
         assertTrue(actual.isPresent());
-        assertThat(actual.get(), instanceOf(ShowConnectionIdExecutor.class));
+        assertThat(actual.get(), isA(ShowConnectionIdExecutor.class));
     }
     
     @Test
@@ -75,7 +75,7 @@ class MySQLSelectWithoutFromAdminExecutorFactoryTest {
         Optional<DatabaseAdminExecutor> actual = 
MySQLSelectWithoutFromAdminExecutorFactory.newInstance(
                 mockSelectStatementContext(selectStatement), "", null, 
mock(ShardingSphereMetaData.class));
         assertTrue(actual.isPresent());
-        assertThat(actual.get(), instanceOf(ShowVersionExecutor.class));
+        assertThat(actual.get(), isA(ShowVersionExecutor.class));
     }
     
     @Test
@@ -84,7 +84,7 @@ class MySQLSelectWithoutFromAdminExecutorFactoryTest {
         Optional<DatabaseAdminExecutor> actual = 
MySQLSelectWithoutFromAdminExecutorFactory.newInstance(
                 mockSelectStatementContext(selectStatement), "", null, 
mock(ShardingSphereMetaData.class));
         assertTrue(actual.isPresent());
-        assertThat(actual.get(), instanceOf(ShowCurrentUserExecutor.class));
+        assertThat(actual.get(), isA(ShowCurrentUserExecutor.class));
     }
     
     @Test
@@ -93,7 +93,7 @@ class MySQLSelectWithoutFromAdminExecutorFactoryTest {
         Optional<DatabaseAdminExecutor> actual = 
MySQLSelectWithoutFromAdminExecutorFactory.newInstance(
                 mockSelectStatementContext(selectStatement), "", null, 
mock(ShardingSphereMetaData.class));
         assertTrue(actual.isPresent());
-        assertThat(actual.get(), 
instanceOf(ShowCurrentDatabaseExecutor.class));
+        assertThat(actual.get(), isA(ShowCurrentDatabaseExecutor.class));
     }
     
     @Test
@@ -104,7 +104,7 @@ class MySQLSelectWithoutFromAdminExecutorFactoryTest {
         Optional<DatabaseAdminExecutor> actual = 
MySQLSelectWithoutFromAdminExecutorFactory.newInstance(
                 mockSelectStatementContext(selectStatement), "", null, 
metaData);
         assertTrue(actual.isPresent());
-        assertThat(actual.get(), instanceOf(NoResourceShowExecutor.class));
+        assertThat(actual.get(), isA(NoResourceShowExecutor.class));
     }
     
     @Test
@@ -129,7 +129,7 @@ class MySQLSelectWithoutFromAdminExecutorFactoryTest {
         
when(metaData.getAllDatabases()).thenReturn(Collections.singletonList(database));
         Optional<DatabaseAdminExecutor> actual = 
MySQLSelectWithoutFromAdminExecutorFactory.newInstance(mockSelectStatementContext(selectStatement),
 "", null, metaData);
         assertTrue(actual.isPresent());
-        assertThat(actual.get(), 
instanceOf(UnicastResourceShowExecutor.class));
+        assertThat(actual.get(), isA(UnicastResourceShowExecutor.class));
     }
     
     @Test
@@ -152,7 +152,7 @@ class MySQLSelectWithoutFromAdminExecutorFactoryTest {
         Optional<DatabaseAdminExecutor> actual = 
MySQLSelectWithoutFromAdminExecutorFactory.newInstance(
                 mockSelectStatementContext(selectStatement), "", null, 
metaData);
         assertTrue(actual.isPresent());
-        assertThat(actual.get(), 
instanceOf(UnicastResourceShowExecutor.class));
+        assertThat(actual.get(), isA(UnicastResourceShowExecutor.class));
     }
     
     @Test
@@ -162,7 +162,7 @@ class MySQLSelectWithoutFromAdminExecutorFactoryTest {
         Optional<DatabaseAdminExecutor> actual = 
MySQLSelectWithoutFromAdminExecutorFactory.newInstance(
                 mockSelectStatementContext(selectStatement), "", null, 
mock(ShardingSphereMetaData.class));
         assertTrue(actual.isPresent());
-        assertThat(actual.get(), instanceOf(ShowCurrentUserExecutor.class));
+        assertThat(actual.get(), isA(ShowCurrentUserExecutor.class));
     }
     
     private SelectStatement createSelectStatement(final 
Iterable<ProjectionSegment> projections) {
diff --git 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/ConsistencyCheckJobExecutorCallbackTest.java
 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/ConsistencyCheckJobExecutorCallbackTest.java
index dd50df7332c..81a61fec598 100644
--- 
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/ConsistencyCheckJobExecutorCallbackTest.java
+++ 
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/ConsistencyCheckJobExecutorCallbackTest.java
@@ -27,7 +27,6 @@ import 
org.apache.shardingsphere.data.pipeline.core.job.id.PipelineJobIdUtils;
 import 
org.apache.shardingsphere.data.pipeline.core.job.progress.ConsistencyCheckJobItemProgress;
 import 
org.apache.shardingsphere.data.pipeline.core.job.progress.yaml.config.YamlConsistencyCheckJobItemProgress;
 import 
org.apache.shardingsphere.data.pipeline.core.job.service.PipelineJobItemManager;
-import 
org.apache.shardingsphere.data.pipeline.core.task.runner.PipelineTasksRunner;
 import 
org.apache.shardingsphere.data.pipeline.scenario.consistencycheck.config.ConsistencyCheckJobConfiguration;
 import 
org.apache.shardingsphere.data.pipeline.scenario.consistencycheck.config.yaml.config.YamlConsistencyCheckJobConfiguration;
 import 
org.apache.shardingsphere.data.pipeline.scenario.consistencycheck.config.yaml.swapper.YamlConsistencyCheckJobConfigurationSwapper;
@@ -49,8 +48,8 @@ import java.util.Properties;
 import java.util.stream.Collectors;
 
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.instanceOf;
 import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.isA;
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.mockito.Mockito.mock;
 
@@ -87,8 +86,7 @@ class ConsistencyCheckJobExecutorCallbackTest {
     @Test
     void assertBuildTasksRunner() {
         ConsistencyCheckJobConfiguration jobConfig = new 
ConsistencyCheckJobConfiguration("check_job", "parent_job", "DATA_MATCH", new 
Properties(), databaseType);
-        PipelineTasksRunner actual = new 
ConsistencyCheckJobExecutorCallback().buildTasksRunner(new 
ConsistencyCheckJobItemContext(jobConfig, 0, JobStatus.RUNNING, null));
-        assertThat(actual, instanceOf(ConsistencyCheckTasksRunner.class));
+        assertThat(new 
ConsistencyCheckJobExecutorCallback().buildTasksRunner(new 
ConsistencyCheckJobItemContext(jobConfig, 0, JobStatus.RUNNING, null)), 
isA(ConsistencyCheckTasksRunner.class));
     }
     
     @Test

Reply via email to