fake_system_provider.h revision 763e7dbaac735da0ae802933a1015b6b7874bce2
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