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

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 901d90dd1d3 Add more database type value assertions (#36945)
901d90dd1d3 is described below

commit 901d90dd1d307fc7668f1e1f8d2e503247d86a54
Author: ZhangCheng <[email protected]>
AuthorDate: Tue Nov 4 11:46:33 2025 +0800

    Add more database type value assertions (#36945)
    
    * Add more database type value assertions
    
    * Add more database type value assertions
---
 .../test/e2e/sql/it/sql/dml/BaseDMLE2EIT.java      | 34 ++++++++++++++++++++--
 1 file changed, 32 insertions(+), 2 deletions(-)

diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/it/sql/dml/BaseDMLE2EIT.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/it/sql/dml/BaseDMLE2EIT.java
index 1f08b9b45bd..ea1cba2d4a8 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/it/sql/dml/BaseDMLE2EIT.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/sql/it/sql/dml/BaseDMLE2EIT.java
@@ -50,8 +50,10 @@ import javax.sql.DataSource;
 import javax.xml.bind.JAXBException;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
+import java.sql.Blob;
 import java.sql.Clob;
 import java.sql.Connection;
+import java.sql.NClob;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
@@ -286,10 +288,38 @@ public abstract class BaseDMLE2EIT implements SQLE2EIT {
             assertThat(String.valueOf(actual.getObject(columnIndex)).trim(), 
is(expected));
         } else if 
(isPostgreSQLOrOpenGaussMoney(actual.getMetaData().getColumnTypeName(columnIndex),
 databaseType)) {
             assertThat(actual.getString(columnIndex), is(expected));
-        } else if (Types.BINARY == 
actual.getMetaData().getColumnType(columnIndex)) {
-            assertThat(actual.getObject(columnIndex), 
is(expected.getBytes(StandardCharsets.UTF_8)));
+        } else if (Arrays.asList(Types.BINARY, Types.VARBINARY, 
Types.LONGVARBINARY).contains(actual.getMetaData().getColumnType(columnIndex))) 
{
+            byte[] actualBytes = actual.getBytes(columnIndex);
+            byte[] expectedBytes = expected.getBytes(StandardCharsets.UTF_8);
+            if (null != actualBytes) {
+                assertThat(actualBytes.length >= expectedBytes.length ? 
Arrays.copyOf(actualBytes, expectedBytes.length) : actualBytes, 
is(expectedBytes));
+            }
+        } else if (Types.BLOB == 
actual.getMetaData().getColumnType(columnIndex)) {
+            Object actualValue = actual.getObject(columnIndex);
+            if (actualValue instanceof Blob) {
+                Blob blob = (Blob) actualValue;
+                assertThat(blob.getBytes(1, (int) blob.length()), 
is(expected.getBytes(StandardCharsets.UTF_8)));
+            } else if (actualValue instanceof byte[]) {
+                assertThat(actualValue, 
is(expected.getBytes(StandardCharsets.UTF_8)));
+            } else {
+                assertThat(String.valueOf(actualValue), is(expected));
+            }
         } else if (Types.CLOB == 
actual.getMetaData().getColumnType(columnIndex)) {
             assertThat(getClobValue((Clob) actual.getObject(columnIndex)), 
is(expected));
+        } else if (Types.NCLOB == 
actual.getMetaData().getColumnType(columnIndex)) {
+            Object actualValue = actual.getObject(columnIndex);
+            if (actualValue instanceof NClob) {
+                NClob nclob = (NClob) actualValue;
+                assertThat(nclob.getSubString(1, (int) nclob.length()), 
is(expected));
+            } else {
+                assertThat(String.valueOf(actualValue), is(expected));
+            }
+        } else if (Arrays.asList(Types.TINYINT, Types.SMALLINT, Types.INTEGER, 
Types.BIGINT).contains(actual.getMetaData().getColumnType(columnIndex))) {
+            if (isNullValue(expected)) {
+                assertNull(actual.getObject(columnIndex));
+                return;
+            }
+            assertThat(String.valueOf(actual.getObject(columnIndex)), 
is(expected));
         } else {
             assertThat(String.valueOf(actual.getObject(columnIndex)), 
is(expected));
         }

Reply via email to