blob: 1ba87f1e8708f38892865f144982518a16c02d5e [file] [log] [blame]
// Copyright 2019 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 CHROMEOS_SERVICES_ASSISTANT_PUBLIC_CPP_MIGRATION_FAKE_ASSISTANT_MANAGER_SERVICE_DELEGATE_H_
#define CHROMEOS_SERVICES_ASSISTANT_PUBLIC_CPP_MIGRATION_FAKE_ASSISTANT_MANAGER_SERVICE_DELEGATE_H_
#include "base/component_export.h"
#include "chromeos/services/assistant/public/cpp/migration/assistant_manager_service_delegate.h"
namespace chromeos {
namespace assistant {
class FakeAssistantManager;
// Implementation of |AssistantManagerServiceDelegate| that returns fake
// instances for all of the member methods. Used during unittests.
class COMPONENT_EXPORT(ASSISTANT_SERVICE_MIGRATION_TEST_SUPPORT)
FakeAssistantManagerServiceDelegate
: public AssistantManagerServiceDelegate {
public:
FakeAssistantManagerServiceDelegate();
~FakeAssistantManagerServiceDelegate() override;
FakeAssistantManager* assistant_manager();
// AssistantManagerServiceDelegate:
std::unique_ptr<CrosPlatformApi> CreatePlatformApi(
AssistantMediaSession* media_session,
scoped_refptr<base::SingleThreadTaskRunner> background_thread_task_runner)
override;
std::unique_ptr<assistant_client::AssistantManager> CreateAssistantManager(
assistant_client::PlatformApi* platform_api,
const std::string& libassistant_config) override;
assistant_client::AssistantManagerInternal* UnwrapAssistantManagerInternal(
assistant_client::AssistantManager* assistant_manager) override;
std::string libassistant_config() const { return libassistant_config_; }
private:
std::unique_ptr<FakeAssistantManager> pending_assistant_manager_;
FakeAssistantManager* current_assistant_manager_ = nullptr;
// Config passed to LibAssistant when it was started.
std::string libassistant_config_;
DISALLOW_COPY_AND_ASSIGN(FakeAssistantManagerServiceDelegate);
};
} // namespace assistant
} // namespace chromeos
#endif // CHROMEOS_SERVICES_ASSISTANT_PUBLIC_CPP_MIGRATION_FAKE_ASSISTANT_MANAGER_SERVICE_DELEGATE_H_