blob: edad4aa4d2dba4a5f2294b27cbd61ee02f1a868f [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 Deymoc83baf62014-04-02 17:43:35 -07008#include "update_engine/policy_manager/fake_device_policy_provider.h"
Alex Deymo94c06162014-03-21 20:34:46 -07009#include "update_engine/policy_manager/fake_random_provider.h"
10#include "update_engine/policy_manager/fake_shill_provider.h"
11#include "update_engine/policy_manager/fake_system_provider.h"
12#include "update_engine/policy_manager/fake_time_provider.h"
Gilad Arnoldae47a9a2014-03-26 12:16:47 -070013#include "update_engine/policy_manager/fake_updater_provider.h"
Alex Deymo2de23f52014-02-26 14:30:13 -080014#include "update_engine/policy_manager/state.h"
15
16namespace chromeos_policy_manager {
17
Alex Deymo94c06162014-03-21 20:34:46 -070018// A fake State class that creates fake providers for all the providers.
Alex Deymo2de23f52014-02-26 14:30:13 -080019class FakeState : public State {
20 public:
Alex Deymo94c06162014-03-21 20:34:46 -070021 // Creates and initializes the FakeState using fake providers. Returns NULL
22 // if the initialization fails.
23 static FakeState* Construct();
24
Alex Deymo2de23f52014-02-26 14:30:13 -080025 virtual ~FakeState() {}
26
Alex Deymo94c06162014-03-21 20:34:46 -070027 // Downcasted getters, to allow access to the fake instances during testing.
Alex Deymoc83baf62014-04-02 17:43:35 -070028 virtual FakeDevicePolicyProvider* device_policy_provider() override {
29 return reinterpret_cast<FakeDevicePolicyProvider*>(
30 State::device_policy_provider());
31 }
Alex Deymo94c06162014-03-21 20:34:46 -070032 virtual FakeRandomProvider* random_provider() override {
33 return reinterpret_cast<FakeRandomProvider*>(State::random_provider());
34 }
Gilad Arnoldae47a9a2014-03-26 12:16:47 -070035
Alex Deymo94c06162014-03-21 20:34:46 -070036 virtual FakeShillProvider* shill_provider() override {
37 return reinterpret_cast<FakeShillProvider*>(State::shill_provider());
38 }
Gilad Arnoldae47a9a2014-03-26 12:16:47 -070039
40 virtual FakeSystemProvider* system_provider() override {
41 return reinterpret_cast<FakeSystemProvider*>(State::system_provider());
42 }
43
Alex Deymo94c06162014-03-21 20:34:46 -070044 virtual FakeTimeProvider* time_provider() override {
45 return reinterpret_cast<FakeTimeProvider*>(State::time_provider());
46 }
Gilad Arnoldae47a9a2014-03-26 12:16:47 -070047
48 virtual FakeUpdaterProvider* updater_provider() override {
49 return reinterpret_cast<FakeUpdaterProvider*>(State::updater_provider());
Alex Deymo94c06162014-03-21 20:34:46 -070050 }
51
Alex Deymo2de23f52014-02-26 14:30:13 -080052 private:
Alex Deymo94c06162014-03-21 20:34:46 -070053 // Creates a FakeState instance using FakeProviders.
54 FakeState();
55
Alex Deymo2de23f52014-02-26 14:30:13 -080056 DISALLOW_COPY_AND_ASSIGN(FakeState);
57};
58
59} // namespace chromeos_policy_manager
60
Gilad Arnold2cbb3852014-03-07 12:40:50 -080061#endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_FAKE_STATE_H_