1 #pragma once
2 
3 #include "interfaces/report_factory.hpp"
4 #include "mocks/report_mock.hpp"
5 
6 #include <gmock/gmock.h>
7 
8 class ReportFactoryMock : public interfaces::ReportFactory
9 {
10   public:
11     ReportFactoryMock()
12     {
13         using namespace testing;
14 
15         ON_CALL(*this, make)
16             .WillByDefault(WithArgs<0>(Invoke([](const std::string& name) {
17                 return std::make_unique<NiceMock<ReportMock>>(name);
18             })));
19     }
20 
21     MOCK_METHOD(std::unique_ptr<interfaces::Report>, make,
22                 (const std::string& name, const std::string& reportingType,
23                  bool emitsReadingsSignal, bool logToMetricReportsCollection,
24                  std::chrono::milliseconds period,
25                  const ReadingParameters& metricParams,
26                  interfaces::ReportManager& reportManager),
27                 (const, override));
28 };
29