1aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo//
2aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Copyright (C) 2014 The Android Open Source Project
3aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo//
4aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Licensed under the Apache License, Version 2.0 (the "License");
5aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// you may not use this file except in compliance with the License.
6aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// You may obtain a copy of the License at
7aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo//
8aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo//      http://www.apache.org/licenses/LICENSE-2.0
9aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo//
10aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Unless required by applicable law or agreed to in writing, software
11aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// distributed under the License is distributed on an "AS IS" BASIS,
12aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// See the License for the specific language governing permissions and
14aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// limitations under the License.
15aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo//
16bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo
1748415f1f6c6c356bfa9ac85b76d8ebcf053f7157Gilad Arnold#ifndef UPDATE_ENGINE_UPDATE_MANAGER_FAKE_SYSTEM_PROVIDER_H_
1848415f1f6c6c356bfa9ac85b76d8ebcf053f7157Gilad Arnold#define UPDATE_ENGINE_UPDATE_MANAGER_FAKE_SYSTEM_PROVIDER_H_
19bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo
2063784a578dd26880454d70797519358a2326291bAlex Deymo#include "update_engine/update_manager/fake_variable.h"
2163784a578dd26880454d70797519358a2326291bAlex Deymo#include "update_engine/update_manager/system_provider.h"
22bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo
2363784a578dd26880454d70797519358a2326291bAlex Deymonamespace chromeos_update_manager {
24bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo
25bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo// Fake implementation of the SystemProvider base class.
26bd04b14e73e442db112710f2c03917e32edbee82Alex Deymoclass FakeSystemProvider : public SystemProvider {
27bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo public:
28bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo  FakeSystemProvider() {}
29bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo
30157fe307f162d13f53e7f98f6e2da7c60c0ff001Alex Vakulenko  FakeVariable<bool>* var_is_normal_boot_mode() override {
3121716e2da121769b4d473c30360e88ef3061de15David Zeuthen    return &var_is_normal_boot_mode_;
3221716e2da121769b4d473c30360e88ef3061de15David Zeuthen  }
3321716e2da121769b4d473c30360e88ef3061de15David Zeuthen
34157fe307f162d13f53e7f98f6e2da7c60c0ff001Alex Vakulenko  FakeVariable<bool>* var_is_official_build() override {
3521716e2da121769b4d473c30360e88ef3061de15David Zeuthen    return &var_is_official_build_;
36bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo  }
37bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo
38157fe307f162d13f53e7f98f6e2da7c60c0ff001Alex Vakulenko  FakeVariable<bool>* var_is_oobe_complete() override {
3948e1361ae568032754aa9f297a0f29fda437ccfbGilad Arnold    return &var_is_oobe_complete_;
4048e1361ae568032754aa9f297a0f29fda437ccfbGilad Arnold  }
4148e1361ae568032754aa9f297a0f29fda437ccfbGilad Arnold
42763e7dbaac735da0ae802933a1015b6b7874bce2Alex Deymo  FakeVariable<unsigned int>* var_num_slots() override {
43763e7dbaac735da0ae802933a1015b6b7874bce2Alex Deymo    return &var_num_slots_;
44bfc44f70a99a74bdb714c84fc65be2ab50806babGilad Arnold  }
45bfc44f70a99a74bdb714c84fc65be2ab50806babGilad Arnold
46bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo private:
47bfc44f70a99a74bdb714c84fc65be2ab50806babGilad Arnold  FakeVariable<bool> var_is_normal_boot_mode_{  // NOLINT(whitespace/braces)
48bfc44f70a99a74bdb714c84fc65be2ab50806babGilad Arnold    "is_normal_boot_mode", kVariableModeConst};
49bfc44f70a99a74bdb714c84fc65be2ab50806babGilad Arnold  FakeVariable<bool> var_is_official_build_{  // NOLINT(whitespace/braces)
50bfc44f70a99a74bdb714c84fc65be2ab50806babGilad Arnold    "is_official_build", kVariableModeConst};
51bfc44f70a99a74bdb714c84fc65be2ab50806babGilad Arnold  FakeVariable<bool> var_is_oobe_complete_{  // NOLINT(whitespace/braces)
52bfc44f70a99a74bdb714c84fc65be2ab50806babGilad Arnold    "is_oobe_complete", kVariableModePoll};
53763e7dbaac735da0ae802933a1015b6b7874bce2Alex Deymo  FakeVariable<unsigned int> var_num_slots_{"num_slots", kVariableModePoll};
5421716e2da121769b4d473c30360e88ef3061de15David Zeuthen
55bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo  DISALLOW_COPY_AND_ASSIGN(FakeSystemProvider);
56bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo};
57bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo
5863784a578dd26880454d70797519358a2326291bAlex Deymo}  // namespace chromeos_update_manager
59bd04b14e73e442db112710f2c03917e32edbee82Alex Deymo
6048415f1f6c6c356bfa9ac85b76d8ebcf053f7157Gilad Arnold#endif  // UPDATE_ENGINE_UPDATE_MANAGER_FAKE_SYSTEM_PROVIDER_H_
61