// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "components/policy/core/common/cloud/mock_cloud_policy_manager.h"

#include <memory>
#include <string>
#include <utility>

#include "base/task/sequenced_task_runner.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h"
#include "components/policy/core/common/cloud/cloud_policy_store.h"
#include "mock_cloud_policy_manager.h"
#include "services/network/test/test_network_connection_tracker.h"

namespace policy {

MockCloudPolicyManager::MockCloudPolicyManager(
    std::unique_ptr<CloudPolicyStore> store,
    const scoped_refptr<base::SequencedTaskRunner>& task_runner)
    : MockCloudPolicyManager(std::move(store),
                             /*extension_install_store=*/nullptr,
                             task_runner) {}

MockCloudPolicyManager::MockCloudPolicyManager(
    std::unique_ptr<CloudPolicyStore> store,
    std::unique_ptr<CloudPolicyStore> extension_install_store,
    const scoped_refptr<base::SequencedTaskRunner>& task_runner)
    : CloudPolicyManager(
          dm_protocol::GetChromeUserPolicyType(),
          std::string(),
          std::move(store),
          std::move(extension_install_store),
          task_runner,
          network::TestNetworkConnectionTracker::CreateGetter()) {}

MockCloudPolicyManager::~MockCloudPolicyManager() = default;

void MockCloudPolicyManager::CreateComponentPolicy(const base::FilePath& path,
                                                   CloudPolicyClient* client) {
  CreateComponentCloudPolicyService(dm_protocol::kChromeExtensionPolicyType,
                                    path, client, schema_registry());
}

}  // namespace policy
