// 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.
#ifndef SYNC_INTERNAL_PUBLIC_API_BASE_MODEL_TYPE_TEST_UTIL_H_
#define SYNC_INTERNAL_PUBLIC_API_BASE_MODEL_TYPE_TEST_UTIL_H_
#include <ostream>
#include "sync/internal_api/public/base/model_type.h"
#include "sync/notifier/object_id_invalidation_map.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace syncer {
// Builds an invaliation map that contains a single invalidation with specified
// type, version, and payload. The type will be converted from a ModelType to
// and ObjectId.
ObjectIdInvalidationMap BuildInvalidationMap(
ModelType type,
int version,
const std::string& payload);
// Builds an invalidation. Similar to Invalidation::Init, but its first
// parameter is a ModelType rather than an ObjectId.
syncer::Invalidation BuildInvalidation(
ModelType type,
int version,
const std::string& payload);
// Defined for googletest. Forwards to ModelTypeSetToString().
void PrintTo(ModelTypeSet model_types, ::std::ostream* os);
// A gmock matcher for ModelTypeSet. Use like:
//
// EXPECT_CALL(mock, ProcessModelTypes(HasModelTypes(expected_types)));
::testing::Matcher<ModelTypeSet> HasModelTypes(ModelTypeSet expected_types);
} // namespace syncer
#endif // SYNC_INTERNAL_PUBLIC_API_BASE_MODEL_TYPE_TEST_UTIL_H_