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