| OLD | NEW |
| (Empty) |
| 1 // Copyright 2015 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 | |
| 5 #ifndef SYNC_API_MOCK_MODEL_TYPE_STORE_H_ | |
| 6 #define SYNC_API_MOCK_MODEL_TYPE_STORE_H_ | |
| 7 | |
| 8 #include <string> | |
| 9 | |
| 10 #include "base/callback.h" | |
| 11 #include "sync/api/model_type_store.h" | |
| 12 | |
| 13 namespace syncer_v2 { | |
| 14 | |
| 15 // MockModelTypeStore is implementation of ModelTypeStore that does nothing. | |
| 16 // Use it when testing components that depend on ModelTypeStore. | |
| 17 // | |
| 18 // By default all methods return SUCCESS and empty results. It is possible to | |
| 19 // register custom handlers for certain functions to override behavior. It is | |
| 20 // responsibility of handler to post callback with result. | |
| 21 // Here is an example: | |
| 22 // === | |
| 23 // void OnReadData(const ModelTypeStore::IdList& id_list, | |
| 24 // const ModelTypeStore::ReadAllDataCallback& callback) { | |
| 25 // // Verify id_list here. | |
| 26 // // Prepare fake response. | |
| 27 // std::unique_ptr<ModelTypeStore::RecordList> record_list( | |
| 28 // new ModelTypeStore::RecordList); | |
| 29 // record_list->push_back(ModelTypeStore::Record("id1", "value1")); | |
| 30 // base::ThreadTaskRunnerHandle::Get()->PostTask( | |
| 31 // FROM_HERE, base::Bind(callback, Result::SUCCESS, | |
| 32 // base::Passed(record_list))); | |
| 33 // } | |
| 34 // | |
| 35 // MockModelTypeStore mock_model_type_store; | |
| 36 // mock_model_type_store.RegisterReadDataHandler(base::Bind(&OnReadData)); | |
| 37 // ModelTypeStore::IdList id_list; | |
| 38 // id_list.push_back("id1"); | |
| 39 // mock_model_type_store.ReadData(id_list, base::Bind(&ReadDone)); | |
| 40 // === | |
| 41 // TODO(pavel): When in-memory store is available this class should delegate all | |
| 42 // calls to it instead of returning empty successful results. | |
| 43 class MockModelTypeStore : public ModelTypeStore { | |
| 44 public: | |
| 45 // Signatures for all ModelTypeStore virtual functions. | |
| 46 typedef base::Callback<void(const ReadAllDataCallback&)> ReadAllDataSignature; | |
| 47 typedef base::Callback<void(const IdList&, const ReadDataCallback&)> | |
| 48 ReadDataSignature; | |
| 49 typedef base::Callback<void(const ReadMetadataCallback& callback)> | |
| 50 ReadAllMetadataSignature; | |
| 51 typedef base::Callback<void(std::unique_ptr<WriteBatch>, CallbackWithResult)> | |
| 52 CommitWriteBatchSignature; | |
| 53 typedef base::Callback<void(WriteBatch*, | |
| 54 const std::string&, | |
| 55 const std::string&)> WriteRecordSignature; | |
| 56 typedef base::Callback<void(WriteBatch*, const std::string&)> | |
| 57 WriteGlobalMetadataSignature; | |
| 58 typedef base::Callback<void(WriteBatch*, const std::string&)> | |
| 59 DeleteRecordSignature; | |
| 60 typedef base::Callback<void(WriteBatch*)> DeleteGlobalMetadataSignature; | |
| 61 | |
| 62 MockModelTypeStore(); | |
| 63 ~MockModelTypeStore() override; | |
| 64 | |
| 65 // ModelTypeStore implementation. | |
| 66 void ReadData(const IdList& id_list, | |
| 67 const ReadDataCallback& callback) override; | |
| 68 void ReadAllData(const ReadAllDataCallback& callback) override; | |
| 69 void ReadAllMetadata(const ReadMetadataCallback& callback) override; | |
| 70 | |
| 71 std::unique_ptr<WriteBatch> CreateWriteBatch() override; | |
| 72 void CommitWriteBatch(std::unique_ptr<WriteBatch> write_batch, | |
| 73 const CallbackWithResult& callback) override; | |
| 74 | |
| 75 void WriteData(WriteBatch* write_batch, | |
| 76 const std::string& id, | |
| 77 const std::string& value) override; | |
| 78 void WriteMetadata(WriteBatch* write_batch, | |
| 79 const std::string& id, | |
| 80 const std::string& value) override; | |
| 81 void WriteGlobalMetadata(WriteBatch* write_batch, | |
| 82 const std::string& value) override; | |
| 83 void DeleteData(WriteBatch* write_batch, const std::string& id) override; | |
| 84 void DeleteMetadata(WriteBatch* write_batch, const std::string& id) override; | |
| 85 void DeleteGlobalMetadata(WriteBatch* write_batch) override; | |
| 86 | |
| 87 // Register handler functions. | |
| 88 void RegisterReadDataHandler(const ReadDataSignature& handler); | |
| 89 void RegisterReadAllDataHandler(const ReadAllDataSignature& handler); | |
| 90 void RegisterReadAllMetadataHandler(const ReadAllMetadataSignature& handler); | |
| 91 void RegisterCommitWriteBatchHandler( | |
| 92 const CommitWriteBatchSignature& handler); | |
| 93 void RegisterWriteDataHandler(const WriteRecordSignature& handler); | |
| 94 void RegisterWriteMetadataHandler(const WriteRecordSignature& handler); | |
| 95 void RegisterWriteGlobalMetadataHandler( | |
| 96 const WriteGlobalMetadataSignature& handler); | |
| 97 void RegisterDeleteDataHandler(const DeleteRecordSignature& handler); | |
| 98 void RegisterDeleteMetadataHandler(const DeleteRecordSignature& handler); | |
| 99 void RegisterDeleteGlobalMetadataHandler( | |
| 100 const DeleteGlobalMetadataSignature& handler); | |
| 101 | |
| 102 private: | |
| 103 ReadDataSignature read_data_handler_; | |
| 104 ReadAllDataSignature read_all_data_handler_; | |
| 105 ReadAllMetadataSignature read_all_metadata_handler_; | |
| 106 CommitWriteBatchSignature commit_write_batch_handler_; | |
| 107 WriteRecordSignature write_data_handler_; | |
| 108 WriteRecordSignature write_metadata_handler_; | |
| 109 WriteGlobalMetadataSignature write_global_metadata_handler_; | |
| 110 DeleteRecordSignature delete_data_handler_; | |
| 111 DeleteRecordSignature delete_metadata_handler_; | |
| 112 DeleteGlobalMetadataSignature delete_global_metadata_handler_; | |
| 113 }; | |
| 114 | |
| 115 } // namespace syncer_v2 | |
| 116 | |
| 117 #endif // SYNC_API_MOCK_MODEL_TYPE_STORE_H_ | |
| OLD | NEW |