#ifndef COMPONENTS_SYNC_TEST_SYNC_SERVICE_IMPL_BUNDLE_H_
#define COMPONENTS_SYNC_TEST_SYNC_SERVICE_IMPL_BUNDLE_H_
#include <memory>
#include "components/prefs/testing_pref_service.h"
#include "components/signin/public/identity_manager/identity_test_environment.h"
#include "components/sync/driver/sync_service_impl.h"
#include "components/sync/test/fake_sync_api_component_factory.h"
#include "components/sync/test/mock_sync_invalidations_service.h"
#include "components/sync/test/mock_trusted_vault_client.h"
#include "components/sync/test/sync_client_mock.h"
#include "services/network/test/test_url_loader_factory.h"
namespace syncer {
class SyncServiceImplBundle {
public:
SyncServiceImplBundle();
~SyncServiceImplBundle();
SyncServiceImplBundle(const SyncServiceImplBundle&) = delete;
SyncServiceImplBundle& operator=(const SyncServiceImplBundle&) = delete;
std::unique_ptr<SyncClientMock> CreateSyncClientMock();
SyncServiceImpl::InitParams CreateBasicInitParams(
SyncServiceImpl::StartBehavior start_behavior,
std::unique_ptr<SyncClient> sync_client);
TestingPrefServiceSimple* pref_service() { return &pref_service_; }
signin::IdentityTestEnvironment* identity_test_env() {
return &identity_test_env_;
}
signin::IdentityManager* identity_manager() {
return identity_test_env_.identity_manager();
}
FakeSyncApiComponentFactory* component_factory() {
return &component_factory_;
}
MockSyncInvalidationsService* sync_invalidations_service() {
return &sync_invalidations_service_;
}
MockTrustedVaultClient* trusted_vault_client() {
return &trusted_vault_client_;
}
private:
TestingPrefServiceSimple pref_service_;
network::TestURLLoaderFactory test_url_loader_factory_;
signin::IdentityTestEnvironment identity_test_env_;
FakeSyncApiComponentFactory component_factory_;
testing::NiceMock<MockSyncInvalidationsService> sync_invalidations_service_;
testing::NiceMock<MockTrustedVaultClient> trusted_vault_client_;
};
}
#endif