xref: /aosp_15_r20/system/update_engine/common/mock_hardware.h (revision 5a9231315b4521097b8dc3750bc806fcafe0c72f)
1*5a923131SAndroid Build Coastguard Worker //
2*5a923131SAndroid Build Coastguard Worker // Copyright (C) 2013 The Android Open Source Project
3*5a923131SAndroid Build Coastguard Worker //
4*5a923131SAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License");
5*5a923131SAndroid Build Coastguard Worker // you may not use this file except in compliance with the License.
6*5a923131SAndroid Build Coastguard Worker // You may obtain a copy of the License at
7*5a923131SAndroid Build Coastguard Worker //
8*5a923131SAndroid Build Coastguard Worker //      http://www.apache.org/licenses/LICENSE-2.0
9*5a923131SAndroid Build Coastguard Worker //
10*5a923131SAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software
11*5a923131SAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS,
12*5a923131SAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*5a923131SAndroid Build Coastguard Worker // See the License for the specific language governing permissions and
14*5a923131SAndroid Build Coastguard Worker // limitations under the License.
15*5a923131SAndroid Build Coastguard Worker //
16*5a923131SAndroid Build Coastguard Worker 
17*5a923131SAndroid Build Coastguard Worker #ifndef UPDATE_ENGINE_COMMON_MOCK_HARDWARE_H_
18*5a923131SAndroid Build Coastguard Worker #define UPDATE_ENGINE_COMMON_MOCK_HARDWARE_H_
19*5a923131SAndroid Build Coastguard Worker 
20*5a923131SAndroid Build Coastguard Worker #include <string>
21*5a923131SAndroid Build Coastguard Worker 
22*5a923131SAndroid Build Coastguard Worker #include "update_engine/common/fake_hardware.h"
23*5a923131SAndroid Build Coastguard Worker 
24*5a923131SAndroid Build Coastguard Worker #include <gmock/gmock.h>
25*5a923131SAndroid Build Coastguard Worker 
26*5a923131SAndroid Build Coastguard Worker namespace chromeos_update_engine {
27*5a923131SAndroid Build Coastguard Worker 
28*5a923131SAndroid Build Coastguard Worker // A mocked, fake implementation of HardwareInterface.
29*5a923131SAndroid Build Coastguard Worker class MockHardware : public HardwareInterface {
30*5a923131SAndroid Build Coastguard Worker  public:
MockHardware()31*5a923131SAndroid Build Coastguard Worker   MockHardware() {
32*5a923131SAndroid Build Coastguard Worker     // Delegate all calls to the fake instance
33*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, IsOfficialBuild())
34*5a923131SAndroid Build Coastguard Worker         .WillByDefault(testing::Invoke(&fake_, &FakeHardware::IsOfficialBuild));
35*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, IsNormalBootMode())
36*5a923131SAndroid Build Coastguard Worker         .WillByDefault(
37*5a923131SAndroid Build Coastguard Worker             testing::Invoke(&fake_, &FakeHardware::IsNormalBootMode));
38*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, AreDevFeaturesEnabled())
39*5a923131SAndroid Build Coastguard Worker         .WillByDefault(
40*5a923131SAndroid Build Coastguard Worker             testing::Invoke(&fake_, &FakeHardware::AreDevFeaturesEnabled));
41*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, IsOOBEEnabled())
42*5a923131SAndroid Build Coastguard Worker         .WillByDefault(testing::Invoke(&fake_, &FakeHardware::IsOOBEEnabled));
43*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, IsOOBEComplete(testing::_))
44*5a923131SAndroid Build Coastguard Worker         .WillByDefault(testing::Invoke(&fake_, &FakeHardware::IsOOBEComplete));
45*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, GetHardwareClass())
46*5a923131SAndroid Build Coastguard Worker         .WillByDefault(
47*5a923131SAndroid Build Coastguard Worker             testing::Invoke(&fake_, &FakeHardware::GetHardwareClass));
48*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, GetMinKernelKeyVersion())
49*5a923131SAndroid Build Coastguard Worker         .WillByDefault(
50*5a923131SAndroid Build Coastguard Worker             testing::Invoke(&fake_, &FakeHardware::GetMinKernelKeyVersion));
51*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, GetMinFirmwareKeyVersion())
52*5a923131SAndroid Build Coastguard Worker         .WillByDefault(
53*5a923131SAndroid Build Coastguard Worker             testing::Invoke(&fake_, &FakeHardware::GetMinFirmwareKeyVersion));
54*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, GetMaxFirmwareKeyRollforward())
55*5a923131SAndroid Build Coastguard Worker         .WillByDefault(testing::Invoke(
56*5a923131SAndroid Build Coastguard Worker             &fake_, &FakeHardware::GetMaxFirmwareKeyRollforward));
57*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, SetMaxFirmwareKeyRollforward())
58*5a923131SAndroid Build Coastguard Worker         .WillByDefault(testing::Invoke(
59*5a923131SAndroid Build Coastguard Worker             &fake_, &FakeHardware::SetMaxFirmwareKeyRollforward));
60*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, SetMaxKernelKeyRollforward())
61*5a923131SAndroid Build Coastguard Worker         .WillByDefault(
62*5a923131SAndroid Build Coastguard Worker             testing::Invoke(&fake_, &FakeHardware::SetMaxKernelKeyRollforward));
63*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, GetPowerwashCount())
64*5a923131SAndroid Build Coastguard Worker         .WillByDefault(
65*5a923131SAndroid Build Coastguard Worker             testing::Invoke(&fake_, &FakeHardware::GetPowerwashCount));
66*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, GetNonVolatileDirectory(testing::_))
67*5a923131SAndroid Build Coastguard Worker         .WillByDefault(
68*5a923131SAndroid Build Coastguard Worker             testing::Invoke(&fake_, &FakeHardware::GetNonVolatileDirectory));
69*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, GetPowerwashSafeDirectory(testing::_))
70*5a923131SAndroid Build Coastguard Worker         .WillByDefault(
71*5a923131SAndroid Build Coastguard Worker             testing::Invoke(&fake_, &FakeHardware::GetPowerwashSafeDirectory));
72*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, GetFirstActiveOmahaPingSent())
73*5a923131SAndroid Build Coastguard Worker         .WillByDefault(testing::Invoke(
74*5a923131SAndroid Build Coastguard Worker             &fake_, &FakeHardware::GetFirstActiveOmahaPingSent()));
75*5a923131SAndroid Build Coastguard Worker     ON_CALL(*this, SetFirstActiveOmahaPingSent())
76*5a923131SAndroid Build Coastguard Worker         .WillByDefault(testing::Invoke(
77*5a923131SAndroid Build Coastguard Worker             &fake_, &FakeHardware::SetFirstActiveOmahaPingSent()));
78*5a923131SAndroid Build Coastguard Worker   }
79*5a923131SAndroid Build Coastguard Worker 
80*5a923131SAndroid Build Coastguard Worker   ~MockHardware() override = default;
81*5a923131SAndroid Build Coastguard Worker 
82*5a923131SAndroid Build Coastguard Worker   // Hardware overrides.
83*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD0(IsOfficialBuild, bool());
84*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD0(IsNormalBootMode, bool());
85*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD0(IsOOBEEnabled, bool());
86*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD1(IsOOBEComplete, bool(base::Time* out_time_of_oobe));
87*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD0(GetHardwareClass, std::string());
88*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD0(GetMinKernelKeyVersion, int());
89*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD0(GetMinFirmwareKeyVersion, int());
90*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD0(GetMaxFirmwareKeyRollforward, int());
91*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD1(SetMaxFirmwareKeyRollforward,
92*5a923131SAndroid Build Coastguard Worker                      bool(int firmware_max_rollforward));
93*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD1(SetMaxKernelKeyRollforward,
94*5a923131SAndroid Build Coastguard Worker                      bool(int kernel_max_rollforward));
95*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD0(GetPowerwashCount, int());
96*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD1(GetNonVolatileDirectory, bool(base::FilePath*));
97*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD1(GetPowerwashSafeDirectory, bool(base::FilePath*));
98*5a923131SAndroid Build Coastguard Worker   MOCK_CONST_METHOD0(GetFirstActiveOmahaPingSent, bool());
99*5a923131SAndroid Build Coastguard Worker 
100*5a923131SAndroid Build Coastguard Worker   // Returns a reference to the underlying FakeHardware.
fake()101*5a923131SAndroid Build Coastguard Worker   FakeHardware& fake() { return fake_; }
102*5a923131SAndroid Build Coastguard Worker 
103*5a923131SAndroid Build Coastguard Worker  private:
104*5a923131SAndroid Build Coastguard Worker   // The underlying FakeHardware.
105*5a923131SAndroid Build Coastguard Worker   FakeHardware fake_;
106*5a923131SAndroid Build Coastguard Worker 
107*5a923131SAndroid Build Coastguard Worker   DISALLOW_COPY_AND_ASSIGN(MockHardware);
108*5a923131SAndroid Build Coastguard Worker };
109*5a923131SAndroid Build Coastguard Worker 
110*5a923131SAndroid Build Coastguard Worker }  // namespace chromeos_update_engine
111*5a923131SAndroid Build Coastguard Worker 
112*5a923131SAndroid Build Coastguard Worker #endif  // UPDATE_ENGINE_COMMON_MOCK_HARDWARE_H_
113