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 09fe08b3085 Add more test cases on SQLServerDatabaseMetaDataTest
(#38146)
09fe08b3085 is described below
commit 09fe08b3085166b7e30849c0bd353076f8beda76
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Feb 22 22:02:34 2026 +0800
Add more test cases on SQLServerDatabaseMetaDataTest (#38146)
---
.../database/SQLServerDatabaseMetaDataTest.java | 64 +++++++++++++++++++++-
1 file changed, 63 insertions(+), 1 deletion(-)
diff --git
a/database/connector/dialect/sqlserver/src/test/java/org/apache/shardingsphere/database/connector/sql92/sqlserver/metadata/database/SQLServerDatabaseMetaDataTest.java
b/database/connector/dialect/sqlserver/src/test/java/org/apache/shardingsphere/database/connector/sql92/sqlserver/metadata/database/SQLServerDatabaseMetaDataTest.java
index 1d4f8dbf14a..a71d382f9ee 100644
---
a/database/connector/dialect/sqlserver/src/test/java/org/apache/shardingsphere/database/connector/sql92/sqlserver/metadata/database/SQLServerDatabaseMetaDataTest.java
+++
b/database/connector/dialect/sqlserver/src/test/java/org/apache/shardingsphere/database/connector/sql92/sqlserver/metadata/database/SQLServerDatabaseMetaDataTest.java
@@ -17,22 +17,84 @@
package
org.apache.shardingsphere.database.connector.sql92.sqlserver.metadata.database;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.enums.NullsOrderType;
import
org.apache.shardingsphere.database.connector.core.metadata.database.enums.QuoteCharacter;
import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.DialectDatabaseMetaData;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.IdentifierPatternType;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.altertable.DialectAlterTableOption;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.pagination.DialectPaginationOption;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.schema.DialectSchemaOption;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.transaction.DialectTransactionOption;
import
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
+import java.sql.Connection;
+import java.util.Optional;
+
import static org.hamcrest.Matchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
class SQLServerDatabaseMetaDataTest {
- private final DialectDatabaseMetaData dialectDatabaseMetaData =
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class,
TypedSPILoader.getService(DatabaseType.class, "SQLServer"));
+ private final DatabaseType databaseType =
TypedSPILoader.getService(DatabaseType.class, "SQLServer");
+
+ private final DialectDatabaseMetaData dialectDatabaseMetaData =
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class, databaseType);
@Test
void assertGetQuoteCharacter() {
assertThat(dialectDatabaseMetaData.getQuoteCharacter(),
is(QuoteCharacter.BRACKETS));
}
+
+ @Test
+ void assertGetIdentifierPatternType() {
+ assertThat(dialectDatabaseMetaData.getIdentifierPatternType(),
is(IdentifierPatternType.KEEP_ORIGIN));
+ }
+
+ @Test
+ void assertGetDefaultNullsOrderType() {
+ assertThat(dialectDatabaseMetaData.getDefaultNullsOrderType(),
is(NullsOrderType.LOW));
+ }
+
+ @Test
+ void assertGetSchemaOption() {
+ DialectSchemaOption actual = dialectDatabaseMetaData.getSchemaOption();
+ assertFalse(actual.isSchemaAvailable());
+ assertThat(actual.getDefaultSchema(), is(Optional.of("dbo")));
+ assertThat(actual.getDefaultSystemSchema(), is(Optional.empty()));
+ }
+
+ @Test
+ void assertGetTransactionOption() {
+ DialectTransactionOption actual =
dialectDatabaseMetaData.getTransactionOption();
+ assertFalse(actual.isSupportGlobalCSN());
+ assertFalse(actual.isDDLNeedImplicitCommit());
+ assertFalse(actual.isSupportAutoCommitInNestedTransaction());
+ assertFalse(actual.isSupportDDLInXATransaction());
+ assertTrue(actual.isSupportMetaDataRefreshInTransaction());
+ assertThat(actual.getDefaultIsolationLevel(),
is(Connection.TRANSACTION_READ_COMMITTED));
+ assertFalse(actual.isReturnRollbackStatementWhenCommitFailed());
+
assertFalse(actual.isAllowCommitAndRollbackOnlyWhenTransactionFailed());
+ assertThat(actual.getXaDriverClassNames().size(), is(1));
+
assertTrue(actual.getXaDriverClassNames().contains("com.microsoft.sqlserver.jdbc.SQLServerXADataSource"));
+ }
+
+ @Test
+ void assertGetPaginationOption() {
+ DialectPaginationOption actual =
dialectDatabaseMetaData.getPaginationOption();
+ assertTrue(actual.isContainsRowNumber());
+ assertThat(actual.getRowNumberColumnName(), is("ROW_NUMBER"));
+ assertTrue(actual.isContainsTop());
+ }
+
+ @Test
+ void assertGetAlterTableOption() {
+ Optional<DialectAlterTableOption> actual =
dialectDatabaseMetaData.getAlterTableOption();
+ assertTrue(actual.isPresent());
+
assertTrue(actual.map(DialectAlterTableOption::isSupportMergeDropColumns).orElse(false));
+
assertFalse(actual.map(DialectAlterTableOption::isContainsParenthesesOnMergeDropColumns).orElse(true));
+ }
}