176833cb5SWludzik, Jozef #pragma once 276833cb5SWludzik, Jozef 376833cb5SWludzik, Jozef #include "interfaces/trigger_factory.hpp" 476833cb5SWludzik, Jozef #include "mocks/trigger_mock.hpp" 576833cb5SWludzik, Jozef #include "params/trigger_params.hpp" 676833cb5SWludzik, Jozef 776833cb5SWludzik, Jozef #include <gmock/gmock.h> 876833cb5SWludzik, Jozef 976833cb5SWludzik, Jozef class TriggerFactoryMock : public interfaces::TriggerFactory 1076833cb5SWludzik, Jozef { 1176833cb5SWludzik, Jozef public: 1276833cb5SWludzik, Jozef TriggerFactoryMock() 1376833cb5SWludzik, Jozef { 1476833cb5SWludzik, Jozef using namespace testing; 1576833cb5SWludzik, Jozef 16*1477fe6aSWludzik, Jozef ON_CALL(*this, make(_, _, _, _, _, _, _, _, _, _)) 17*1477fe6aSWludzik, Jozef .WillByDefault(WithArgs<1>(Invoke([](const std::string& name) { 1876833cb5SWludzik, Jozef return std::make_unique<NiceMock<TriggerMock>>(name); 1976833cb5SWludzik, Jozef }))); 2076833cb5SWludzik, Jozef } 2176833cb5SWludzik, Jozef 22*1477fe6aSWludzik, Jozef MOCK_METHOD( 23*1477fe6aSWludzik, Jozef std::unique_ptr<interfaces::Trigger>, make, 24*1477fe6aSWludzik, Jozef (boost::asio::yield_context&, const std::string& name, bool isDiscrete, 25*1477fe6aSWludzik, Jozef bool logToJournal, bool logToRedfish, bool updateReport, 26*1477fe6aSWludzik, Jozef (const std::vector< 27*1477fe6aSWludzik, Jozef std::pair<sdbusplus::message::object_path, std::string>>& sensors), 2876833cb5SWludzik, Jozef const std::vector<std::string>& reportNames, 29*1477fe6aSWludzik, Jozef const TriggerThresholdParams& thresholdParams, 3076833cb5SWludzik, Jozef interfaces::TriggerManager& triggerManager), 3176833cb5SWludzik, Jozef (const, override)); 3276833cb5SWludzik, Jozef 3376833cb5SWludzik, Jozef auto& expectMake( 3476833cb5SWludzik, Jozef std::optional<std::reference_wrapper<const TriggerParams>> paramsOpt, 3576833cb5SWludzik, Jozef const testing::Matcher<interfaces::TriggerManager&>& tm) 3676833cb5SWludzik, Jozef { 37*1477fe6aSWludzik, Jozef using namespace testing; 38*1477fe6aSWludzik, Jozef 3976833cb5SWludzik, Jozef if (paramsOpt) 4076833cb5SWludzik, Jozef { 4176833cb5SWludzik, Jozef const TriggerParams& params = *paramsOpt; 4276833cb5SWludzik, Jozef return EXPECT_CALL( 43*1477fe6aSWludzik, Jozef *this, 44*1477fe6aSWludzik, Jozef make(_, params.name(), params.isDiscrete(), 4576833cb5SWludzik, Jozef params.logToJournal(), params.logToRedfish(), 4676833cb5SWludzik, Jozef params.updateReport(), params.sensors(), 47*1477fe6aSWludzik, Jozef params.reportNames(), params.thresholdParams(), tm)); 4876833cb5SWludzik, Jozef } 4976833cb5SWludzik, Jozef else 5076833cb5SWludzik, Jozef { 51*1477fe6aSWludzik, Jozef return EXPECT_CALL(*this, make(_, _, _, _, _, _, _, _, _, tm)); 5276833cb5SWludzik, Jozef } 5376833cb5SWludzik, Jozef } 5476833cb5SWludzik, Jozef }; 55