aboutsummaryrefslogtreecommitdiff
path: root/cc/util
diff options
context:
space:
mode:
authorkste <kste@google.com>2022-06-21 02:51:46 -0700
committerCopybara-Service <copybara-worker@google.com>2022-06-21 02:52:26 -0700
commit5b2dc3ff27a83ef6de819bd5b1b8a94ef79dc1da (patch)
tree8db4d79a90cc1f1e2a6010c1041c4ac090421c77 /cc/util
parent5be6b8b32d732f5a6a65667dfda2162a49971a65 (diff)
downloadtink-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.cc8
-rw-r--r--cc/util/test_matchers.h11
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;
}