nastra commented on code in PR #14113:
URL: https://github.com/apache/iceberg/pull/14113#discussion_r2364025070
##########
bigquery/src/test/java/org/apache/iceberg/gcp/bigquery/TestBigQueryCatalog.java:
##########
@@ -144,9 +154,61 @@ public void createTableTransaction(int formatVersion) {
@Test
public void testCreateTableWithDefaultColumnValue() {}
- @Disabled("BigQuery Metastore does not support multi layer namespaces")
@Test
- public void testLoadMetadataTable() {}
+ public void testLoadMetadataTable() {
+
+ // Create a spy of the catalog to verify method calls
+ BigQueryMetastoreCatalog spyCatalog = spy(catalog);
+
+ // Create mock objects
+ TableOperations mockOps = Mockito.mock(TableOperations.class);
+ TableMetadata mockMetadata = Mockito.mock(TableMetadata.class);
+ Table mockMetadataTable = Mockito.mock(Table.class);
+
+ // Mock the table operations to return metadata (indicating base table
exists)
+ when(mockOps.current()).thenReturn(mockMetadata);
+
+ // Create the expected base table identifier that will be extracted from
the metadata table
+ // identifier
+ TableIdentifier expectedBaseTableId = TableIdentifier.of("dataset1",
"table1");
+ when(spyCatalog.newTableOps(expectedBaseTableId)).thenReturn(mockOps);
+
+ // Use MockedStatic to mock the static
MetadataTableUtils.createMetadataTableInstance call
+ try (MockedStatic<MetadataTableUtils> mockedUtils =
+ Mockito.mockStatic(MetadataTableUtils.class)) {
+ mockedUtils
+ .when(
+ () ->
+ MetadataTableUtils.createMetadataTableInstance(
+ any(TableOperations.class),
+ any(String.class),
+ any(TableIdentifier.class),
+ any(TableIdentifier.class),
+ any()))
+ .thenReturn(mockMetadataTable);
+
+ // Create a metadata table identifier
+ TableIdentifier metadataTableId =
+ TableIdentifier.of(Namespace.of("dataset1", "table1"), "partitions");
+
+ // Call loadTable which should trigger the metadata table loading path
+ Table result = spyCatalog.loadTable(metadataTableId);
+
+ // Verify that MetadataTableUtils.createMetadataTableInstance was called
+ // This confirms that loadMetadataTable path was taken
+ mockedUtils.verify(
+ () ->
+ MetadataTableUtils.createMetadataTableInstance(
+ any(TableOperations.class),
+ any(String.class),
+ any(TableIdentifier.class),
+ any(TableIdentifier.class),
+ any()));
+
+ // Verify the result is the mocked metadata table
+ assertThat(result).isSameAs(mockMetadataTable);
+ }
+ }
Review Comment:
```suggestion
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]