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