@@ -117,32 +117,38 @@ TEST_F(InMemoryCatalogTest, RegisterTable) {
117117TEST_F (InMemoryCatalogTest, RefreshTable) {
118118 TableIdentifier tableIdent{.ns = {}, .name = " t1" };
119119
120- std::unique_ptr<TableMetadata> metadata;
121- ASSERT_NO_FATAL_FAILURE (ReadTableMetadata (" TableMetadataV2Valid.json" , &metadata));
122-
123- metadata->current_snapshot_id = 3051729675574597004 ;
124120 auto table_location = GenerateTestTableLocation (tableIdent.name );
125- auto metadata_location = std::format (" {}v0.metadata.json" , table_location);
126- auto status = TableMetadataUtil::Write (*file_io_, metadata_location, *metadata);
127- EXPECT_THAT (status, IsOk ());
128-
121+ auto buildTable = [this , &tableIdent, &table_location](
122+ int64_t snapshot_id, int64_t version) -> std::unique_ptr<Table> {
123+ std::unique_ptr<TableMetadata> metadata;
124+
125+ ReadTableMetadata (" TableMetadataV2Valid.json" , &metadata);
126+ metadata->current_snapshot_id = snapshot_id;
127+
128+ auto metadata_location = std::format (" {}v{}.metadata.json" , table_location, version);
129+ auto status = TableMetadataUtil::Write (*file_io_, metadata_location, *metadata);
130+ EXPECT_THAT (status, IsOk ());
131+
132+ return std::make_unique<Table>(tableIdent, std::move (metadata), metadata_location,
133+ file_io_, std::static_pointer_cast<Catalog>(catalog_));
134+ };
135+
136+ auto table_v0 = buildTable (3051729675574597004 , 0 );
137+ auto table_v1 = buildTable (3055729675574597004 , 1 );
138+ EXPECT_CALL (*catalog_, LoadTable (::testing::_))
139+ .WillOnce (::testing::Return (
140+ ::testing::ByMove (Result<std::unique_ptr<Table>>(std::move(table_v0)))))
141+ .WillOnce(::testing::Return(
142+ ::testing::ByMove (Result<std::unique_ptr<Table>>(std::move(table_v1)))));
143+
144+ auto metadata_location = std::format(" {}v{}.metadata.json" , table_location, 0 );
129145 auto table = catalog_->RegisterTable (tableIdent, metadata_location);
130146 EXPECT_THAT (table, IsOk ());
131147 ASSERT_TRUE (table.value ()->current_snapshot ().has_value ());
132148 ASSERT_EQ (table.value ()->current_snapshot ().value ()->snapshot_id , 3051729675574597004 );
133149
134- // update table version to 3055729675574597004
135- metadata_location = std::format (" {}v1.metadata.json" , table_location);
136- metadata->current_snapshot_id = 3055729675574597004 ;
137- status = TableMetadataUtil::Write (*file_io_, metadata_location, *metadata);
138- EXPECT_THAT (status, IsOk ());
139-
140- // update table metadata location in catalog
141- status = catalog_->UpdateTableMetaLocation (tableIdent, metadata_location);
142- EXPECT_THAT (status, IsOk ());
143-
144150 // same version
145- status = table.value ()->Refresh ();
151+ auto status = table.value ()->Refresh ();
146152 EXPECT_THAT (status, IsOk ());
147153 ASSERT_TRUE (table.value ()->current_snapshot ().has_value ());
148154 ASSERT_EQ (table.value ()->current_snapshot ().value ()->snapshot_id , 3055729675574597004 );
0 commit comments