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 94d27a34ba3 Add more test cases on ColumnMetaDataLoaderTest (#38104)
94d27a34ba3 is described below

commit 94d27a34ba36d66c3118f9e2a149066bb10bc26b
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Feb 20 01:03:10 2026 +0800

    Add more test cases on ColumnMetaDataLoaderTest (#38104)
---
 .../data/loader/type/ColumnMetaDataLoaderTest.java | 48 ++++++++++++----------
 1 file changed, 27 insertions(+), 21 deletions(-)

diff --git 
a/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/type/ColumnMetaDataLoaderTest.java
 
b/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/type/ColumnMetaDataLoaderTest.java
index a3999227df9..f6bfca0e976 100644
--- 
a/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/type/ColumnMetaDataLoaderTest.java
+++ 
b/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/type/ColumnMetaDataLoaderTest.java
@@ -37,49 +37,45 @@ import java.util.Iterator;
 
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @ExtendWith(MockitoExtension.class)
 class ColumnMetaDataLoaderTest {
     
-    private final DatabaseType databaseType = 
TypedSPILoader.getService(DatabaseType.class, "TRUNK");
+    private final DatabaseType databaseType = 
TypedSPILoader.getService(DatabaseType.class, "FIXTURE");
     
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Connection connection;
     
-    @Mock
-    private ResultSet primaryResultSet;
-    
     @Mock
     private ResultSet columnResultSet;
     
-    @Mock
-    private ResultSet caseSensitivesResultSet;
-    
-    @Mock
-    private ResultSetMetaData resultSetMetaData;
-    
     @BeforeEach
     void setUp() throws SQLException {
         when(connection.getCatalog()).thenReturn("catalog");
-        when(connection.getMetaData().getPrimaryKeys("catalog", null, 
"tbl")).thenReturn(primaryResultSet);
-        when(primaryResultSet.next()).thenReturn(true, false);
-        when(primaryResultSet.getString("COLUMN_NAME")).thenReturn("pk_col");
+        ResultSet resultSet = mock(ResultSet.class);
+        when(resultSet.next()).thenReturn(true, false);
+        when(resultSet.getString("COLUMN_NAME")).thenReturn("pk_col");
+        when(connection.getMetaData().getPrimaryKeys("catalog", null, 
"tbl")).thenReturn(resultSet);
         when(connection.getMetaData().getColumns("catalog", null, "tbl", 
"%")).thenReturn(columnResultSet);
-        when(columnResultSet.next()).thenReturn(true, true, false);
-        when(columnResultSet.getString("TABLE_NAME")).thenReturn("tbl");
+    }
+    
+    @Test
+    void assertLoad() throws SQLException {
+        when(columnResultSet.next()).thenReturn(true, true, true, false);
+        when(columnResultSet.getString("TABLE_NAME")).thenReturn("other_tbl", 
"tbl", "tbl");
         when(columnResultSet.getString("COLUMN_NAME")).thenReturn("pk_col", 
"col");
         when(columnResultSet.getInt("DATA_TYPE")).thenReturn(Types.INTEGER, 
Types.VARCHAR);
-        
when(connection.createStatement().executeQuery(anyString())).thenReturn(caseSensitivesResultSet);
+        ResultSet caseSensitivesResultSet = mock(ResultSet.class);
         when(caseSensitivesResultSet.findColumn("pk_col")).thenReturn(1);
         when(caseSensitivesResultSet.findColumn("col")).thenReturn(2);
-        
when(caseSensitivesResultSet.getMetaData()).thenReturn(resultSetMetaData);
+        ResultSetMetaData resultSetMetaData = mock(ResultSetMetaData.class);
         when(resultSetMetaData.isCaseSensitive(1)).thenReturn(true);
-    }
-    
-    @Test
-    void assertLoad() throws SQLException {
+        
when(caseSensitivesResultSet.getMetaData()).thenReturn(resultSetMetaData);
+        
when(connection.createStatement().executeQuery(anyString())).thenReturn(caseSensitivesResultSet);
         Collection<ColumnMetaData> actual = 
ColumnMetaDataLoader.load(connection, "tbl", databaseType);
         assertThat(actual.size(), is(2));
         Iterator<ColumnMetaData> columnMetaDataIterator = actual.iterator();
@@ -93,4 +89,14 @@ class ColumnMetaDataLoaderTest {
         assertThat(actual.isPrimaryKey(), is(primaryKey));
         assertThat(actual.isCaseSensitive(), is(caseSensitive));
     }
+    
+    @Test
+    void assertLoadWhenThrowsSQLException() throws SQLException {
+        when(columnResultSet.next()).thenReturn(true, false);
+        when(columnResultSet.getString("TABLE_NAME")).thenReturn("tbl");
+        when(columnResultSet.getString("COLUMN_NAME")).thenReturn("pk_col");
+        when(columnResultSet.getInt("DATA_TYPE")).thenReturn(Types.INTEGER);
+        
when(connection.createStatement().executeQuery(anyString())).thenThrow(SQLException.class);
+        assertThrows(SQLException.class, () -> 
ColumnMetaDataLoader.load(connection, "tbl", databaseType));
+    }
 }

Reply via email to