2828
2929#include " iceberg/exception.h"
3030#include " iceberg/util/formatter.h" // IWYU pragma: keep
31+ #include " matchers.h"
3132
3233struct TypeTestCase {
3334 // / Test case name, must be safe for Googletest (alphanumeric + underscore)
@@ -316,21 +317,21 @@ TEST(TypeTest, List) {
316317 ASSERT_EQ (1 , fields.size ());
317318 ASSERT_EQ (field, fields[0 ]);
318319 auto result = list.GetFieldByIndex (5 );
319- ASSERT_EQ (result. error (). kind , iceberg::ErrorKind::kInvalidArgument );
320- ASSERT_THAT (result. error (). message ,
321- ::testing::HasSubstr (" Invalid index 5 to get field from list" ));
320+ ASSERT_THAT (result, IsError ( iceberg::ErrorKind::kInvalidArgument ) );
321+ ASSERT_THAT (result,
322+ iceberg::HasErrorMessage (" Invalid index 5 to get field from list" ));
322323 ASSERT_THAT (list.GetFieldByIndex (0 ), ::testing::Optional (field));
323324 ASSERT_THAT (list.GetFieldByName (" element" ), ::testing::Optional (field));
324325
325326 ASSERT_EQ (std::nullopt , list.GetFieldById (0 ));
326327 result = list.GetFieldByIndex (1 );
327- ASSERT_EQ (result. error (). kind , iceberg::ErrorKind::kInvalidArgument );
328- ASSERT_THAT (result. error (). message ,
329- ::testing::HasSubstr (" Invalid index 1 to get field from list" ));
328+ ASSERT_THAT (result, IsError ( iceberg::ErrorKind::kInvalidArgument ) );
329+ ASSERT_THAT (result,
330+ iceberg::HasErrorMessage (" Invalid index 1 to get field from list" ));
330331 result = list.GetFieldByIndex (-1 );
331- ASSERT_EQ (result. error (). kind , iceberg::ErrorKind::kInvalidArgument );
332- ASSERT_THAT (result. error (). message ,
333- ::testing::HasSubstr (" Invalid index -1 to get field from list" ));
332+ ASSERT_THAT (result, IsError ( iceberg::ErrorKind::kInvalidArgument ) );
333+ ASSERT_THAT (result,
334+ iceberg::HasErrorMessage (" Invalid index -1 to get field from list" ));
334335 ASSERT_EQ (std::nullopt , list.GetFieldByName (" foo" ));
335336 }
336337 ASSERT_THAT (
@@ -360,13 +361,13 @@ TEST(TypeTest, Map) {
360361
361362 ASSERT_EQ (std::nullopt , map.GetFieldById (0 ));
362363 auto result = map.GetFieldByIndex (2 );
363- ASSERT_EQ (result. error (). kind , iceberg::ErrorKind::kInvalidArgument );
364- ASSERT_THAT (result. error (). message ,
365- ::testing::HasSubstr (" Invalid index 2 to get field from map" ));
364+ ASSERT_THAT (result, IsError ( iceberg::ErrorKind::kInvalidArgument ) );
365+ ASSERT_THAT (result,
366+ iceberg::HasErrorMessage (" Invalid index 2 to get field from map" ));
366367 result = map.GetFieldByIndex (-1 );
367- ASSERT_EQ (result. error (). kind , iceberg::ErrorKind::kInvalidArgument );
368- ASSERT_THAT (result. error (). message ,
369- ::testing::HasSubstr (" Invalid index -1 to get field from map" ));
368+ ASSERT_THAT (result, IsError ( iceberg::ErrorKind::kInvalidArgument ) );
369+ ASSERT_THAT (result,
370+ iceberg::HasErrorMessage (" Invalid index -1 to get field from map" ));
370371 ASSERT_EQ (std::nullopt , map.GetFieldByName (" element" ));
371372 }
372373 ASSERT_THAT (
@@ -405,13 +406,13 @@ TEST(TypeTest, Struct) {
405406
406407 ASSERT_EQ (std::nullopt , struct_.GetFieldById (0 ));
407408 auto result = struct_.GetFieldByIndex (2 );
408- ASSERT_EQ (result. error (). kind , iceberg::ErrorKind::kInvalidArgument );
409- ASSERT_THAT (result. error (). message ,
410- ::testing::HasSubstr (" Invalid index 2 to get field from struct" ));
409+ ASSERT_THAT (result, IsError ( iceberg::ErrorKind::kInvalidArgument ) );
410+ ASSERT_THAT (result,
411+ iceberg::HasErrorMessage (" Invalid index 2 to get field from struct" ));
411412 result = struct_.GetFieldByIndex (-1 );
412- ASSERT_EQ (result. error (). kind , iceberg::ErrorKind::kInvalidArgument );
413- ASSERT_THAT (result. error (). message ,
414- ::testing::HasSubstr (" Invalid index -1 to get field from struct" ));
413+ ASSERT_THAT (result, IsError ( iceberg::ErrorKind::kInvalidArgument ) );
414+ ASSERT_THAT (result,
415+ iceberg::HasErrorMessage (" Invalid index -1 to get field from struct" ));
415416 ASSERT_EQ (std::nullopt , struct_.GetFieldByName (" element" ));
416417 }
417418}
@@ -480,9 +481,9 @@ TEST(TypeTest, StructDuplicateId) {
480481
481482 auto result = struct_.GetFieldById (5 );
482483 ASSERT_FALSE (result.has_value ());
483- ASSERT_EQ (result. error (). kind , iceberg::ErrorKind::kInvalidSchema );
484- ASSERT_THAT (result. error (). message ,
485- ::testing::HasSubstr (
484+ ASSERT_THAT (result, IsError ( iceberg::ErrorKind::kInvalidSchema ) );
485+ ASSERT_THAT (result,
486+ iceberg::HasErrorMessage (
486487 " Duplicate field id found: 5 (prev name: foo, curr name: bar)" ));
487488}
488489
@@ -493,10 +494,9 @@ TEST(TypeTest, StructDuplicateName) {
493494
494495 auto result = struct_.GetFieldByName (" foo" , true );
495496 ASSERT_FALSE (result.has_value ());
496- ASSERT_EQ (result.error ().kind , iceberg::ErrorKind::kInvalidSchema );
497- ASSERT_THAT (
498- result.error ().message ,
499- ::testing::HasSubstr (" Duplicate field name found: foo (prev id: 1, curr id: 2)" ));
497+ ASSERT_THAT (result, IsError (iceberg::ErrorKind::kInvalidSchema ));
498+ ASSERT_THAT (result, iceberg::HasErrorMessage (
499+ " Duplicate field name found: foo (prev id: 1, curr id: 2)" ));
500500}
501501
502502TEST (TypeTest, StructDuplicateLowerCaseName) {
@@ -506,8 +506,8 @@ TEST(TypeTest, StructDuplicateLowerCaseName) {
506506
507507 auto result = struct_.GetFieldByName (" foo" , false );
508508 ASSERT_FALSE (result.has_value ());
509- ASSERT_EQ (result. error (). kind , iceberg::ErrorKind::kInvalidSchema );
510- ASSERT_THAT (
511- result. error (). message ,
512- ::testing::HasSubstr ( " Duplicate field name found: foo (prev id: 1, curr id: 2)" ));
509+ ASSERT_THAT (result, IsError ( iceberg::ErrorKind::kInvalidSchema ) );
510+ ASSERT_THAT (result,
511+ iceberg::HasErrorMessage (
512+ " Duplicate lowercase field name found: foo (prev id: 1, curr id: 2)" ));
513513}
0 commit comments