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 8d23af91007 Add more test cases on MySQLDatabaseMetaDataTest (#38128)
8d23af91007 is described below
commit 8d23af910072eacc188f188770e0bbbc0eb9560d
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Feb 22 00:31:04 2026 +0800
Add more test cases on MySQLDatabaseMetaDataTest (#38128)
---
.../database/MySQLDatabaseMetaDataTest.java | 75 +++++++++++++++++++++-
1 file changed, 73 insertions(+), 2 deletions(-)
diff --git
a/database/connector/dialect/mysql/src/test/java/org/apache/shardingsphere/database/connector/mysql/metadata/database/MySQLDatabaseMetaDataTest.java
b/database/connector/dialect/mysql/src/test/java/org/apache/shardingsphere/database/connector/mysql/metadata/database/MySQLDatabaseMetaDataTest.java
index c3b4a398f16..5907f6169c0 100644
---
a/database/connector/dialect/mysql/src/test/java/org/apache/shardingsphere/database/connector/mysql/metadata/database/MySQLDatabaseMetaDataTest.java
+++
b/database/connector/dialect/mysql/src/test/java/org/apache/shardingsphere/database/connector/mysql/metadata/database/MySQLDatabaseMetaDataTest.java
@@ -20,25 +20,96 @@ package
org.apache.shardingsphere.database.connector.mysql.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.connection.DialectConnectionOption;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.join.DialectJoinOption;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.keygen.DialectGeneratedKeyOption;
+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.database.connector.mysql.metadata.database.option.MySQLDataTypeOption;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
-import static org.hamcrest.Matchers.is;
+import java.sql.Connection;
+import java.util.Optional;
+
import static org.hamcrest.MatcherAssert.assertThat;
+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.assertTrue;
class MySQLDatabaseMetaDataTest {
- private final DialectDatabaseMetaData dialectDatabaseMetaData =
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class,
TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ private final DatabaseType databaseType =
TypedSPILoader.getService(DatabaseType.class, "MySQL");
+
+ private final DialectDatabaseMetaData dialectDatabaseMetaData =
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class, databaseType);
@Test
void assertGetQuoteCharacter() {
assertThat(dialectDatabaseMetaData.getQuoteCharacter(),
is(QuoteCharacter.BACK_QUOTE));
}
+ @Test
+ void assertGetIdentifierPatternType() {
+ assertThat(dialectDatabaseMetaData.getIdentifierPatternType(),
is(IdentifierPatternType.KEEP_ORIGIN));
+ }
+
@Test
void assertGetDefaultNullsOrderType() {
assertThat(dialectDatabaseMetaData.getDefaultNullsOrderType(),
is(NullsOrderType.LOW));
}
+
+ @Test
+ void assertGetDataTypeOption() {
+ assertThat(dialectDatabaseMetaData.getDataTypeOption(),
isA(MySQLDataTypeOption.class));
+ }
+
+ @Test
+ void assertGetColumnOption() {
+
assertFalse(dialectDatabaseMetaData.getColumnOption().isColumnNameEqualsLabelInColumnProjection());
+ }
+
+ @Test
+ void assertGetConnectionOption() {
+ DialectConnectionOption actual =
dialectDatabaseMetaData.getConnectionOption();
+ assertTrue(actual.isInstanceConnectionAvailable());
+ assertTrue(actual.isSupportThreeTierStorageStructure());
+ }
+
+ @Test
+ void assertGetTransactionOption() {
+ DialectTransactionOption actual =
dialectDatabaseMetaData.getTransactionOption();
+ assertFalse(actual.isSupportGlobalCSN());
+ assertFalse(actual.isDDLNeedImplicitCommit());
+ assertTrue(actual.isSupportAutoCommitInNestedTransaction());
+ assertFalse(actual.isSupportDDLInXATransaction());
+ assertTrue(actual.isSupportMetaDataRefreshInTransaction());
+ assertThat(actual.getDefaultIsolationLevel(),
is(Connection.TRANSACTION_REPEATABLE_READ));
+ assertFalse(actual.isReturnRollbackStatementWhenCommitFailed());
+
assertFalse(actual.isAllowCommitAndRollbackOnlyWhenTransactionFailed());
+ assertThat(actual.getXaDriverClassNames().size(), is(2));
+
assertTrue(actual.getXaDriverClassNames().contains("com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"));
+
assertTrue(actual.getXaDriverClassNames().contains("com.mysql.cj.jdbc.MysqlXADataSource"));
+ }
+
+ @Test
+ void assertGetJoinOption() {
+ DialectJoinOption actual = dialectDatabaseMetaData.getJoinOption();
+ assertTrue(actual.isUsingColumnsByProjectionOrder());
+ assertTrue(actual.isRightColumnsByFirstOrder());
+ }
+
+ @Test
+ void assertGetGeneratedKeyOption() {
+ Optional<DialectGeneratedKeyOption> actual =
dialectDatabaseMetaData.getGeneratedKeyOption();
+ assertTrue(actual.isPresent());
+
assertThat(actual.map(DialectGeneratedKeyOption::getColumnName).orElse(""),
is("GENERATED_KEY"));
+ }
+
+ @Test
+ void assertGetProtocolVersionOption() {
+
assertThat(dialectDatabaseMetaData.getProtocolVersionOption().getDefaultVersion(),
is("5.7.22"));
+ }
}