| // Copyright 2016 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 COMPONENTS_SYNC_MODEL_MODEL_TYPE_STORE_TEST_UTIL_H_ |
| #define COMPONENTS_SYNC_MODEL_MODEL_TYPE_STORE_TEST_UTIL_H_ |
| |
| #include <memory> |
| |
| #include "components/sync/model/model_type_store.h" |
| |
| namespace syncer { |
| |
| // Util class with several static methods to facilitate writing unit tests for |
| // classes that use ModelTypeStore objects. |
| class ModelTypeStoreTestUtil { |
| public: |
| // Creates an in memory store synchronously. |
| static std::unique_ptr<ModelTypeStore> CreateInMemoryStoreForTest( |
| ModelType type = UNSPECIFIED); |
| |
| // Creates a factory callback to synchronously return in memory stores. |
| static RepeatingModelTypeStoreFactory FactoryForInMemoryStoreForTest(); |
| |
| // Returns a once-factory that returns an already created store to a service |
| // constructor in a unit test. |
| static OnceModelTypeStoreFactory MoveStoreToFactory( |
| std::unique_ptr<ModelTypeStore> store); |
| |
| // Returns a callback that constructs a store that forwards all calls to |
| // |target|. |*target| must outlive the returned factory as well any store |
| // created by the factory. |
| static RepeatingModelTypeStoreFactory FactoryForForwardingStore( |
| ModelTypeStore* target); |
| }; |
| |
| } // namespace syncer |
| |
| #endif // COMPONENTS_SYNC_MODEL_MODEL_TYPE_STORE_TEST_UTIL_H_ |