blob: 4f9243bfdbb8351938b65a3d29ed506214402cd9 [file] [log] [blame]
Alex Deymo2de23f52014-02-26 14:30:13 -08001// Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Gilad Arnold2cbb3852014-03-07 12:40:50 -08005#ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_FAKE_STATE_H_
6#define CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_FAKE_STATE_H_
Alex Deymo2de23f52014-02-26 14:30:13 -08007
Alex Deymof9f12632014-04-17 13:51:26 -07008#include "update_engine/policy_manager/fake_config_provider.h"
Alex Deymoc83baf62014-04-02 17:43:35 -07009#include "update_engine/policy_manager/fake_device_policy_provider.h"
Alex Deymo94c06162014-03-21 20:34:46 -070010#include "update_engine/policy_manager/fake_random_provider.h"
11#include "update_engine/policy_manager/fake_shill_provider.h"
12#include "update_engine/policy_manager/fake_system_provider.h"
13#include "update_engine/policy_manager/fake_time_provider.h"
Gilad Arnoldae47a9a2014-03-26 12:16:47 -070014#include "update_engine/policy_manager/fake_updater_provider.h"
Alex Deymo2de23f52014-02-26 14:30:13 -080015#include "update_engine/policy_manager/state.h"
16
17namespace chromeos_policy_manager {
18
Alex Deymo94c06162014-03-21 20:34:46 -070019// A fake State class that creates fake providers for all the providers.
Alex Deymo2de23f52014-02-26 14:30:13 -080020class FakeState : public State {
21 public:
Alex Deymo94c06162014-03-21 20:34:46 -070022 // Creates and initializes the FakeState using fake providers. Returns NULL
23 // if the initialization fails.
24 static FakeState* Construct();
25
Alex Deymo2de23f52014-02-26 14:30:13 -080026 virtual ~FakeState() {}
27
Alex Deymo94c06162014-03-21 20:34:46 -070028 // Downcasted getters, to allow access to the fake instances during testing.
Alex Deymof9f12632014-04-17 13:51:26 -070029 virtual FakeConfigProvider* config_provider() override {
30 return reinterpret_cast<FakeConfigProvider*>(State::config_provider());
31 }
32
Alex Deymoc83baf62014-04-02 17:43:35 -070033 virtual FakeDevicePolicyProvider* device_policy_provider() override {
34 return reinterpret_cast<FakeDevicePolicyProvider*>(
35 State::device_policy_provider());
36 }
Alex Deymof9f12632014-04-17 13:51:26 -070037
Alex Deymo94c06162014-03-21 20:34:46 -070038 virtual FakeRandomProvider* random_provider() override {
39 return reinterpret_cast<FakeRandomProvider*>(State::random_provider());
40 }
Gilad Arnoldae47a9a2014-03-26 12:16:47 -070041
Alex Deymo94c06162014-03-21 20:34:46 -070042 virtual FakeShillProvider* shill_provider() override {
43 return reinterpret_cast<FakeShillProvider*>(State::shill_provider());
44 }
Gilad Arnoldae47a9a2014-03-26 12:16:47 -070045
46 virtual FakeSystemProvider* system_provider() override {
47 return reinterpret_cast<FakeSystemProvider*>(State::system_provider());
48 }
49
Alex Deymo94c06162014-03-21 20:34:46 -070050 virtual FakeTimeProvider* time_provider() override {
51 return reinterpret_cast<FakeTimeProvider*>(State::time_provider());
52 }
Gilad Arnoldae47a9a2014-03-26 12:16:47 -070053
54 virtual FakeUpdaterProvider* updater_provider() override {
55 return reinterpret_cast<FakeUpdaterProvider*>(State::updater_provider());
Alex Deymo94c06162014-03-21 20:34:46 -070056 }
57
Alex Deymo2de23f52014-02-26 14:30:13 -080058 private:
Alex Deymo94c06162014-03-21 20:34:46 -070059 // Creates a FakeState instance using FakeProviders.
60 FakeState();
61
Alex Deymo2de23f52014-02-26 14:30:13 -080062 DISALLOW_COPY_AND_ASSIGN(FakeState);
63};
64
65} // namespace chromeos_policy_manager
66
Gilad Arnold2cbb3852014-03-07 12:40:50 -080067#endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_FAKE_STATE_H_