diff options
author | kste <kste@google.com> | 2022-06-21 02:51:46 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2022-06-21 02:52:26 -0700 |
commit | 5b2dc3ff27a83ef6de819bd5b1b8a94ef79dc1da (patch) | |
tree | 8db4d79a90cc1f1e2a6010c1041c4ac090421c77 /cc/util | |
parent | 5be6b8b32d732f5a6a65667dfda2162a49971a65 (diff) | |
download | tink-5b2dc3ff27a83ef6de819bd5b1b8a94ef79dc1da.tar.gz |
Make IsOk matcher compatible with StatusOr.
This allows to use this matcher with a StatusOr. At the moment one needs to write:
EXPECT_THAT(result.status(), IsOk()) and with this change this simplifies to EXPECT_THAT(result, IsOk());
PiperOrigin-RevId: 456207273
Diffstat (limited to 'cc/util')
-rw-r--r-- | cc/util/statusor_test.cc | 8 | ||||
-rw-r--r-- | cc/util/test_matchers.h | 11 |
2 files changed, 14 insertions, 5 deletions
diff --git a/cc/util/statusor_test.cc b/cc/util/statusor_test.cc index 8167ddd97..7aa85837c 100644 --- a/cc/util/statusor_test.cc +++ b/cc/util/statusor_test.cc @@ -95,10 +95,10 @@ TEST(StatusOrTest, WithNoDefaultConstructor) { TEST(StatusOrTest, AssignToErrorStatus) { StatusOr<std::string> error_initially = Status(absl::StatusCode::kInvalidArgument, "Error message"); - ASSERT_THAT(error_initially.status(), Not(IsOk())); + ASSERT_THAT(error_initially, Not(IsOk())); StatusOr<std::string> ok_initially = std::string("Hi"); error_initially = ok_initially; - ASSERT_THAT(error_initially.status(), IsOk()); + ASSERT_THAT(error_initially, IsOk()); ASSERT_THAT(error_initially.value(), Eq("Hi")); #ifndef TINK_USE_ABSL_STATUSOR @@ -113,10 +113,10 @@ TEST(StatusOrTest, AssignToErrorStatus) { TEST(StatusOrTest, AssignToErrorStatusImplicitConvertible) { StatusOr<std::string> error_initially = Status(absl::StatusCode::kInvalidArgument, "Error message"); - ASSERT_THAT(error_initially.status(), Not(IsOk())); + ASSERT_THAT(error_initially, Not(IsOk())); StatusOr<char const*> ok_initially = "Hi"; error_initially = ok_initially; - ASSERT_THAT(error_initially.status(), IsOk()); + ASSERT_THAT(error_initially, IsOk()); ASSERT_THAT(error_initially.value(), Eq("Hi")); #ifndef TINK_USE_ABSL_STATUSOR diff --git a/cc/util/test_matchers.h b/cc/util/test_matchers.h index 04db3df20..9f42156bd 100644 --- a/cc/util/test_matchers.h +++ b/cc/util/test_matchers.h @@ -102,6 +102,15 @@ class IsOkAndHoldsMatcher { }; } // namespace internal +inline std::string StatusToString(const util::Status& s) { + return s.ToString(); +} + +template <typename T> +std::string StatusToString(const util::StatusOr<T>& s) { + return s.status().ToString(); +} + // Matches a util::StatusOk() value. // This is better than EXPECT_TRUE(status.ok()) // because the error message is a part of the failure messsage. @@ -109,7 +118,7 @@ MATCHER(IsOk, "is a Status with an OK value") { if (arg.ok()) { return true; } - *result_listener << arg.ToString(); + *result_listener << StatusToString(arg); return false; } |