blob: 61abb94b16565b9a53ae4ab4f93efcb26163e764 [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_SYNC_TEST_ENTITY_BUILDER_FACTORY_H_
#define COMPONENTS_SYNC_TEST_ENTITY_BUILDER_FACTORY_H_
#include <stdint.h>
#include <string>
#include "base/strings/string_util.h"
#include "components/sync/test/bookmark_entity_builder.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "url/gurl.h"
namespace fake_server {
// Creates various types of EntityBuilders.
//
// This class exists because we maintain state related to the fake client that
// supposedly created these entities.
//
// TODO(pvalenzuela): Revisit the naming of this class once the FakeServer
// injection API is widely used. If this class stays bookmark-specific, it
// should be named appropriately.
class EntityBuilderFactory {
public:
EntityBuilderFactory();
explicit EntityBuilderFactory(const std::string& cache_guid);
virtual ~EntityBuilderFactory();
BookmarkEntityBuilder NewBookmarkEntityBuilder(
const std::string& title,
absl::optional<std::string> originator_client_item_id = absl::nullopt);
private:
// An identifier used when creating entities. This value is used similarly to
// the value in the legacy Sync Directory code.
const std::string cache_guid_;
};
} // namespace fake_server
#endif // COMPONENTS_SYNC_TEST_ENTITY_BUILDER_FACTORY_H_