1906cc3f3SShawn McCarney /**
2906cc3f3SShawn McCarney  * Copyright © 2024 IBM Corporation
3906cc3f3SShawn McCarney  *
4906cc3f3SShawn McCarney  * Licensed under the Apache License, Version 2.0 (the "License");
5906cc3f3SShawn McCarney  * you may not use this file except in compliance with the License.
6906cc3f3SShawn McCarney  * You may obtain a copy of the License at
7906cc3f3SShawn McCarney  *
8906cc3f3SShawn McCarney  *     http://www.apache.org/licenses/LICENSE-2.0
9906cc3f3SShawn McCarney  *
10906cc3f3SShawn McCarney  * Unless required by applicable law or agreed to in writing, software
11906cc3f3SShawn McCarney  * distributed under the License is distributed on an "AS IS" BASIS,
12906cc3f3SShawn McCarney  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13906cc3f3SShawn McCarney  * See the License for the specific language governing permissions and
14906cc3f3SShawn McCarney  * limitations under the License.
15906cc3f3SShawn McCarney  */
16906cc3f3SShawn McCarney #pragma once
17906cc3f3SShawn McCarney 
18906cc3f3SShawn McCarney #include "mock_pmbus.hpp"
19906cc3f3SShawn McCarney #include "services.hpp"
20906cc3f3SShawn McCarney 
21906cc3f3SShawn McCarney #include <gmock/gmock.h>
22906cc3f3SShawn McCarney 
23906cc3f3SShawn McCarney namespace phosphor::power::sequencer
24906cc3f3SShawn McCarney {
25906cc3f3SShawn McCarney 
2624956598SShawn McCarney using MockPMBus = phosphor::pmbus::MockPMBus;
2724956598SShawn McCarney 
28906cc3f3SShawn McCarney /**
29906cc3f3SShawn McCarney  * @class MockServices
30906cc3f3SShawn McCarney  *
31906cc3f3SShawn McCarney  * Mock implementation of the Services interface.
32906cc3f3SShawn McCarney  */
33906cc3f3SShawn McCarney class MockServices : public Services
34906cc3f3SShawn McCarney {
35906cc3f3SShawn McCarney   public:
36906cc3f3SShawn McCarney     // Specify which compiler-generated methods we want
37906cc3f3SShawn McCarney     MockServices() = default;
38906cc3f3SShawn McCarney     MockServices(const MockServices&) = delete;
39906cc3f3SShawn McCarney     MockServices(MockServices&&) = delete;
40906cc3f3SShawn McCarney     MockServices& operator=(const MockServices&) = delete;
41906cc3f3SShawn McCarney     MockServices& operator=(MockServices&&) = delete;
42906cc3f3SShawn McCarney     virtual ~MockServices() = default;
43906cc3f3SShawn McCarney 
44906cc3f3SShawn McCarney     MOCK_METHOD(sdbusplus::bus_t&, getBus, (), (override));
45906cc3f3SShawn McCarney     MOCK_METHOD(void, logErrorMsg, (const std::string& message), (override));
46906cc3f3SShawn McCarney     MOCK_METHOD(void, logInfoMsg, (const std::string& message), (override));
47906cc3f3SShawn McCarney     MOCK_METHOD(void, logError,
48906cc3f3SShawn McCarney                 (const std::string& message, Entry::Level severity,
49e4fef0fcSShawn McCarney                  (std::map<std::string, std::string> & additionalData)),
50906cc3f3SShawn McCarney                 (override));
51906cc3f3SShawn McCarney     MOCK_METHOD(bool, isPresent, (const std::string& inventoryPath),
52906cc3f3SShawn McCarney                 (override));
53906cc3f3SShawn McCarney     MOCK_METHOD(std::vector<int>, getGPIOValues, (const std::string& chipLabel),
54906cc3f3SShawn McCarney                 (override));
55906cc3f3SShawn McCarney 
56906cc3f3SShawn McCarney     virtual std::unique_ptr<PMBusBase>
createPMBus(uint8_t,uint16_t,const std::string &,size_t)57e4fef0fcSShawn McCarney         createPMBus(uint8_t, uint16_t, const std::string&, size_t) override
58906cc3f3SShawn McCarney     {
59906cc3f3SShawn McCarney         return std::make_unique<MockPMBus>();
60906cc3f3SShawn McCarney     }
61e4fef0fcSShawn McCarney 
62*3a11d632SShawn McCarney     MOCK_METHOD(void, createBMCDump, (), (override));
63e4fef0fcSShawn McCarney     MOCK_METHOD(void, clearCache, (), (override));
64906cc3f3SShawn McCarney };
65906cc3f3SShawn McCarney 
66906cc3f3SShawn McCarney } // namespace phosphor::power::sequencer
67