blob: 8378b2909b1e3a461ee4686271d5dfcb35230edf [file] [log] [blame]
// Copyright (c) 2012 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 "components/sync/base/model_type_test_util.h"
#include "base/macros.h"
namespace syncer {
void PrintTo(ModelTypeSet model_types, ::std::ostream* os) {
*os << ModelTypeSetToString(model_types);
}
namespace {
// Matcher implementation for HasModelTypes().
class HasModelTypesMatcher : public ::testing::MatcherInterface<ModelTypeSet> {
public:
explicit HasModelTypesMatcher(ModelTypeSet expected_types)
: expected_types_(expected_types) {}
virtual ~HasModelTypesMatcher() {}
virtual bool MatchAndExplain(ModelTypeSet model_types,
::testing::MatchResultListener* listener) const {
// No need to annotate listener since we already define PrintTo().
return model_types == expected_types_;
}
virtual void DescribeTo(::std::ostream* os) const {
*os << "has model types " << ModelTypeSetToString(expected_types_);
}
virtual void DescribeNegationTo(::std::ostream* os) const {
*os << "doesn't have model types " << ModelTypeSetToString(expected_types_);
}
private:
const ModelTypeSet expected_types_;
DISALLOW_COPY_AND_ASSIGN(HasModelTypesMatcher);
};
} // namespace
::testing::Matcher<ModelTypeSet> HasModelTypes(ModelTypeSet expected_types) {
return ::testing::MakeMatcher(new HasModelTypesMatcher(expected_types));
}
} // namespace syncer