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));
}