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