Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Unified Diff: sync/test/engine/mock_model_type_processor.h

Issue 2130453004: [Sync] Move //sync to //components/sync. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sync/test/engine/mock_connection_manager.cc ('k') | sync/test/engine/mock_model_type_processor.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/test/engine/mock_model_type_processor.h
diff --git a/sync/test/engine/mock_model_type_processor.h b/sync/test/engine/mock_model_type_processor.h
deleted file mode 100644
index e129ec884529f9e4399842a8ae40f80a628b578f..0000000000000000000000000000000000000000
--- a/sync/test/engine/mock_model_type_processor.h
+++ /dev/null
@@ -1,152 +0,0 @@
-// Copyright 2014 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_TEST_ENGINE_MOCK_MODEL_TYPE_PROCESSOR_H_
-#define SYNC_TEST_ENGINE_MOCK_MODEL_TYPE_PROCESSOR_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <map>
-#include <string>
-#include <vector>
-
-#include "base/callback.h"
-#include "base/macros.h"
-#include "sync/internal_api/public/model_type_processor.h"
-#include "sync/internal_api/public/non_blocking_sync_common.h"
-#include "sync/protocol/data_type_state.pb.h"
-
-namespace syncer_v2 {
-
-// Mocks the ModelTypeProcessor.
-//
-// This mock is made simpler by not using any threads. It does still have the
-// ability to defer execution if we need to test race conditions, though.
-//
-// It maintains some state to try to make its behavior more realistic. It
-// updates this state as it creates commit requests or receives update and
-// commit responses.
-//
-// It keeps a log of all received messages so tests can make assertions based
-// on their value.
-class MockModelTypeProcessor : public ModelTypeProcessor {
- public:
- typedef base::Callback<void()> DisconnectCallback;
-
- MockModelTypeProcessor();
- ~MockModelTypeProcessor() override;
-
- // Implementation of ModelTypeProcessor.
- void ConnectSync(std::unique_ptr<CommitQueue> commit_queue) override;
- void DisconnectSync() override;
- void OnCommitCompleted(const sync_pb::DataTypeState& type_state,
- const CommitResponseDataList& response_list) override;
- void OnUpdateReceived(const sync_pb::DataTypeState& type_state,
- const UpdateResponseDataList& response_list) override;
-
- // By default, this object behaves as if all messages are processed
- // immediately. Sometimes it is useful to defer work until later, as might
- // happen in the real world if the model thread's task queue gets backed up.
- void SetSynchronousExecution(bool is_synchronous);
-
- // Runs any work that was deferred while this class was in asynchronous mode.
- //
- // This function is not useful unless this object is set to synchronous
- // execution mode, which is the default.
- void RunQueuedTasks();
-
- // Generate commit or deletion requests to be sent to the server.
- // These functions update local state to keep sequence numbers consistent.
- //
- // A real ModelTypeProcessor would forward these kinds of messages
- // directly to its attached CommitQueue. These methods
- // return the value to the caller so the test framework can handle them as it
- // sees fit.
- CommitRequestData CommitRequest(const std::string& tag_hash,
- const sync_pb::EntitySpecifics& specifics);
- CommitRequestData DeleteRequest(const std::string& tag_hash);
-
- // Getters to access the log of received update responses.
- //
- // Does not includes repsonses that are in pending tasks.
- size_t GetNumUpdateResponses() const;
- UpdateResponseDataList GetNthUpdateResponse(size_t n) const;
- sync_pb::DataTypeState GetNthTypeStateReceivedInUpdateResponse(
- size_t n) const;
-
- // Getters to access the log of received commit responses.
- //
- // Does not includes responses that are in pending tasks.
- size_t GetNumCommitResponses() const;
- CommitResponseDataList GetNthCommitResponse(size_t n) const;
- sync_pb::DataTypeState GetNthTypeStateReceivedInCommitResponse(
- size_t n) const;
-
- // Getters to access the lastest update response for a given tag_hash.
- bool HasUpdateResponse(const std::string& tag_hash) const;
- UpdateResponseData GetUpdateResponse(const std::string& tag_hash) const;
-
- // Getters to access the lastest commit response for a given tag_hash.
- bool HasCommitResponse(const std::string& tag_hash) const;
- CommitResponseData GetCommitResponse(const std::string& tag_hash) const;
-
- void SetDisconnectCallback(const DisconnectCallback& callback);
-
- private:
- // Process a received commit response.
- //
- // Implemented as an Impl method so we can defer its execution in some cases.
- void OnCommitCompletedImpl(const sync_pb::DataTypeState& type_state,
- const CommitResponseDataList& response_list);
-
- // Process a received update response.
- //
- // Implemented as an Impl method so we can defer its execution in some cases.
- void OnUpdateReceivedImpl(const sync_pb::DataTypeState& type_state,
- const UpdateResponseDataList& response_list);
-
- // Getter and setter for per-item sequence number tracking.
- int64_t GetCurrentSequenceNumber(const std::string& tag_hash) const;
- int64_t GetNextSequenceNumber(const std::string& tag_hash);
-
- // Getter and setter for per-item base version tracking.
- int64_t GetBaseVersion(const std::string& tag_hash) const;
- void SetBaseVersion(const std::string& tag_hash, int64_t version);
-
- // Getters and setter for server-assigned ID values.
- bool HasServerAssignedId(const std::string& tag_hash) const;
- const std::string& GetServerAssignedId(const std::string& tag_hash) const;
- void SetServerAssignedId(const std::string& tag_hash, const std::string& id);
-
- // State related to the implementation of deferred work.
- // See SetSynchronousExecution() for details.
- bool is_synchronous_;
- std::vector<base::Closure> pending_tasks_;
- std::unique_ptr<CommitQueue> commit_queue_;
-
- // A log of messages received by this object.
- std::vector<CommitResponseDataList> received_commit_responses_;
- std::vector<UpdateResponseDataList> received_update_responses_;
- std::vector<sync_pb::DataTypeState> type_states_received_on_update_;
- std::vector<sync_pb::DataTypeState> type_states_received_on_commit_;
-
- // Latest responses received, indexed by tag_hash.
- std::map<const std::string, CommitResponseData> commit_response_items_;
- std::map<const std::string, UpdateResponseData> update_response_items_;
-
- // The per-item state maps.
- std::map<const std::string, int64_t> sequence_numbers_;
- std::map<const std::string, int64_t> base_versions_;
- std::map<const std::string, std::string> assigned_ids_;
-
- // Callback which will be call during disconnection
- DisconnectCallback disconnect_callback_;
-
- DISALLOW_COPY_AND_ASSIGN(MockModelTypeProcessor);
-};
-
-} // namespace syncer_v2
-
-#endif // SYNC_TEST_ENGINE_MOCK_MODEL_TYPE_PROCESSOR_H_
« no previous file with comments | « sync/test/engine/mock_connection_manager.cc ('k') | sync/test/engine/mock_model_type_processor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698