model_type_test_util.cc 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/sync/base/model_type_test_util.h"
  5. namespace syncer {
  6. void PrintTo(ModelTypeSet model_types, ::std::ostream* os) {
  7. *os << ModelTypeSetToDebugString(model_types);
  8. }
  9. namespace {
  10. // Matcher implementation for HasModelTypes().
  11. class HasModelTypesMatcher : public ::testing::MatcherInterface<ModelTypeSet> {
  12. public:
  13. explicit HasModelTypesMatcher(ModelTypeSet expected_types)
  14. : expected_types_(expected_types) {}
  15. HasModelTypesMatcher(const HasModelTypesMatcher&) = delete;
  16. HasModelTypesMatcher& operator=(const HasModelTypesMatcher&) = delete;
  17. ~HasModelTypesMatcher() override = default;
  18. bool MatchAndExplain(
  19. ModelTypeSet model_types,
  20. ::testing::MatchResultListener* listener) const override {
  21. // No need to annotate listener since we already define PrintTo().
  22. return model_types == expected_types_;
  23. }
  24. void DescribeTo(::std::ostream* os) const override {
  25. *os << "has model types " << ModelTypeSetToDebugString(expected_types_);
  26. }
  27. void DescribeNegationTo(::std::ostream* os) const override {
  28. *os << "doesn't have model types "
  29. << ModelTypeSetToDebugString(expected_types_);
  30. }
  31. private:
  32. const ModelTypeSet expected_types_;
  33. };
  34. } // namespace
  35. ::testing::Matcher<ModelTypeSet> HasModelTypes(ModelTypeSet expected_types) {
  36. return ::testing::MakeMatcher(new HasModelTypesMatcher(expected_types));
  37. }
  38. } // namespace syncer