// Copyright 2020 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "status_test_support.h" namespace v8_crdtp { void PrintTo(const Status& status, std::ostream* os) { *os << status.ToASCIIString() << " (error: 0x" << std::hex << static_cast(status.error) << ", " << "pos: " << std::dec << status.pos << ")"; } namespace { class StatusIsMatcher : public testing::MatcherInterface { public: explicit StatusIsMatcher(Status status) : expected_(status) {} bool MatchAndExplain(Status status, testing::MatchResultListener* listener) const override { return status.error == expected_.error && status.pos == expected_.pos; } void DescribeTo(std::ostream* os) const override { *os << "equals to "; PrintTo(expected_, os); } private: Status expected_; }; class StatusIsOkMatcher : public testing::MatcherInterface { bool MatchAndExplain(Status status, testing::MatchResultListener* listener) const override { return status.ok(); } void DescribeTo(std::ostream* os) const override { *os << "is ok"; } }; } // namespace testing::Matcher StatusIsOk() { return MakeMatcher(new StatusIsOkMatcher()); } testing::Matcher StatusIs(Error error, size_t pos) { return MakeMatcher(new StatusIsMatcher(Status(error, pos))); } } // namespace v8_crdtp