chromium/components/manta/base_provider_test_helper.h

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

#ifndef COMPONENTS_MANTA_BASE_PROVIDER_TEST_HELPER_H_
#define COMPONENTS_MANTA_BASE_PROVIDER_TEST_HELPER_H_

#include "base/test/task_environment.h"
#include "components/manta/base_provider.h"
#include "components/manta/manta_service_callbacks.h"
#include "services/network/test/test_url_loader_factory.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace manta {

// Helper utilities that take care of common fakes, useful for unit test of
// particular providers.
// A provider (e.g. FooProvider) unittest should have:
//   * a FakeFooProvider that extends both FooProvider and FakeBaseProvider so
//     that it mocks the FooProvider's functions by using
//     `FakeBaseProvider::RequestInternal`.
//   * a FooProviderTest fixture that extends BaseProviderTest and implement a
//     `CreateFooProvider` function to return a FakeFooProvider instance.

class FakeBaseProvider : virtual public BaseProvider {};

class BaseProviderTest : public testing::Test {};

}  // namespace manta

#endif  // COMPONENTS_MANTA_BASE_PROVIDER_TEST_HELPER_H_