blob: 17427a5347159cb71e973efc121a5e0494ce1e99 [file] [log] [blame]
#include "quiche/common/test_tools/quiche_test_utils.h"
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "quiche/common/platform/api/quiche_test.h"
namespace quiche::test {
namespace {
using ::testing::HasSubstr;
using ::testing::Not;
TEST(QuicheTestUtilsTest, StatusMatchers) {
const absl::Status ok = absl::OkStatus();
QUICHE_EXPECT_OK(ok);
QUICHE_ASSERT_OK(ok);
EXPECT_THAT(ok, IsOk());
const absl::StatusOr<int> ok_with_value = 2023;
QUICHE_EXPECT_OK(ok_with_value);
QUICHE_ASSERT_OK(ok_with_value);
EXPECT_THAT(ok_with_value, IsOk());
EXPECT_THAT(ok_with_value, IsOkAndHolds(2023));
const absl::Status err = absl::InternalError("test error");
EXPECT_THAT(err, Not(IsOk()));
EXPECT_THAT(err, StatusIs(absl::StatusCode::kInternal, HasSubstr("test")));
const absl::StatusOr<int> err_with_value = absl::InternalError("test error");
EXPECT_THAT(err_with_value, Not(IsOk()));
EXPECT_THAT(err_with_value, Not(IsOkAndHolds(2023)));
EXPECT_THAT(err_with_value,
StatusIs(absl::StatusCode::kInternal, HasSubstr("test")));
}
} // namespace
} // namespace quiche::test