blob: a996896e4869996f7402362e46fbb92fd5f40712 [file] [log] [blame]
Don Garrett83692e42013-11-08 10:11:30 -08001// Copyright (c) 2013 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
Alex Deymo759c2752014-03-17 21:09:36 -07005#ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_MOCK_HARDWARE_H_
6#define CHROMEOS_PLATFORM_UPDATE_ENGINE_MOCK_HARDWARE_H_
Don Garrett83692e42013-11-08 10:11:30 -08007
Alex Deymo04f2b382014-03-21 15:45:17 -07008#include "update_engine/fake_hardware.h"
Don Garrett83692e42013-11-08 10:11:30 -08009
10#include <gmock/gmock.h>
11
12namespace chromeos_update_engine {
13
14// A mocked, fake implementation of HardwareInterface.
15class MockHardware : public HardwareInterface {
16public:
17 MockHardware() {
18 // Delegate all calls to the fake instance
19 ON_CALL(*this, BootKernelDevice())
20 .WillByDefault(testing::Invoke(&fake_,
21 &FakeHardware::BootKernelDevice));
22 ON_CALL(*this, BootDevice())
23 .WillByDefault(testing::Invoke(&fake_,
24 &FakeHardware::BootDevice));
Alex Vakulenko59e253e2014-02-24 10:40:21 -080025 ON_CALL(*this, GetKernelDevices())
26 .WillByDefault(testing::Invoke(&fake_,
27 &FakeHardware::GetKernelDevices));
Don Garrett83692e42013-11-08 10:11:30 -080028 ON_CALL(*this, IsKernelBootable(testing::_, testing::_))
29 .WillByDefault(testing::Invoke(&fake_,
30 &FakeHardware::IsKernelBootable));
31 ON_CALL(*this, MarkKernelUnbootable(testing::_))
32 .WillByDefault(testing::Invoke(&fake_,
33 &FakeHardware::MarkKernelUnbootable));
34 ON_CALL(*this, IsOfficialBuild())
35 .WillByDefault(testing::Invoke(&fake_,
36 &FakeHardware::IsOfficialBuild));
37 ON_CALL(*this, IsNormalBootMode())
38 .WillByDefault(testing::Invoke(&fake_,
39 &FakeHardware::IsNormalBootMode));
Alex Deymobccbc382014-04-03 13:38:55 -070040 ON_CALL(*this, IsOOBEComplete(testing::_))
41 .WillByDefault(testing::Invoke(&fake_,
42 &FakeHardware::IsOOBEComplete));
Don Garrett83692e42013-11-08 10:11:30 -080043 ON_CALL(*this, GetHardwareClass())
44 .WillByDefault(testing::Invoke(&fake_,
45 &FakeHardware::GetHardwareClass));
46 ON_CALL(*this, GetFirmwareVersion())
47 .WillByDefault(testing::Invoke(&fake_,
48 &FakeHardware::GetFirmwareVersion));
49 ON_CALL(*this, GetECVersion())
50 .WillByDefault(testing::Invoke(&fake_,
51 &FakeHardware::GetECVersion));
52 }
53
54 virtual ~MockHardware() {}
55
56 // Hardware overrides.
Alex Vakulenkod0fdfb32014-02-21 15:26:26 -080057 MOCK_CONST_METHOD0(BootKernelDevice, std::string());
58 MOCK_CONST_METHOD0(BootDevice, std::string());
59 MOCK_CONST_METHOD0(GetKernelDevices, std::vector<std::string>());
60 MOCK_CONST_METHOD2(IsKernelBootable,
Don Garrett83692e42013-11-08 10:11:30 -080061 bool(const std::string& kernel_device, bool* bootable));
62 MOCK_METHOD1(MarkKernelUnbootable,
63 bool(const std::string& kernel_device));
Alex Vakulenkod0fdfb32014-02-21 15:26:26 -080064 MOCK_CONST_METHOD0(IsOfficialBuild, bool());
65 MOCK_CONST_METHOD0(IsNormalBootMode, bool());
Alex Deymobccbc382014-04-03 13:38:55 -070066 MOCK_CONST_METHOD1(IsOOBEComplete, bool(base::Time* out_time_of_oobe));
Alex Vakulenkod0fdfb32014-02-21 15:26:26 -080067 MOCK_CONST_METHOD0(GetHardwareClass, std::string());
68 MOCK_CONST_METHOD0(GetFirmwareVersion, std::string());
69 MOCK_CONST_METHOD0(GetECVersion, std::string());
Don Garrett83692e42013-11-08 10:11:30 -080070
71 // Returns a reference to the underlying FakeHardware.
72 FakeHardware& fake() {
73 return fake_;
74 }
75
76private:
77 // The underlying FakeHardware.
78 FakeHardware fake_;
79
80 DISALLOW_COPY_AND_ASSIGN(MockHardware);
81};
82
83
84} // namespace chromeos_update_engine
85
Alex Deymo759c2752014-03-17 21:09:36 -070086#endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_MOCK_HARDWARE_H_