1 #include "utils.hpp" 2 3 #include <gmock/gmock.h> 4 5 namespace utils 6 { 7 8 class MockedUtils : public UtilsInterface 9 { 10 public: 11 MockedUtils() = default; 12 MockedUtils(const MockedUtils&) = delete; 13 MockedUtils& operator=(const MockedUtils&) = delete; 14 MockedUtils(MockedUtils&&) = delete; 15 MockedUtils& operator=(MockedUtils&&) = delete; 16 17 ~MockedUtils() override = default; 18 19 MOCK_CONST_METHOD1(getPSUInventoryPaths, 20 std::vector<std::string>(sdbusplus::bus_t& bus)); 21 22 MOCK_CONST_METHOD3(getService, 23 std::string(sdbusplus::bus_t& bus, const char* path, 24 const char* interface)); 25 26 MOCK_CONST_METHOD3(getServices, 27 std::vector<std::string>(sdbusplus::bus_t& bus, 28 const char* path, 29 const char* interface)); 30 31 MOCK_CONST_METHOD1(getVersionId, std::string(const std::string& version)); 32 33 MOCK_CONST_METHOD1(getVersion, 34 std::string(const std::string& psuInventoryPath)); 35 36 MOCK_CONST_METHOD1(getModel, 37 std::string(const std::string& psuInventoryPath)); 38 39 MOCK_CONST_METHOD1(getLatestVersion, 40 std::string(const std::set<std::string>& versions)); 41 42 MOCK_CONST_METHOD2(isAssociated, bool(const std::string& psuInventoryPath, 43 const AssociationList& assocs)); 44 45 MOCK_CONST_METHOD5(getPropertyImpl, 46 any(sdbusplus::bus_t& bus, const char* service, 47 const char* path, const char* interface, 48 const char* propertyName)); 49 }; 50 51 static std::unique_ptr<MockedUtils> utils; 52 inline const UtilsInterface& getUtils() 53 { 54 if (!utils) 55 { 56 utils = std::make_unique<MockedUtils>(); 57 } 58 return *utils; 59 } 60 61 inline void freeUtils() 62 { 63 utils.reset(); 64 } 65 66 } // namespace utils 67