1 #pragma once
2 
3 #include "pid/zone_interface.hpp"
4 
5 #include <string>
6 
7 #include <gmock/gmock.h>
8 
9 namespace pid_control
10 {
11 
12 class ZoneMock : public ZoneInterface
13 {
14   public:
15     virtual ~ZoneMock() = default;
16 
17     MOCK_METHOD0(updateFanTelemetry, void());
18     MOCK_METHOD0(updateSensors, void());
19     MOCK_METHOD0(initializeCache, void());
20     MOCK_METHOD1(getCachedValue, double(const std::string&));
21 
22     // Compatibility interface for getCachedValues
getCachedValues(const std::string & s)23     ValueCacheEntry getCachedValues(const std::string& s)
24     {
25         auto v = getCachedValue(s);
26         return {v, v};
27     }
28 
29     MOCK_CONST_METHOD0(getRedundantWrite, bool(void));
30     MOCK_METHOD2(addSetPoint, void(double, const std::string&));
31     MOCK_METHOD2(setOutputCache,
32                  void(std::string_view name, const ValueCacheEntry& values));
33     MOCK_METHOD0(clearSetPoints, void());
34     MOCK_METHOD1(addRPMCeiling, void(double));
35     MOCK_METHOD0(clearRPMCeilings, void());
36     MOCK_METHOD0(determineMaxSetPointRequest, void());
37     MOCK_CONST_METHOD0(getMaxSetPointRequest, double());
38 
39     MOCK_METHOD0(processFans, void());
40     MOCK_METHOD0(processThermals, void());
41 
42     MOCK_CONST_METHOD0(getManualMode, bool());
43     MOCK_CONST_METHOD0(getFailSafeMode, bool());
44     MOCK_CONST_METHOD0(getFailSafePercent, double());
45     MOCK_CONST_METHOD0(getZoneID, int64_t());
46 
47     MOCK_CONST_METHOD0(getCycleIntervalTime, uint64_t());
48     MOCK_CONST_METHOD0(getUpdateThermalsCycle, uint64_t());
49     MOCK_CONST_METHOD0(getAccSetPoint, bool());
50 
51     MOCK_METHOD1(getSensor, Sensor*(const std::string&));
52 
53     MOCK_METHOD0(initializeLog, void());
54     MOCK_METHOD1(writeLog, void(const std::string&));
55 
56     MOCK_METHOD4(updateThermalPowerDebugInterface,
57                  void(std::string pidName, std::string leader, double input,
58                       double output));
59 };
60 
61 } // namespace pid_control
62