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*a4e67616SCezary Zwolak ON_CALL(*this, make(_, _, _, _, _, _, _, _, _, _, _)) 171477fe6aSWludzik, Jozef .WillByDefault(WithArgs<1>(Invoke([](const std::string& name) { 1876833cb5SWludzik, Jozef return std::make_unique<NiceMock<TriggerMock>>(name); 1976833cb5SWludzik, Jozef }))); 2076833cb5SWludzik, Jozef } 2176833cb5SWludzik, Jozef 221477fe6aSWludzik, Jozef MOCK_METHOD( 231477fe6aSWludzik, Jozef std::unique_ptr<interfaces::Trigger>, make, 241477fe6aSWludzik, Jozef (boost::asio::yield_context&, const std::string& name, bool isDiscrete, 251477fe6aSWludzik, Jozef bool logToJournal, bool logToRedfish, bool updateReport, 261477fe6aSWludzik, Jozef (const std::vector< 271477fe6aSWludzik, Jozef std::pair<sdbusplus::message::object_path, std::string>>& sensors), 2876833cb5SWludzik, Jozef const std::vector<std::string>& reportNames, 291477fe6aSWludzik, Jozef const TriggerThresholdParams& thresholdParams, 30*a4e67616SCezary Zwolak interfaces::TriggerManager& triggerManager, 31*a4e67616SCezary Zwolak interfaces::JsonStorage& triggerStorage), 3276833cb5SWludzik, Jozef (const, override)); 3376833cb5SWludzik, Jozef 3476833cb5SWludzik, Jozef auto& expectMake( 3576833cb5SWludzik, Jozef std::optional<std::reference_wrapper<const TriggerParams>> paramsOpt, 36*a4e67616SCezary Zwolak const testing::Matcher<interfaces::TriggerManager&>& tm, 37*a4e67616SCezary Zwolak const testing::Matcher<interfaces::JsonStorage&>& triggerStorage) 3876833cb5SWludzik, Jozef { 391477fe6aSWludzik, Jozef using namespace testing; 401477fe6aSWludzik, Jozef 4176833cb5SWludzik, Jozef if (paramsOpt) 4276833cb5SWludzik, Jozef { 4376833cb5SWludzik, Jozef const TriggerParams& params = *paramsOpt; 4476833cb5SWludzik, Jozef return EXPECT_CALL( 45*a4e67616SCezary Zwolak *this, make(_, params.name(), params.isDiscrete(), 4676833cb5SWludzik, Jozef params.logToJournal(), params.logToRedfish(), 4776833cb5SWludzik, Jozef params.updateReport(), params.sensors(), 48*a4e67616SCezary Zwolak params.reportNames(), params.thresholdParams(), tm, 49*a4e67616SCezary Zwolak triggerStorage)); 5076833cb5SWludzik, Jozef } 5176833cb5SWludzik, Jozef else 5276833cb5SWludzik, Jozef { 53*a4e67616SCezary Zwolak return EXPECT_CALL( 54*a4e67616SCezary Zwolak *this, make(_, _, _, _, _, _, _, _, _, tm, triggerStorage)); 5576833cb5SWludzik, Jozef } 5676833cb5SWludzik, Jozef } 5776833cb5SWludzik, Jozef }; 58