1 #include "quiche/common/test_tools/quiche_test_utils.h"
2
3 #include "absl/status/status.h"
4 #include "absl/status/statusor.h"
5 #include "quiche/common/platform/api/quiche_test.h"
6
7 namespace quiche::test {
8 namespace {
9
10 using ::testing::HasSubstr;
11 using ::testing::Not;
12
TEST(QuicheTestUtilsTest,StatusMatchers)13 TEST(QuicheTestUtilsTest, StatusMatchers) {
14 const absl::Status ok = absl::OkStatus();
15 QUICHE_EXPECT_OK(ok);
16 QUICHE_ASSERT_OK(ok);
17 EXPECT_THAT(ok, IsOk());
18
19 const absl::StatusOr<int> ok_with_value = 2023;
20 QUICHE_EXPECT_OK(ok_with_value);
21 QUICHE_ASSERT_OK(ok_with_value);
22 EXPECT_THAT(ok_with_value, IsOk());
23 EXPECT_THAT(ok_with_value, IsOkAndHolds(2023));
24
25 const absl::Status err = absl::InternalError("test error");
26 EXPECT_THAT(err, Not(IsOk()));
27 EXPECT_THAT(err, StatusIs(absl::StatusCode::kInternal, HasSubstr("test")));
28
29 const absl::StatusOr<int> err_with_value = absl::InternalError("test error");
30 EXPECT_THAT(err_with_value, Not(IsOk()));
31 EXPECT_THAT(err_with_value, Not(IsOkAndHolds(2023)));
32 EXPECT_THAT(err_with_value,
33 StatusIs(absl::StatusCode::kInternal, HasSubstr("test")));
34 }
35
36 } // namespace
37 } // namespace quiche::test
38