| // Copyright 2018 The Fuchsia 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 "peridot/bin/ledger/storage/testing/storage_matcher.h" |
| |
| using testing::_; |
| using testing::AllOf; |
| using testing::Field; |
| |
| namespace storage { |
| |
| testing::Matcher<ObjectIdentifier> MatchesDigest( |
| testing::Matcher<std::string> matcher) { |
| return Property(&ObjectIdentifier::object_digest, |
| Property(&ObjectDigest::Serialize, matcher)); |
| } |
| |
| testing::Matcher<ObjectIdentifier> MatchesDigest( |
| testing::Matcher<ObjectDigest> matcher) { |
| return Property(&ObjectIdentifier::object_digest, matcher); |
| } |
| |
| testing::Matcher<Entry> MatchesEntry( |
| std::pair<testing::Matcher<std::string>, testing::Matcher<ObjectIdentifier>> |
| matcher) { |
| return MatchesEntry({matcher.first, matcher.second, _}); |
| } |
| |
| testing::Matcher<Entry> MatchesEntry( |
| std::tuple<testing::Matcher<std::string>, |
| testing::Matcher<ObjectIdentifier>, |
| testing::Matcher<KeyPriority>> |
| matcher) { |
| return AllOf(Field(&Entry::key, std::get<0>(matcher)), |
| Field(&Entry::object_identifier, std::get<1>(matcher)), |
| Field(&Entry::priority, std::get<2>(matcher))); |
| } |
| |
| } // namespace storage |