12f9f9b87SWludzik, Jozef #include "dbus_environment.hpp" 2d2238194SKrzysztof Grobelny #include "helpers.hpp" 3b4ef22e4SSzymon Dompke #include "interfaces/trigger_manager.hpp" 4e2362796SWludzik, Jozef #include "mocks/json_storage_mock.hpp" 52f9f9b87SWludzik, Jozef #include "mocks/report_factory_mock.hpp" 6b4ef22e4SSzymon Dompke #include "mocks/trigger_manager_mock.hpp" 7e2362796SWludzik, Jozef #include "params/report_params.hpp" 8e2362796SWludzik, Jozef #include "report.hpp" 92f9f9b87SWludzik, Jozef #include "report_manager.hpp" 10e8fc5751SKrzysztof Grobelny #include "utils/conversion.hpp" 1132305f14SSzymon Dompke #include "utils/dbus_path_utils.hpp" 1232305f14SSzymon Dompke #include "utils/string_utils.hpp" 13e2362796SWludzik, Jozef #include "utils/transform.hpp" 1432305f14SSzymon Dompke #include "utils/tstring.hpp" 15*a8182bebSKrzysztof Grobelny #include "utils/variant_utils.hpp" 162f9f9b87SWludzik, Jozef 172f9f9b87SWludzik, Jozef using namespace testing; 18e8fc5751SKrzysztof Grobelny using namespace std::string_literals; 19e2362796SWludzik, Jozef using namespace std::chrono_literals; 202f9f9b87SWludzik, Jozef 21*a8182bebSKrzysztof Grobelny using AddReportFutureVersionVariantForSet = 22*a8182bebSKrzysztof Grobelny utils::WithoutMonostate<AddReportFutureVersionVariant>; 23*a8182bebSKrzysztof Grobelny 242f9f9b87SWludzik, Jozef class TestReportManager : public Test 252f9f9b87SWludzik, Jozef { 262f9f9b87SWludzik, Jozef public: 27e2362796SWludzik, Jozef ReportParams reportParams; 282f9f9b87SWludzik, Jozef 292f9f9b87SWludzik, Jozef std::unique_ptr<ReportFactoryMock> reportFactoryMockPtr = 302f9f9b87SWludzik, Jozef std::make_unique<StrictMock<ReportFactoryMock>>(); 312f9f9b87SWludzik, Jozef ReportFactoryMock& reportFactoryMock = *reportFactoryMockPtr; 32e2362796SWludzik, Jozef 33e2362796SWludzik, Jozef std::unique_ptr<StorageMock> storageMockPtr = 34e2362796SWludzik, Jozef std::make_unique<NiceMock<StorageMock>>(); 35e2362796SWludzik, Jozef StorageMock& storageMock = *storageMockPtr; 36e2362796SWludzik, Jozef 37d2238194SKrzysztof Grobelny std::unique_ptr<ReportMock> reportMockPtr = 38b8cc78ddSKrzysztof Grobelny std::make_unique<NiceMock<ReportMock>>(reportParams.reportId()); 39d2238194SKrzysztof Grobelny ReportMock& reportMock = *reportMockPtr; 40d2238194SKrzysztof Grobelny 41e2362796SWludzik, Jozef std::unique_ptr<ReportManager> sut; 422f9f9b87SWludzik, Jozef 432f9f9b87SWludzik, Jozef MockFunction<void(std::string)> checkPoint; 442f9f9b87SWludzik, Jozef 45e2362796SWludzik, Jozef void SetUp() override 46e2362796SWludzik, Jozef { 47dcc4e193SKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)) 48dcc4e193SKrzysztof Grobelny .Times(AnyNumber()); 49dcc4e193SKrzysztof Grobelny 50e6d48874SKrzysztof Grobelny sut = std::make_unique<ReportManager>(std::move(reportFactoryMockPtr), 51e6d48874SKrzysztof Grobelny std::move(storageMockPtr), 52e6d48874SKrzysztof Grobelny DbusEnvironment::getObjServer()); 53e2362796SWludzik, Jozef } 54e2362796SWludzik, Jozef 552f9f9b87SWludzik, Jozef void TearDown() override 562f9f9b87SWludzik, Jozef { 572f9f9b87SWludzik, Jozef DbusEnvironment::synchronizeIoc(); 582f9f9b87SWludzik, Jozef } 592f9f9b87SWludzik, Jozef 60*a8182bebSKrzysztof Grobelny std::pair<boost::system::error_code, std::string> 61*a8182bebSKrzysztof Grobelny addReport(const std::vector< 62*a8182bebSKrzysztof Grobelny std::pair<std::string, AddReportFutureVersionVariantForSet>>& 63*a8182bebSKrzysztof Grobelny properties) 642f9f9b87SWludzik, Jozef { 652f9f9b87SWludzik, Jozef std::promise<std::pair<boost::system::error_code, std::string>> 662f9f9b87SWludzik, Jozef addReportPromise; 672f9f9b87SWludzik, Jozef DbusEnvironment::getBus()->async_method_call( 682f9f9b87SWludzik, Jozef [&addReportPromise](boost::system::error_code ec, 692f9f9b87SWludzik, Jozef const std::string& path) { 702f9f9b87SWludzik, Jozef addReportPromise.set_value({ec, path}); 712f9f9b87SWludzik, Jozef }, 722f9f9b87SWludzik, Jozef DbusEnvironment::serviceName(), ReportManager::reportManagerPath, 73dcc4e193SKrzysztof Grobelny ReportManager::reportManagerIfaceName, "AddReportFutureVersion", 74*a8182bebSKrzysztof Grobelny properties); 75f32f6fefSKrzysztof Grobelny return DbusEnvironment::waitForFuture(addReportPromise.get_future()); 762f9f9b87SWludzik, Jozef } 772f9f9b87SWludzik, Jozef 7851497a0cSKrzysztof Grobelny auto addReport(const ReportParams& params) 7951497a0cSKrzysztof Grobelny { 80*a8182bebSKrzysztof Grobelny std::vector<std::pair<std::string, AddReportFutureVersionVariantForSet>> 81*a8182bebSKrzysztof Grobelny properties; 82*a8182bebSKrzysztof Grobelny 83*a8182bebSKrzysztof Grobelny properties.emplace_back("Id", params.reportId()); 84*a8182bebSKrzysztof Grobelny properties.emplace_back("Name", params.reportName()); 85*a8182bebSKrzysztof Grobelny properties.emplace_back("ReportingType", 86*a8182bebSKrzysztof Grobelny utils::enumToString(params.reportingType())); 87*a8182bebSKrzysztof Grobelny properties.emplace_back("ReportUpdates", 88*a8182bebSKrzysztof Grobelny utils::enumToString(params.reportUpdates())); 89*a8182bebSKrzysztof Grobelny properties.emplace_back("AppendLimit", params.appendLimit()); 90*a8182bebSKrzysztof Grobelny properties.emplace_back("Enabled", params.enabled()); 91*a8182bebSKrzysztof Grobelny properties.emplace_back( 92*a8182bebSKrzysztof Grobelny "ReportActions", 93*a8182bebSKrzysztof Grobelny utils::transform(params.reportActions(), [](const auto v) { 94b8cc78ddSKrzysztof Grobelny return utils::enumToString(v); 95*a8182bebSKrzysztof Grobelny })); 96*a8182bebSKrzysztof Grobelny properties.emplace_back("Interval", params.interval().count()); 97*a8182bebSKrzysztof Grobelny properties.emplace_back("MetricParams", 9851497a0cSKrzysztof Grobelny toReadingParameters(params.metricParameters())); 99*a8182bebSKrzysztof Grobelny 100*a8182bebSKrzysztof Grobelny return addReport(properties); 10151497a0cSKrzysztof Grobelny } 10251497a0cSKrzysztof Grobelny 1032f9f9b87SWludzik, Jozef template <class T> 104e28aa53dSSzymon Dompke static T getProperty(const std::string& property) 1052f9f9b87SWludzik, Jozef { 106e28aa53dSSzymon Dompke return DbusEnvironment::getProperty<T>( 1072f9f9b87SWludzik, Jozef ReportManager::reportManagerPath, 108e28aa53dSSzymon Dompke ReportManager::reportManagerIfaceName, property); 10932859b63SKarol Niczyj } 1102f9f9b87SWludzik, Jozef }; 1112f9f9b87SWludzik, Jozef 1122f9f9b87SWludzik, Jozef TEST_F(TestReportManager, minInterval) 1132f9f9b87SWludzik, Jozef { 1142f9f9b87SWludzik, Jozef EXPECT_THAT(getProperty<uint64_t>("MinInterval"), 115dcc4e193SKrzysztof Grobelny Eq(ReportManager::minInterval.count())); 1162f9f9b87SWludzik, Jozef } 1172f9f9b87SWludzik, Jozef 1182f9f9b87SWludzik, Jozef TEST_F(TestReportManager, maxReports) 1192f9f9b87SWludzik, Jozef { 120503c1589SWludzik, Jozef EXPECT_THAT(getProperty<size_t>("MaxReports"), 1212f9f9b87SWludzik, Jozef Eq(ReportManager::maxReports)); 1222f9f9b87SWludzik, Jozef } 1232f9f9b87SWludzik, Jozef 12460fee077SKrzysztof Grobelny TEST_F(TestReportManager, returnsPropertySupportedOperationTypes) 12560fee077SKrzysztof Grobelny { 12660fee077SKrzysztof Grobelny EXPECT_THAT( 12760fee077SKrzysztof Grobelny getProperty<std::vector<std::string>>("SupportedOperationTypes"), 12860fee077SKrzysztof Grobelny UnorderedElementsAre("Maximum", "Minimum", "Average", "Summation")); 12960fee077SKrzysztof Grobelny } 13060fee077SKrzysztof Grobelny 1312f9f9b87SWludzik, Jozef TEST_F(TestReportManager, addReport) 1322f9f9b87SWludzik, Jozef { 133dcc4e193SKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)); 134dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 1352f9f9b87SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 1362f9f9b87SWludzik, Jozef 137e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 1382f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 1392f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(reportMock.getPath())); 1402f9f9b87SWludzik, Jozef } 1412f9f9b87SWludzik, Jozef 142*a8182bebSKrzysztof Grobelny TEST_F(TestReportManager, addDisabledReport) 143*a8182bebSKrzysztof Grobelny { 144*a8182bebSKrzysztof Grobelny reportParams.enabled(false); 145*a8182bebSKrzysztof Grobelny 146*a8182bebSKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)); 147*a8182bebSKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 148*a8182bebSKrzysztof Grobelny .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 149*a8182bebSKrzysztof Grobelny 150*a8182bebSKrzysztof Grobelny auto [ec, path] = addReport(reportParams); 151*a8182bebSKrzysztof Grobelny EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 152*a8182bebSKrzysztof Grobelny EXPECT_THAT(path, Eq(reportMock.getPath())); 153*a8182bebSKrzysztof Grobelny } 154*a8182bebSKrzysztof Grobelny 155*a8182bebSKrzysztof Grobelny TEST_F(TestReportManager, addReportWithOnlyDefaultParams) 156*a8182bebSKrzysztof Grobelny { 157*a8182bebSKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)); 158*a8182bebSKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, 159*a8182bebSKrzysztof Grobelny make("Report"s, "Report"s, ReportingType::onRequest, 160*a8182bebSKrzysztof Grobelny std::vector<ReportAction>{}, Milliseconds{}, 0, 161*a8182bebSKrzysztof Grobelny ReportUpdates::overwrite, _, _, 162*a8182bebSKrzysztof Grobelny std::vector<LabeledMetricParameters>{}, true, Readings{})) 163*a8182bebSKrzysztof Grobelny .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 164*a8182bebSKrzysztof Grobelny 165*a8182bebSKrzysztof Grobelny auto [ec, path] = addReport( 166*a8182bebSKrzysztof Grobelny std::vector< 167*a8182bebSKrzysztof Grobelny std::pair<std::string, AddReportFutureVersionVariantForSet>>{}); 168*a8182bebSKrzysztof Grobelny EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 169*a8182bebSKrzysztof Grobelny EXPECT_THAT(path, Eq(reportMock.getPath())); 170*a8182bebSKrzysztof Grobelny } 171*a8182bebSKrzysztof Grobelny 172f7ea2997SKrzysztof Grobelny TEST_F(TestReportManager, addOnChangeReport) 173f7ea2997SKrzysztof Grobelny { 174f7ea2997SKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)); 175f7ea2997SKrzysztof Grobelny reportFactoryMock 176f7ea2997SKrzysztof Grobelny .expectMake(reportParams.reportingType(ReportingType::onChange), 177f7ea2997SKrzysztof Grobelny Ref(*sut), Ref(storageMock)) 178f7ea2997SKrzysztof Grobelny .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 179f7ea2997SKrzysztof Grobelny 180f7ea2997SKrzysztof Grobelny auto [ec, path] = addReport(reportParams); 181f7ea2997SKrzysztof Grobelny EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 182f7ea2997SKrzysztof Grobelny EXPECT_THAT(path, Eq(reportMock.getPath())); 183f7ea2997SKrzysztof Grobelny } 184f7ea2997SKrzysztof Grobelny 185b8cc78ddSKrzysztof Grobelny TEST_F(TestReportManager, nameIsUsedToGenerateIdWhenIdIsEmptyInAddReport) 18632859b63SKarol Niczyj { 187b8cc78ddSKrzysztof Grobelny reportParams.reportId("ReportName"); 188b8cc78ddSKrzysztof Grobelny reportParams.reportName("ReportName"); 189b8cc78ddSKrzysztof Grobelny 190b8cc78ddSKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)); 191b8cc78ddSKrzysztof Grobelny 192b8cc78ddSKrzysztof Grobelny auto [ec, path] = addReport(reportParams.reportId("")); 193b8cc78ddSKrzysztof Grobelny 194b8cc78ddSKrzysztof Grobelny EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 195b8cc78ddSKrzysztof Grobelny EXPECT_THAT(path, Eq("/ReportName")); 196b8cc78ddSKrzysztof Grobelny } 197b8cc78ddSKrzysztof Grobelny 198b8cc78ddSKrzysztof Grobelny TEST_F(TestReportManager, nameIsUsedToGenerateIdWhenIdIsNamespace) 199b8cc78ddSKrzysztof Grobelny { 200b8cc78ddSKrzysztof Grobelny reportParams.reportId("Prefix/ReportName"); 201b8cc78ddSKrzysztof Grobelny reportParams.reportName("ReportName"); 202b8cc78ddSKrzysztof Grobelny 203b8cc78ddSKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)); 204b8cc78ddSKrzysztof Grobelny 205b8cc78ddSKrzysztof Grobelny auto [ec, path] = addReport(reportParams.reportId("Prefix/")); 206b8cc78ddSKrzysztof Grobelny 207b8cc78ddSKrzysztof Grobelny EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 208b8cc78ddSKrzysztof Grobelny EXPECT_THAT(path, Eq("/Prefix/ReportName")); 209b8cc78ddSKrzysztof Grobelny } 210b8cc78ddSKrzysztof Grobelny 211b8cc78ddSKrzysztof Grobelny TEST_F(TestReportManager, addReportWithMaxLengthId) 212b8cc78ddSKrzysztof Grobelny { 21332305f14SSzymon Dompke std::string reportId = utils::string_utils::getMaxId(); 214b8cc78ddSKrzysztof Grobelny reportParams.reportId(reportId); 215dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)); 21632859b63SKarol Niczyj 21732859b63SKarol Niczyj auto [ec, path] = addReport(reportParams); 21832859b63SKarol Niczyj 21932859b63SKarol Niczyj EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 220b8cc78ddSKrzysztof Grobelny EXPECT_THAT(path, Eq("/"s + reportId)); 22132859b63SKarol Niczyj } 22232859b63SKarol Niczyj 22332305f14SSzymon Dompke TEST_F(TestReportManager, addReportWithMaxLengthPrefix) 22432305f14SSzymon Dompke { 22532305f14SSzymon Dompke std::string reportId = utils::string_utils::getMaxPrefix() + "/MyId"; 22632305f14SSzymon Dompke reportParams.reportId(reportId); 22732305f14SSzymon Dompke reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)); 22832305f14SSzymon Dompke 22932305f14SSzymon Dompke auto [ec, path] = addReport(reportParams); 23032305f14SSzymon Dompke 23132305f14SSzymon Dompke EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 23232305f14SSzymon Dompke EXPECT_THAT(path, Eq("/"s + reportId)); 23332305f14SSzymon Dompke } 23432305f14SSzymon Dompke 23532305f14SSzymon Dompke TEST_F(TestReportManager, addReportWithMaxLengthName) 23632305f14SSzymon Dompke { 23732305f14SSzymon Dompke reportParams.reportName(utils::string_utils::getMaxName()); 23832305f14SSzymon Dompke reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)); 23932305f14SSzymon Dompke 24032305f14SSzymon Dompke auto [ec, path] = addReport(reportParams); 24132305f14SSzymon Dompke 24232305f14SSzymon Dompke EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 24332305f14SSzymon Dompke EXPECT_THAT(path, Eq("/"s + reportParams.reportId())); 24432305f14SSzymon Dompke } 24532305f14SSzymon Dompke 24632305f14SSzymon Dompke TEST_F(TestReportManager, addReportWithMaxLengthMetricId) 24732305f14SSzymon Dompke { 24832305f14SSzymon Dompke namespace ts = utils::tstring; 24932305f14SSzymon Dompke std::vector<LabeledMetricParameters> newMetricParams{ 25032305f14SSzymon Dompke {LabeledMetricParameters{ 25132305f14SSzymon Dompke {LabeledSensorInfo{"Service", 25232305f14SSzymon Dompke "/xyz/openbmc_project/sensors/power/p1", 25332305f14SSzymon Dompke "metadata1"}}, 25432305f14SSzymon Dompke OperationType::avg, 25532305f14SSzymon Dompke utils::string_utils::getMaxId(), 25632305f14SSzymon Dompke CollectionTimeScope::point, 25732305f14SSzymon Dompke CollectionDuration(Milliseconds(0u))}}}; 25832305f14SSzymon Dompke 25932305f14SSzymon Dompke reportParams.metricParameters(newMetricParams); 26032305f14SSzymon Dompke reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)); 26132305f14SSzymon Dompke 26232305f14SSzymon Dompke auto [ec, path] = addReport(reportParams); 26332305f14SSzymon Dompke 26432305f14SSzymon Dompke EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 26532305f14SSzymon Dompke EXPECT_THAT(path, Eq("/"s + reportParams.reportId())); 26632305f14SSzymon Dompke } 26732305f14SSzymon Dompke 26832305f14SSzymon Dompke TEST_F(TestReportManager, DISABLED_failToAddReportWithTooLongFullId) 26932859b63SKarol Niczyj { 270dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 27132859b63SKarol Niczyj .Times(0); 27232859b63SKarol Niczyj 273b8cc78ddSKrzysztof Grobelny reportParams.reportId( 27432305f14SSzymon Dompke std::string(utils::constants::maxReportFullIdLength + 1, 'z')); 27532305f14SSzymon Dompke 27632305f14SSzymon Dompke auto [ec, path] = addReport(reportParams); 27732305f14SSzymon Dompke 27832305f14SSzymon Dompke EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 27932305f14SSzymon Dompke EXPECT_THAT(path, Eq(std::string())); 28032305f14SSzymon Dompke } 28132305f14SSzymon Dompke 28232305f14SSzymon Dompke TEST_F(TestReportManager, DISABLED_failToAddReportWithTooLongId) 28332305f14SSzymon Dompke { 28432305f14SSzymon Dompke reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 28532305f14SSzymon Dompke .Times(0); 28632305f14SSzymon Dompke 28732305f14SSzymon Dompke reportParams.reportId(utils::string_utils::getTooLongId()); 28832305f14SSzymon Dompke 28932305f14SSzymon Dompke auto [ec, path] = addReport(reportParams); 29032305f14SSzymon Dompke 29132305f14SSzymon Dompke EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 29232305f14SSzymon Dompke EXPECT_THAT(path, Eq(std::string())); 29332305f14SSzymon Dompke } 29432305f14SSzymon Dompke 29532305f14SSzymon Dompke TEST_F(TestReportManager, DISABLED_failToAddReportWithTooLongPrefix) 29632305f14SSzymon Dompke { 29732305f14SSzymon Dompke reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 29832305f14SSzymon Dompke .Times(0); 29932305f14SSzymon Dompke 30032305f14SSzymon Dompke reportParams.reportId(utils::string_utils::getTooLongPrefix() + "/MyId"); 30132305f14SSzymon Dompke 30232305f14SSzymon Dompke auto [ec, path] = addReport(reportParams); 30332305f14SSzymon Dompke 30432305f14SSzymon Dompke EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 30532305f14SSzymon Dompke EXPECT_THAT(path, Eq(std::string())); 30632305f14SSzymon Dompke } 30732305f14SSzymon Dompke 30832305f14SSzymon Dompke TEST_F(TestReportManager, DISABLED_failToAddReportWithTooManyPrefixes) 30932305f14SSzymon Dompke { 31032305f14SSzymon Dompke reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 31132305f14SSzymon Dompke .Times(0); 31232305f14SSzymon Dompke 31332305f14SSzymon Dompke std::string reportId; 31432305f14SSzymon Dompke for (size_t i = 0; i < utils::constants::maxPrefixesInId + 1; i++) 31532305f14SSzymon Dompke { 31632305f14SSzymon Dompke reportId += "prefix/"; 31732305f14SSzymon Dompke } 31832305f14SSzymon Dompke reportId += "MyId"; 31932305f14SSzymon Dompke 32032305f14SSzymon Dompke reportParams.reportId(reportId); 32132305f14SSzymon Dompke 32232305f14SSzymon Dompke auto [ec, path] = addReport(reportParams); 32332305f14SSzymon Dompke 32432305f14SSzymon Dompke EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 32532305f14SSzymon Dompke EXPECT_THAT(path, Eq(std::string())); 32632305f14SSzymon Dompke } 32732305f14SSzymon Dompke 32832305f14SSzymon Dompke TEST_F(TestReportManager, DISABLED_failToAddReportWithTooLongName) 32932305f14SSzymon Dompke { 33032305f14SSzymon Dompke reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 33132305f14SSzymon Dompke .Times(0); 33232305f14SSzymon Dompke 33332305f14SSzymon Dompke reportParams.reportName(utils::string_utils::getTooLongName()); 33432305f14SSzymon Dompke 33532305f14SSzymon Dompke auto [ec, path] = addReport(reportParams); 33632305f14SSzymon Dompke 33732305f14SSzymon Dompke EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 33832305f14SSzymon Dompke EXPECT_THAT(path, Eq(std::string())); 33932305f14SSzymon Dompke } 34032305f14SSzymon Dompke 34132305f14SSzymon Dompke TEST_F(TestReportManager, DISABLED_failToAddReportWithTooLongMetricId) 34232305f14SSzymon Dompke { 34332305f14SSzymon Dompke namespace ts = utils::tstring; 34432305f14SSzymon Dompke 34532305f14SSzymon Dompke std::vector<LabeledMetricParameters> newMetricParams{ 34632305f14SSzymon Dompke {LabeledMetricParameters{ 34732305f14SSzymon Dompke {LabeledSensorInfo{"Service", 34832305f14SSzymon Dompke "/xyz/openbmc_project/sensors/power/p1", 34932305f14SSzymon Dompke "metadata1"}}, 35032305f14SSzymon Dompke OperationType::avg, 35132305f14SSzymon Dompke utils::string_utils::getTooLongId(), 35232305f14SSzymon Dompke CollectionTimeScope::point, 35332305f14SSzymon Dompke CollectionDuration(Milliseconds(0u))}}}; 35432305f14SSzymon Dompke 35532305f14SSzymon Dompke reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 35632305f14SSzymon Dompke .Times(0); 35732305f14SSzymon Dompke 35832305f14SSzymon Dompke reportParams.metricParameters(newMetricParams); 35932859b63SKarol Niczyj 36032859b63SKarol Niczyj auto [ec, path] = addReport(reportParams); 36132859b63SKarol Niczyj 36232859b63SKarol Niczyj EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 36332859b63SKarol Niczyj EXPECT_THAT(path, Eq(std::string())); 36432859b63SKarol Niczyj } 36532859b63SKarol Niczyj 366e2362796SWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportTwice) 3672f9f9b87SWludzik, Jozef { 368dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 369d2238194SKrzysztof Grobelny .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 3702f9f9b87SWludzik, Jozef 371e2362796SWludzik, Jozef addReport(reportParams); 3722f9f9b87SWludzik, Jozef 373e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 37432859b63SKarol Niczyj 3752f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::file_exists)); 3762f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 3772f9f9b87SWludzik, Jozef } 3782f9f9b87SWludzik, Jozef 379e2362796SWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWithInvalidInterval) 3802f9f9b87SWludzik, Jozef { 381dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 382d2238194SKrzysztof Grobelny .Times(0); 3832f9f9b87SWludzik, Jozef 38451497a0cSKrzysztof Grobelny reportParams.reportingType(ReportingType::periodic); 385973b4bb0SKrzysztof Grobelny reportParams.interval(ReportManager::minInterval - 1ms); 3862f9f9b87SWludzik, Jozef 387e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 38832859b63SKarol Niczyj 3892f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 3902f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 3912f9f9b87SWludzik, Jozef } 3922f9f9b87SWludzik, Jozef 393bc766b4dSWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWithInvalidReportingType) 394bc766b4dSWludzik, Jozef { 395dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 396bc766b4dSWludzik, Jozef .Times(0); 397bc766b4dSWludzik, Jozef 398*a8182bebSKrzysztof Grobelny auto [ec, path] = addReport({{"Name", reportParams.reportName()}, 399*a8182bebSKrzysztof Grobelny {"ReportingType", "InvalidReportingType"}}); 40032859b63SKarol Niczyj 401bc766b4dSWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 402bc766b4dSWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 403bc766b4dSWludzik, Jozef } 404bc766b4dSWludzik, Jozef 405cd5b0b7eSAnkita Vilas Gawade TEST_F(TestReportManager, 406cd5b0b7eSAnkita Vilas Gawade DISABLED_failToAddReportWithMoreMetricPropertiesThanExpected) 407bc766b4dSWludzik, Jozef { 408dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 409bc766b4dSWludzik, Jozef .Times(0); 410bc766b4dSWludzik, Jozef 411cd5b0b7eSAnkita Vilas Gawade reportParams.metricParameters( 412cd5b0b7eSAnkita Vilas Gawade std::vector<LabeledMetricParameters>{{LabeledMetricParameters{ 41394f71c51SSzymon Dompke {LabeledSensorInfo{"Service", 414cd5b0b7eSAnkita Vilas Gawade "/xyz/openbmc_project/sensors/power/p1", 415cd5b0b7eSAnkita Vilas Gawade "Metadata1"}}, 41660fee077SKrzysztof Grobelny OperationType::avg, 417cd5b0b7eSAnkita Vilas Gawade "MetricId1", 418cd5b0b7eSAnkita Vilas Gawade CollectionTimeScope::point, 419cd5b0b7eSAnkita Vilas Gawade CollectionDuration(Milliseconds(0u))}}}); 420cd5b0b7eSAnkita Vilas Gawade 421dcc4e193SKrzysztof Grobelny auto metricParams = reportParams.metricParameters(); 422cd5b0b7eSAnkita Vilas Gawade auto& metricParamsVec = 423cd5b0b7eSAnkita Vilas Gawade metricParams[0].at_label<utils::tstring::SensorPath>(); 424cd5b0b7eSAnkita Vilas Gawade 425cd5b0b7eSAnkita Vilas Gawade for (size_t i = 0; i < ReportManager::maxNumberMetrics; i++) 426bc766b4dSWludzik, Jozef { 42794f71c51SSzymon Dompke metricParamsVec.emplace_back(LabeledSensorInfo{ 428cd5b0b7eSAnkita Vilas Gawade "Service", "/xyz/openbmc_project/sensors/power/p1", "Metadata1"}); 429bc766b4dSWludzik, Jozef } 430cd5b0b7eSAnkita Vilas Gawade 431dcc4e193SKrzysztof Grobelny reportParams.metricParameters(std::move(metricParams)); 432bc766b4dSWludzik, Jozef 433bc766b4dSWludzik, Jozef auto [ec, path] = addReport(reportParams); 43432859b63SKarol Niczyj 435bc766b4dSWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::argument_list_too_long)); 436bc766b4dSWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 437bc766b4dSWludzik, Jozef } 438bc766b4dSWludzik, Jozef 439cd5b0b7eSAnkita Vilas Gawade TEST_F(TestReportManager, DISABLED_failToAddReportWithMoreMetricsThanExpected) 440cd5b0b7eSAnkita Vilas Gawade { 441cd5b0b7eSAnkita Vilas Gawade reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 442cd5b0b7eSAnkita Vilas Gawade .Times(0); 443cd5b0b7eSAnkita Vilas Gawade 444cd5b0b7eSAnkita Vilas Gawade auto metricParams = std::vector<LabeledMetricParameters>{}; 445cd5b0b7eSAnkita Vilas Gawade 446cd5b0b7eSAnkita Vilas Gawade for (size_t i = 0; i < ReportManager::maxNumberMetrics + 1; i++) 447cd5b0b7eSAnkita Vilas Gawade { 448cd5b0b7eSAnkita Vilas Gawade metricParams.emplace_back( 449cd5b0b7eSAnkita Vilas Gawade LabeledMetricParameters{{}, 45060fee077SKrzysztof Grobelny OperationType::avg, 451cd5b0b7eSAnkita Vilas Gawade "MetricId1", 452cd5b0b7eSAnkita Vilas Gawade CollectionTimeScope::point, 453cd5b0b7eSAnkita Vilas Gawade CollectionDuration(Milliseconds(0u))}); 454cd5b0b7eSAnkita Vilas Gawade } 455cd5b0b7eSAnkita Vilas Gawade 456cd5b0b7eSAnkita Vilas Gawade reportParams.metricParameters(std::move(metricParams)); 457cd5b0b7eSAnkita Vilas Gawade 458cd5b0b7eSAnkita Vilas Gawade auto [ec, path] = addReport(reportParams); 459cd5b0b7eSAnkita Vilas Gawade 460cd5b0b7eSAnkita Vilas Gawade EXPECT_THAT(ec.value(), Eq(boost::system::errc::argument_list_too_long)); 461cd5b0b7eSAnkita Vilas Gawade EXPECT_THAT(path, Eq(std::string())); 462cd5b0b7eSAnkita Vilas Gawade } 463cd5b0b7eSAnkita Vilas Gawade 464cd5b0b7eSAnkita Vilas Gawade TEST_F(TestReportManager, DISABLED_failToAddReportWithAppendLimitGreaterThanMax) 465cd5b0b7eSAnkita Vilas Gawade { 466cd5b0b7eSAnkita Vilas Gawade reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 467cd5b0b7eSAnkita Vilas Gawade .Times(0); 468cd5b0b7eSAnkita Vilas Gawade 469cd5b0b7eSAnkita Vilas Gawade reportParams.appendLimit(ReportManager::maxAppendLimit + 1); 470cd5b0b7eSAnkita Vilas Gawade 471cd5b0b7eSAnkita Vilas Gawade auto [ec, path] = addReport(reportParams); 472cd5b0b7eSAnkita Vilas Gawade 473cd5b0b7eSAnkita Vilas Gawade EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 474cd5b0b7eSAnkita Vilas Gawade EXPECT_THAT(path, Eq(std::string())); 475cd5b0b7eSAnkita Vilas Gawade } 476cd5b0b7eSAnkita Vilas Gawade 477e6c417cfSKrzysztof Grobelny TEST_F(TestReportManager, addReportWithAppendLimitEqualToUint64MaxIsAllowed) 478e6c417cfSKrzysztof Grobelny { 479e6c417cfSKrzysztof Grobelny reportParams.appendLimit(std::numeric_limits<uint64_t>::max()); 480e6c417cfSKrzysztof Grobelny 481e6c417cfSKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)); 482e6c417cfSKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 483e6c417cfSKrzysztof Grobelny .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 484e6c417cfSKrzysztof Grobelny 485e6c417cfSKrzysztof Grobelny auto [ec, path] = addReport(reportParams); 486e6c417cfSKrzysztof Grobelny EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 487e6c417cfSKrzysztof Grobelny EXPECT_THAT(path, Eq(reportMock.getPath())); 488e6c417cfSKrzysztof Grobelny } 489e6c417cfSKrzysztof Grobelny 490e2362796SWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWhenMaxReportIsReached) 4912f9f9b87SWludzik, Jozef { 492dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 4932f9f9b87SWludzik, Jozef .Times(ReportManager::maxReports); 4942f9f9b87SWludzik, Jozef 4952f9f9b87SWludzik, Jozef for (size_t i = 0; i < ReportManager::maxReports; i++) 4962f9f9b87SWludzik, Jozef { 497b8cc78ddSKrzysztof Grobelny reportParams.reportId(reportParams.reportName() + std::to_string(i)); 4982f9f9b87SWludzik, Jozef 499e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 5002f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 5012f9f9b87SWludzik, Jozef } 5022f9f9b87SWludzik, Jozef 503b8cc78ddSKrzysztof Grobelny reportParams.reportId(reportParams.reportName() + 504e2362796SWludzik, Jozef std::to_string(ReportManager::maxReports)); 505e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 50632859b63SKarol Niczyj 5072f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::too_many_files_open)); 5082f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 5092f9f9b87SWludzik, Jozef } 5102f9f9b87SWludzik, Jozef 5112f9f9b87SWludzik, Jozef TEST_F(TestReportManager, removeReport) 5122f9f9b87SWludzik, Jozef { 5132f9f9b87SWludzik, Jozef { 5142f9f9b87SWludzik, Jozef InSequence seq; 515dcc4e193SKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)); 516dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 5172f9f9b87SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 5182f9f9b87SWludzik, Jozef EXPECT_CALL(reportMock, Die()); 5192f9f9b87SWludzik, Jozef EXPECT_CALL(checkPoint, Call("end")); 5202f9f9b87SWludzik, Jozef } 5212f9f9b87SWludzik, Jozef 522e2362796SWludzik, Jozef addReport(reportParams); 523e2362796SWludzik, Jozef sut->removeReport(&reportMock); 5242f9f9b87SWludzik, Jozef checkPoint.Call("end"); 5252f9f9b87SWludzik, Jozef } 5262f9f9b87SWludzik, Jozef 5272f9f9b87SWludzik, Jozef TEST_F(TestReportManager, removingReportThatIsNotInContainerHasNoEffect) 5282f9f9b87SWludzik, Jozef { 5292f9f9b87SWludzik, Jozef { 5302f9f9b87SWludzik, Jozef InSequence seq; 5312f9f9b87SWludzik, Jozef EXPECT_CALL(checkPoint, Call("end")); 5322f9f9b87SWludzik, Jozef EXPECT_CALL(reportMock, Die()); 5332f9f9b87SWludzik, Jozef } 5342f9f9b87SWludzik, Jozef 535e2362796SWludzik, Jozef sut->removeReport(&reportMock); 5362f9f9b87SWludzik, Jozef checkPoint.Call("end"); 5372f9f9b87SWludzik, Jozef } 5382f9f9b87SWludzik, Jozef 5392f9f9b87SWludzik, Jozef TEST_F(TestReportManager, removingSameReportTwiceHasNoSideEffect) 5402f9f9b87SWludzik, Jozef { 5412f9f9b87SWludzik, Jozef { 5422f9f9b87SWludzik, Jozef InSequence seq; 543dcc4e193SKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)); 544dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 5452f9f9b87SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 5462f9f9b87SWludzik, Jozef EXPECT_CALL(reportMock, Die()); 5472f9f9b87SWludzik, Jozef EXPECT_CALL(checkPoint, Call("end")); 5482f9f9b87SWludzik, Jozef } 5492f9f9b87SWludzik, Jozef 550e2362796SWludzik, Jozef addReport(reportParams); 551e2362796SWludzik, Jozef sut->removeReport(&reportMock); 552e2362796SWludzik, Jozef sut->removeReport(&reportMock); 5532f9f9b87SWludzik, Jozef checkPoint.Call("end"); 5542f9f9b87SWludzik, Jozef } 555e2362796SWludzik, Jozef 556e8fc5751SKrzysztof Grobelny class TestReportManagerWithAggregationOperationType : 557e8fc5751SKrzysztof Grobelny public TestReportManager, 558e8fc5751SKrzysztof Grobelny public WithParamInterface<OperationType> 559e8fc5751SKrzysztof Grobelny { 560e8fc5751SKrzysztof Grobelny public: 561e8fc5751SKrzysztof Grobelny OperationType operationType = GetParam(); 562e8fc5751SKrzysztof Grobelny }; 563e8fc5751SKrzysztof Grobelny 564e8fc5751SKrzysztof Grobelny INSTANTIATE_TEST_SUITE_P(_, TestReportManagerWithAggregationOperationType, 56560fee077SKrzysztof Grobelny Values(OperationType::max, OperationType::min, 56660fee077SKrzysztof Grobelny OperationType::avg, OperationType::sum)); 567e8fc5751SKrzysztof Grobelny 568e8fc5751SKrzysztof Grobelny TEST_P(TestReportManagerWithAggregationOperationType, 569e8fc5751SKrzysztof Grobelny addReportWithDifferentOperationTypes) 570e8fc5751SKrzysztof Grobelny { 571dcc4e193SKrzysztof Grobelny reportParams.metricParameters( 572dcc4e193SKrzysztof Grobelny std::vector<LabeledMetricParameters>{{LabeledMetricParameters{ 57394f71c51SSzymon Dompke {LabeledSensorInfo{"Service", 574b8cc78ddSKrzysztof Grobelny "/xyz/openbmc_project/sensors/power/p1", 575b8cc78ddSKrzysztof Grobelny "Metadata1"}}, 576dcc4e193SKrzysztof Grobelny operationType, 577e8fc5751SKrzysztof Grobelny "MetricId1", 578dcc4e193SKrzysztof Grobelny CollectionTimeScope::point, 579dcc4e193SKrzysztof Grobelny CollectionDuration(Milliseconds(0u))}}}); 580e8fc5751SKrzysztof Grobelny 581dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 582e8fc5751SKrzysztof Grobelny .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 583e8fc5751SKrzysztof Grobelny 584e8fc5751SKrzysztof Grobelny auto [ec, path] = addReport(reportParams); 58532859b63SKarol Niczyj 586e8fc5751SKrzysztof Grobelny EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 587b8cc78ddSKrzysztof Grobelny EXPECT_THAT(path, Eq("/"s + reportParams.reportId())); 588e8fc5751SKrzysztof Grobelny } 589e8fc5751SKrzysztof Grobelny 590e2362796SWludzik, Jozef class TestReportManagerStorage : public TestReportManager 591e2362796SWludzik, Jozef { 592e2362796SWludzik, Jozef public: 593e2362796SWludzik, Jozef using FilePath = interfaces::JsonStorage::FilePath; 594e2362796SWludzik, Jozef using DirectoryPath = interfaces::JsonStorage::DirectoryPath; 595e2362796SWludzik, Jozef 596e2362796SWludzik, Jozef void SetUp() override 597e2362796SWludzik, Jozef { 598dcc4e193SKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)).Times(0); 599dcc4e193SKrzysztof Grobelny 600e2362796SWludzik, Jozef ON_CALL(storageMock, list()) 601e2362796SWludzik, Jozef .WillByDefault(Return(std::vector<FilePath>{FilePath("report1")})); 602e2362796SWludzik, Jozef ON_CALL(storageMock, load(FilePath("report1"))) 6036ccfcbf5SKrzysztof Grobelny .WillByDefault(InvokeWithoutArgs([this] { return data; })); 604e2362796SWludzik, Jozef } 605e2362796SWludzik, Jozef 606e2362796SWludzik, Jozef void makeReportManager() 607e2362796SWludzik, Jozef { 608e6d48874SKrzysztof Grobelny sut = std::make_unique<ReportManager>(std::move(reportFactoryMockPtr), 609e6d48874SKrzysztof Grobelny std::move(storageMockPtr), 610e6d48874SKrzysztof Grobelny DbusEnvironment::getObjServer()); 611e2362796SWludzik, Jozef } 612e2362796SWludzik, Jozef 613e2362796SWludzik, Jozef nlohmann::json data = nlohmann::json{ 6147e098e93SLukasz Kazmierczak {"Enabled", reportParams.enabled()}, 615e2362796SWludzik, Jozef {"Version", Report::reportVersion}, 616b8cc78ddSKrzysztof Grobelny {"Id", reportParams.reportId()}, 617e2362796SWludzik, Jozef {"Name", reportParams.reportName()}, 61851497a0cSKrzysztof Grobelny {"ReportingType", utils::toUnderlying(reportParams.reportingType())}, 61951497a0cSKrzysztof Grobelny {"ReportActions", reportParams.reportActions()}, 620e2362796SWludzik, Jozef {"Interval", reportParams.interval().count()}, 62151497a0cSKrzysztof Grobelny {"ReportUpdates", utils::toUnderlying(reportParams.reportUpdates())}, 6223eb56865SSzymon Dompke {"AppendLimit", reportParams.appendLimit()}, 623dcc4e193SKrzysztof Grobelny {"ReadingParameters", reportParams.metricParameters()}}; 624e2362796SWludzik, Jozef }; 625e2362796SWludzik, Jozef 626e2362796SWludzik, Jozef TEST_F(TestReportManagerStorage, reportManagerCtorAddReportFromStorage) 627e2362796SWludzik, Jozef { 628dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, _, Ref(storageMock)); 629e2362796SWludzik, Jozef 630e2362796SWludzik, Jozef makeReportManager(); 631e2362796SWludzik, Jozef } 632e2362796SWludzik, Jozef 633e2362796SWludzik, Jozef TEST_F(TestReportManagerStorage, 634e2362796SWludzik, Jozef reportManagerCtorRemoveFileIfVersionDoesNotMatch) 635e2362796SWludzik, Jozef { 636e2362796SWludzik, Jozef data["Version"] = Report::reportVersion - 1; 637e2362796SWludzik, Jozef 638e2362796SWludzik, Jozef EXPECT_CALL(storageMock, remove(FilePath("report1"))); 639e2362796SWludzik, Jozef 640e2362796SWludzik, Jozef makeReportManager(); 641e2362796SWludzik, Jozef } 642e2362796SWludzik, Jozef 643e2362796SWludzik, Jozef TEST_F(TestReportManagerStorage, 644e2362796SWludzik, Jozef reportManagerCtorRemoveFileIfIntervalHasWrongType) 645e2362796SWludzik, Jozef { 646e2362796SWludzik, Jozef data["Interval"] = "1000"; 647e2362796SWludzik, Jozef 648e2362796SWludzik, Jozef EXPECT_CALL(storageMock, remove(FilePath("report1"))); 649e2362796SWludzik, Jozef 650e2362796SWludzik, Jozef makeReportManager(); 651e2362796SWludzik, Jozef } 652