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 e475cbc3740 Add more test cases on OracleDatabaseMetaDataTest (#38136)
e475cbc3740 is described below
commit e475cbc37405eaaa7a36bb0280dbe7c3fa37b071
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Feb 22 14:55:27 2026 +0800
Add more test cases on OracleDatabaseMetaDataTest (#38136)
---
.../database/OracleDatabaseMetaDataTest.java | 82 ++++++++++++++++++----
1 file changed, 69 insertions(+), 13 deletions(-)
diff --git
a/database/connector/dialect/oracle/src/test/java/org/apache/shardingsphere/database/connector/oracle/metadata/database/OracleDatabaseMetaDataTest.java
b/database/connector/dialect/oracle/src/test/java/org/apache/shardingsphere/database/connector/oracle/metadata/database/OracleDatabaseMetaDataTest.java
index 365dc3d7aaf..b2652ba674d 100644
---
a/database/connector/dialect/oracle/src/test/java/org/apache/shardingsphere/database/connector/oracle/metadata/database/OracleDatabaseMetaDataTest.java
+++
b/database/connector/dialect/oracle/src/test/java/org/apache/shardingsphere/database/connector/oracle/metadata/database/OracleDatabaseMetaDataTest.java
@@ -17,22 +17,30 @@
package org.apache.shardingsphere.database.connector.oracle.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.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.connection.DialectConnectionOption;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.pagination.DialectPaginationOption;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.transaction.DialectTransactionOption;
import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.DialectDatabaseMetaData;
import
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import
org.apache.shardingsphere.database.connector.oracle.metadata.database.option.OracleDataTypeOption;
+import
org.apache.shardingsphere.database.connector.oracle.metadata.database.option.OracleSchemaOption;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
import java.sql.Connection;
-import java.sql.SQLException;
+import java.util.Collections;
+import java.util.Optional;
import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.isA;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
class OracleDatabaseMetaDataTest {
@@ -44,16 +52,64 @@ class OracleDatabaseMetaDataTest {
}
@Test
- void assertGetSchema() throws SQLException {
- Connection connection = mock(Connection.class, RETURNS_DEEP_STUBS);
- when(connection.getMetaData().getUserName()).thenReturn("scott");
-
assertThat(dialectDatabaseMetaData.getSchemaOption().getSchema(connection),
is("SCOTT"));
+ void assertGetIdentifierPatternType() {
+ assertThat(dialectDatabaseMetaData.getIdentifierPatternType(),
is(IdentifierPatternType.UPPER_CASE));
}
@Test
- void assertGetSchemaIfExceptionThrown() throws SQLException {
- Connection connection = mock(Connection.class, RETURNS_DEEP_STUBS);
-
when(connection.getMetaData().getUserName()).thenThrow(SQLException.class);
-
assertNull(dialectDatabaseMetaData.getSchemaOption().getSchema(connection));
+ void assertGetDefaultNullsOrderType() {
+ assertThat(dialectDatabaseMetaData.getDefaultNullsOrderType(),
is(NullsOrderType.HIGH));
+ }
+
+ @Test
+ void assertGetDataTypeOption() {
+ assertThat(dialectDatabaseMetaData.getDataTypeOption(),
isA(OracleDataTypeOption.class));
+ }
+
+ @Test
+ void assertGetSchemaOption() {
+ assertThat(dialectDatabaseMetaData.getSchemaOption(),
isA(OracleSchemaOption.class));
+ }
+
+ @Test
+ void assertGetIndexOption() {
+
assertTrue(dialectDatabaseMetaData.getIndexOption().isSchemaUniquenessLevel());
+ }
+
+ @Test
+ void assertGetConnectionOption() {
+ DialectConnectionOption actualConnectionOption =
dialectDatabaseMetaData.getConnectionOption();
+ assertTrue(actualConnectionOption.isInstanceConnectionAvailable());
+
assertFalse(actualConnectionOption.isSupportThreeTierStorageStructure());
+ }
+
+ @Test
+ void assertGetTransactionOption() {
+ DialectTransactionOption actualTransactionOption =
dialectDatabaseMetaData.getTransactionOption();
+ assertFalse(actualTransactionOption.isSupportGlobalCSN());
+ assertFalse(actualTransactionOption.isDDLNeedImplicitCommit());
+
assertFalse(actualTransactionOption.isSupportAutoCommitInNestedTransaction());
+ assertFalse(actualTransactionOption.isSupportDDLInXATransaction());
+
assertTrue(actualTransactionOption.isSupportMetaDataRefreshInTransaction());
+ assertThat(actualTransactionOption.getDefaultIsolationLevel(),
is(Connection.TRANSACTION_READ_COMMITTED));
+
assertFalse(actualTransactionOption.isReturnRollbackStatementWhenCommitFailed());
+
assertFalse(actualTransactionOption.isAllowCommitAndRollbackOnlyWhenTransactionFailed());
+ assertThat(actualTransactionOption.getXaDriverClassNames(),
is(Collections.singleton("oracle.jdbc.xa.client.OracleXADataSource")));
+ }
+
+ @Test
+ void assertGetPaginationOption() {
+ DialectPaginationOption actualPaginationOption =
dialectDatabaseMetaData.getPaginationOption();
+ assertTrue(actualPaginationOption.isContainsRowNumber());
+ assertThat(actualPaginationOption.getRowNumberColumnName(),
is("ROWNUM"));
+ assertFalse(actualPaginationOption.isContainsTop());
+ }
+
+ @Test
+ void assertGetAlterTableOption() {
+ Optional<DialectAlterTableOption> actualAlterTableOption =
dialectDatabaseMetaData.getAlterTableOption();
+ assertTrue(actualAlterTableOption.isPresent());
+ assertTrue(actualAlterTableOption.get().isSupportMergeDropColumns());
+
assertTrue(actualAlterTableOption.get().isContainsParenthesesOnMergeDropColumns());
}
}