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

Reply via email to