@@ -231,6 +231,39 @@ TEST_F(TableMetadataBuilderTest, TableRequirementAssertUUIDCaseInsensitive) {
231231 ASSERT_THAT (requirement.Validate (base_metadata_.get ()), IsOk ());
232232}
233233
234+ TEST_F (TableMetadataBuilderTest, TableRequirementAssertCurrentSchemaIDSuccess) {
235+ base_metadata_->current_schema_id = 5 ;
236+ table::AssertCurrentSchemaID requirement (5 );
237+
238+ ASSERT_THAT (requirement.Validate (base_metadata_.get ()), IsOk ());
239+ }
240+
241+ TEST_F (TableMetadataBuilderTest, TableRequirementAssertCurrentSchemaIDMismatch) {
242+ base_metadata_->current_schema_id = 5 ;
243+ table::AssertCurrentSchemaID requirement (10 );
244+
245+ auto status = requirement.Validate (base_metadata_.get ());
246+ EXPECT_THAT (status, IsError (ErrorKind::kCommitFailed ));
247+ EXPECT_THAT (status, HasErrorMessage (" schema ID does not match" ));
248+ }
249+
250+ TEST_F (TableMetadataBuilderTest, TableRequirementAssertCurrentSchemaIDNullBase) {
251+ table::AssertCurrentSchemaID requirement (5 );
252+
253+ auto status = requirement.Validate (nullptr );
254+ EXPECT_THAT (status, IsError (ErrorKind::kCommitFailed ));
255+ EXPECT_THAT (status, HasErrorMessage (" metadata is missing" ));
256+ }
257+
258+ TEST_F (TableMetadataBuilderTest, TableRequirementAssertCurrentSchemaIDNotSet) {
259+ base_metadata_->current_schema_id = std::nullopt ;
260+ table::AssertCurrentSchemaID requirement (5 );
261+
262+ auto status = requirement.Validate (base_metadata_.get ());
263+ EXPECT_THAT (status, IsError (ErrorKind::kCommitFailed ));
264+ EXPECT_THAT (status, HasErrorMessage (" schema ID is not set" ));
265+ }
266+
234267// ============================================================================
235268// Integration Tests - End-to-End Workflow
236269// ============================================================================
0 commit comments