#pragma once #include "interfaces/trigger_factory.hpp" #include "mocks/trigger_mock.hpp" #include "params/trigger_params.hpp" #include class TriggerFactoryMock : public interfaces::TriggerFactory { public: TriggerFactoryMock() { using namespace testing; ON_CALL(*this, make(_, _, _, _, _, _, _, _, _, _)) .WillByDefault(WithArgs<1>(Invoke([](const std::string& name) { return std::make_unique>(name); }))); } MOCK_METHOD( std::unique_ptr, make, (boost::asio::yield_context&, const std::string& name, bool isDiscrete, bool logToJournal, bool logToRedfish, bool updateReport, (const std::vector< std::pair>& sensors), const std::vector& reportNames, const TriggerThresholdParams& thresholdParams, interfaces::TriggerManager& triggerManager), (const, override)); auto& expectMake( std::optional> paramsOpt, const testing::Matcher& tm) { using namespace testing; if (paramsOpt) { const TriggerParams& params = *paramsOpt; return EXPECT_CALL( *this, make(_, params.name(), params.isDiscrete(), params.logToJournal(), params.logToRedfish(), params.updateReport(), params.sensors(), params.reportNames(), params.thresholdParams(), tm)); } else { return EXPECT_CALL(*this, make(_, _, _, _, _, _, _, _, _, tm)); } } };