xref: /openbmc/phosphor-pid-control/test/zone_mock.hpp (revision a4270075f7cbdb2dee38f444a59e25b96d8128f4)
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(
47         getFailSafeSensors,
48         std::map<std::string, std::pair<std::string, double>>(void));
49     MOCK_CONST_METHOD0(getZoneID, int64_t());
50 
51     MOCK_CONST_METHOD0(getCycleIntervalTime, uint64_t());
52     MOCK_CONST_METHOD0(getUpdateThermalsCycle, uint64_t());
53     MOCK_CONST_METHOD0(getAccSetPoint, bool());
54 
55     MOCK_METHOD1(getSensor, Sensor*(const std::string&));
56     MOCK_METHOD0(getSensorNames, std::vector<std::string>());
57 
58     MOCK_METHOD0(initializeLog, void());
59     MOCK_METHOD1(writeLog, void(const std::string&));
60 
61     MOCK_METHOD4(updateThermalPowerDebugInterface,
62                  void(std::string pidName, std::string leader, double input,
63                       double output));
64 };
65 
66 } // namespace pid_control
67