12f9f9b87SWludzik, Jozef #include "dbus_environment.hpp" 2d2238194SKrzysztof Grobelny #include "helpers.hpp" 3e2362796SWludzik, Jozef #include "mocks/json_storage_mock.hpp" 42f9f9b87SWludzik, Jozef #include "mocks/report_factory_mock.hpp" 5e2362796SWludzik, Jozef #include "params/report_params.hpp" 6e2362796SWludzik, Jozef #include "report.hpp" 72f9f9b87SWludzik, Jozef #include "report_manager.hpp" 8e8fc5751SKrzysztof Grobelny #include "utils/conversion.hpp" 9e2362796SWludzik, Jozef #include "utils/transform.hpp" 102f9f9b87SWludzik, Jozef 112f9f9b87SWludzik, Jozef using namespace testing; 12e8fc5751SKrzysztof Grobelny using namespace std::string_literals; 13e2362796SWludzik, Jozef using namespace std::chrono_literals; 142f9f9b87SWludzik, Jozef 152f9f9b87SWludzik, Jozef class TestReportManager : public Test 162f9f9b87SWludzik, Jozef { 172f9f9b87SWludzik, Jozef public: 18e2362796SWludzik, Jozef ReportParams reportParams; 192f9f9b87SWludzik, Jozef 202f9f9b87SWludzik, Jozef std::unique_ptr<ReportFactoryMock> reportFactoryMockPtr = 212f9f9b87SWludzik, Jozef std::make_unique<StrictMock<ReportFactoryMock>>(); 222f9f9b87SWludzik, Jozef ReportFactoryMock& reportFactoryMock = *reportFactoryMockPtr; 23e2362796SWludzik, Jozef 24e2362796SWludzik, Jozef std::unique_ptr<StorageMock> storageMockPtr = 25e2362796SWludzik, Jozef std::make_unique<NiceMock<StorageMock>>(); 26e2362796SWludzik, Jozef StorageMock& storageMock = *storageMockPtr; 27e2362796SWludzik, Jozef 28d2238194SKrzysztof Grobelny std::unique_ptr<ReportMock> reportMockPtr = 29d2238194SKrzysztof Grobelny std::make_unique<NiceMock<ReportMock>>(reportParams.reportName()); 30d2238194SKrzysztof Grobelny ReportMock& reportMock = *reportMockPtr; 31d2238194SKrzysztof Grobelny 32e2362796SWludzik, Jozef std::unique_ptr<ReportManager> sut; 332f9f9b87SWludzik, Jozef 342f9f9b87SWludzik, Jozef MockFunction<void(std::string)> checkPoint; 352f9f9b87SWludzik, Jozef 36e2362796SWludzik, Jozef void SetUp() override 37e2362796SWludzik, Jozef { 38dcc4e193SKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)) 39dcc4e193SKrzysztof Grobelny .Times(AnyNumber()); 40dcc4e193SKrzysztof Grobelny 41e2362796SWludzik, Jozef sut = std::make_unique<ReportManager>(std::move(reportFactoryMockPtr), 42e2362796SWludzik, Jozef std::move(storageMockPtr), 43e2362796SWludzik, Jozef DbusEnvironment::getObjServer()); 44e2362796SWludzik, Jozef } 45e2362796SWludzik, Jozef 462f9f9b87SWludzik, Jozef void TearDown() override 472f9f9b87SWludzik, Jozef { 482f9f9b87SWludzik, Jozef DbusEnvironment::synchronizeIoc(); 492f9f9b87SWludzik, Jozef } 502f9f9b87SWludzik, Jozef 512f9f9b87SWludzik, Jozef std::pair<boost::system::error_code, std::string> 52e2362796SWludzik, Jozef addReport(const ReportParams& params) 532f9f9b87SWludzik, Jozef { 542f9f9b87SWludzik, Jozef std::promise<std::pair<boost::system::error_code, std::string>> 552f9f9b87SWludzik, Jozef addReportPromise; 562f9f9b87SWludzik, Jozef DbusEnvironment::getBus()->async_method_call( 572f9f9b87SWludzik, Jozef [&addReportPromise](boost::system::error_code ec, 582f9f9b87SWludzik, Jozef const std::string& path) { 592f9f9b87SWludzik, Jozef addReportPromise.set_value({ec, path}); 602f9f9b87SWludzik, Jozef }, 612f9f9b87SWludzik, Jozef DbusEnvironment::serviceName(), ReportManager::reportManagerPath, 62dcc4e193SKrzysztof Grobelny ReportManager::reportManagerIfaceName, "AddReportFutureVersion", 63*3eb56865SSzymon Dompke params.reportName(), params.reportingType(), params.reportUpdates(), 64*3eb56865SSzymon Dompke params.appendLimit(), params.emitReadingUpdate(), 65*3eb56865SSzymon Dompke params.logToMetricReportCollection(), params.interval().count(), 66dcc4e193SKrzysztof Grobelny toReadingParameters(params.metricParameters())); 67f32f6fefSKrzysztof Grobelny return DbusEnvironment::waitForFuture(addReportPromise.get_future()); 682f9f9b87SWludzik, Jozef } 692f9f9b87SWludzik, Jozef 702f9f9b87SWludzik, Jozef template <class T> 71e28aa53dSSzymon Dompke static T getProperty(const std::string& property) 722f9f9b87SWludzik, Jozef { 73e28aa53dSSzymon Dompke return DbusEnvironment::getProperty<T>( 742f9f9b87SWludzik, Jozef ReportManager::reportManagerPath, 75e28aa53dSSzymon Dompke ReportManager::reportManagerIfaceName, property); 7632859b63SKarol Niczyj } 772f9f9b87SWludzik, Jozef }; 782f9f9b87SWludzik, Jozef 792f9f9b87SWludzik, Jozef TEST_F(TestReportManager, minInterval) 802f9f9b87SWludzik, Jozef { 812f9f9b87SWludzik, Jozef EXPECT_THAT(getProperty<uint64_t>("MinInterval"), 82dcc4e193SKrzysztof Grobelny Eq(ReportManager::minInterval.count())); 832f9f9b87SWludzik, Jozef } 842f9f9b87SWludzik, Jozef 852f9f9b87SWludzik, Jozef TEST_F(TestReportManager, maxReports) 862f9f9b87SWludzik, Jozef { 87503c1589SWludzik, Jozef EXPECT_THAT(getProperty<size_t>("MaxReports"), 882f9f9b87SWludzik, Jozef Eq(ReportManager::maxReports)); 892f9f9b87SWludzik, Jozef } 902f9f9b87SWludzik, Jozef 912f9f9b87SWludzik, Jozef TEST_F(TestReportManager, addReport) 922f9f9b87SWludzik, Jozef { 93dcc4e193SKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)); 94dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 952f9f9b87SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 962f9f9b87SWludzik, Jozef 97e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 982f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 992f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(reportMock.getPath())); 1002f9f9b87SWludzik, Jozef } 1012f9f9b87SWludzik, Jozef 10232859b63SKarol Niczyj TEST_F(TestReportManager, addReportWithMaxLengthName) 10332859b63SKarol Niczyj { 104e28aa53dSSzymon Dompke std::string reportName(ReportManager::maxReportNameLength, 'z'); 10532859b63SKarol Niczyj reportParams.reportName(reportName); 106dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)); 10732859b63SKarol Niczyj 10832859b63SKarol Niczyj auto [ec, path] = addReport(reportParams); 10932859b63SKarol Niczyj 11032859b63SKarol Niczyj EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 11132859b63SKarol Niczyj EXPECT_THAT(path, Eq("/"s + reportName)); 11232859b63SKarol Niczyj } 11332859b63SKarol Niczyj 11432859b63SKarol Niczyj TEST_F(TestReportManager, DISABLED_failToAddReportWithTooLongName) 11532859b63SKarol Niczyj { 116dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 11732859b63SKarol Niczyj .Times(0); 11832859b63SKarol Niczyj 11932859b63SKarol Niczyj reportParams.reportName( 120e28aa53dSSzymon Dompke std::string(ReportManager::maxReportNameLength + 1, 'z')); 12132859b63SKarol Niczyj 12232859b63SKarol Niczyj auto [ec, path] = addReport(reportParams); 12332859b63SKarol Niczyj 12432859b63SKarol Niczyj EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 12532859b63SKarol Niczyj EXPECT_THAT(path, Eq(std::string())); 12632859b63SKarol Niczyj } 12732859b63SKarol Niczyj 128e2362796SWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportTwice) 1292f9f9b87SWludzik, Jozef { 130dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 131d2238194SKrzysztof Grobelny .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 1322f9f9b87SWludzik, Jozef 133e2362796SWludzik, Jozef addReport(reportParams); 1342f9f9b87SWludzik, Jozef 135e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 13632859b63SKarol Niczyj 1372f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::file_exists)); 1382f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 1392f9f9b87SWludzik, Jozef } 1402f9f9b87SWludzik, Jozef 141e2362796SWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWithInvalidInterval) 1422f9f9b87SWludzik, Jozef { 143dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 144d2238194SKrzysztof Grobelny .Times(0); 1452f9f9b87SWludzik, Jozef 146bc766b4dSWludzik, Jozef reportParams.reportingType("Periodic"); 147e2362796SWludzik, Jozef reportParams.interval(reportParams.interval() - 1ms); 1482f9f9b87SWludzik, Jozef 149e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 15032859b63SKarol Niczyj 1512f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 1522f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 1532f9f9b87SWludzik, Jozef } 1542f9f9b87SWludzik, Jozef 155bc766b4dSWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWithInvalidReportingType) 156bc766b4dSWludzik, Jozef { 157dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 158bc766b4dSWludzik, Jozef .Times(0); 159bc766b4dSWludzik, Jozef 160bc766b4dSWludzik, Jozef reportParams.reportingType("Invalid"); 161bc766b4dSWludzik, Jozef 162bc766b4dSWludzik, Jozef auto [ec, path] = addReport(reportParams); 16332859b63SKarol Niczyj 164bc766b4dSWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 165bc766b4dSWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 166bc766b4dSWludzik, Jozef } 167bc766b4dSWludzik, Jozef 168bc766b4dSWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWithMoreSensorsThanExpected) 169bc766b4dSWludzik, Jozef { 170dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 171bc766b4dSWludzik, Jozef .Times(0); 172bc766b4dSWludzik, Jozef 173dcc4e193SKrzysztof Grobelny auto metricParams = reportParams.metricParameters(); 174bc766b4dSWludzik, Jozef for (size_t i = 0; i < ReportManager::maxReadingParams + 1; i++) 175bc766b4dSWludzik, Jozef { 176dcc4e193SKrzysztof Grobelny metricParams.push_back(metricParams.front()); 177bc766b4dSWludzik, Jozef } 178dcc4e193SKrzysztof Grobelny reportParams.metricParameters(std::move(metricParams)); 179bc766b4dSWludzik, Jozef 180bc766b4dSWludzik, Jozef auto [ec, path] = addReport(reportParams); 18132859b63SKarol Niczyj 182bc766b4dSWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::argument_list_too_long)); 183bc766b4dSWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 184bc766b4dSWludzik, Jozef } 185bc766b4dSWludzik, Jozef 186e2362796SWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWhenMaxReportIsReached) 1872f9f9b87SWludzik, Jozef { 188dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock)) 1892f9f9b87SWludzik, Jozef .Times(ReportManager::maxReports); 1902f9f9b87SWludzik, Jozef 1912f9f9b87SWludzik, Jozef for (size_t i = 0; i < ReportManager::maxReports; i++) 1922f9f9b87SWludzik, Jozef { 193e2362796SWludzik, Jozef reportParams.reportName(reportParams.reportName() + std::to_string(i)); 1942f9f9b87SWludzik, Jozef 195e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 1962f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 1972f9f9b87SWludzik, Jozef } 1982f9f9b87SWludzik, Jozef 199e2362796SWludzik, Jozef reportParams.reportName(reportParams.reportName() + 200e2362796SWludzik, Jozef std::to_string(ReportManager::maxReports)); 201e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 20232859b63SKarol Niczyj 2032f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::too_many_files_open)); 2042f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 2052f9f9b87SWludzik, Jozef } 2062f9f9b87SWludzik, Jozef 2072f9f9b87SWludzik, Jozef TEST_F(TestReportManager, removeReport) 2082f9f9b87SWludzik, Jozef { 2092f9f9b87SWludzik, Jozef { 2102f9f9b87SWludzik, Jozef InSequence seq; 211dcc4e193SKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)); 212dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 2132f9f9b87SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 2142f9f9b87SWludzik, Jozef EXPECT_CALL(reportMock, Die()); 2152f9f9b87SWludzik, Jozef EXPECT_CALL(checkPoint, Call("end")); 2162f9f9b87SWludzik, Jozef } 2172f9f9b87SWludzik, Jozef 218e2362796SWludzik, Jozef addReport(reportParams); 219e2362796SWludzik, Jozef sut->removeReport(&reportMock); 2202f9f9b87SWludzik, Jozef checkPoint.Call("end"); 2212f9f9b87SWludzik, Jozef } 2222f9f9b87SWludzik, Jozef 2232f9f9b87SWludzik, Jozef TEST_F(TestReportManager, removingReportThatIsNotInContainerHasNoEffect) 2242f9f9b87SWludzik, Jozef { 2252f9f9b87SWludzik, Jozef { 2262f9f9b87SWludzik, Jozef InSequence seq; 2272f9f9b87SWludzik, Jozef EXPECT_CALL(checkPoint, Call("end")); 2282f9f9b87SWludzik, Jozef EXPECT_CALL(reportMock, Die()); 2292f9f9b87SWludzik, Jozef } 2302f9f9b87SWludzik, Jozef 231e2362796SWludzik, Jozef sut->removeReport(&reportMock); 2322f9f9b87SWludzik, Jozef checkPoint.Call("end"); 2332f9f9b87SWludzik, Jozef } 2342f9f9b87SWludzik, Jozef 2352f9f9b87SWludzik, Jozef TEST_F(TestReportManager, removingSameReportTwiceHasNoSideEffect) 2362f9f9b87SWludzik, Jozef { 2372f9f9b87SWludzik, Jozef { 2382f9f9b87SWludzik, Jozef InSequence seq; 239dcc4e193SKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)); 240dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 2412f9f9b87SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 2422f9f9b87SWludzik, Jozef EXPECT_CALL(reportMock, Die()); 2432f9f9b87SWludzik, Jozef EXPECT_CALL(checkPoint, Call("end")); 2442f9f9b87SWludzik, Jozef } 2452f9f9b87SWludzik, Jozef 246e2362796SWludzik, Jozef addReport(reportParams); 247e2362796SWludzik, Jozef sut->removeReport(&reportMock); 248e2362796SWludzik, Jozef sut->removeReport(&reportMock); 2492f9f9b87SWludzik, Jozef checkPoint.Call("end"); 2502f9f9b87SWludzik, Jozef } 251e2362796SWludzik, Jozef 252d960e1f3SWludzik, Jozef TEST_F(TestReportManager, updateReportCallsUpdateReadingsForExistReport) 253d960e1f3SWludzik, Jozef { 254dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 255d960e1f3SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 256d960e1f3SWludzik, Jozef EXPECT_CALL(reportMock, updateReadings()); 257d960e1f3SWludzik, Jozef 258d960e1f3SWludzik, Jozef addReport(reportParams); 259d960e1f3SWludzik, Jozef sut->updateReport(reportParams.reportName()); 260d960e1f3SWludzik, Jozef } 261d960e1f3SWludzik, Jozef 262d960e1f3SWludzik, Jozef TEST_F(TestReportManager, updateReportDoNothingIfReportDoesNotExist) 263d960e1f3SWludzik, Jozef { 264dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 265d960e1f3SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 266d960e1f3SWludzik, Jozef EXPECT_CALL(reportMock, updateReadings()).Times(0); 267d960e1f3SWludzik, Jozef 268d960e1f3SWludzik, Jozef addReport(reportParams); 269d960e1f3SWludzik, Jozef sut->updateReport("NotAReport"); 270d960e1f3SWludzik, Jozef } 271d960e1f3SWludzik, Jozef 272e8fc5751SKrzysztof Grobelny class TestReportManagerWithAggregationOperationType : 273e8fc5751SKrzysztof Grobelny public TestReportManager, 274e8fc5751SKrzysztof Grobelny public WithParamInterface<OperationType> 275e8fc5751SKrzysztof Grobelny { 276e8fc5751SKrzysztof Grobelny public: 277e8fc5751SKrzysztof Grobelny OperationType operationType = GetParam(); 278e8fc5751SKrzysztof Grobelny }; 279e8fc5751SKrzysztof Grobelny 280e8fc5751SKrzysztof Grobelny INSTANTIATE_TEST_SUITE_P(_, TestReportManagerWithAggregationOperationType, 281e8fc5751SKrzysztof Grobelny Values(OperationType::single, OperationType::max, 282e8fc5751SKrzysztof Grobelny OperationType::min, OperationType::avg, 283e8fc5751SKrzysztof Grobelny OperationType::sum)); 284e8fc5751SKrzysztof Grobelny 285e8fc5751SKrzysztof Grobelny TEST_P(TestReportManagerWithAggregationOperationType, 286e8fc5751SKrzysztof Grobelny addReportWithDifferentOperationTypes) 287e8fc5751SKrzysztof Grobelny { 288dcc4e193SKrzysztof Grobelny reportParams.metricParameters( 289dcc4e193SKrzysztof Grobelny std::vector<LabeledMetricParameters>{{LabeledMetricParameters{ 290dcc4e193SKrzysztof Grobelny {LabeledSensorParameters{"Service", 291dcc4e193SKrzysztof Grobelny "/xyz/openbmc_project/sensors/power/p1"}}, 292dcc4e193SKrzysztof Grobelny operationType, 293e8fc5751SKrzysztof Grobelny "MetricId1", 294dcc4e193SKrzysztof Grobelny "Metadata1", 295dcc4e193SKrzysztof Grobelny CollectionTimeScope::point, 296dcc4e193SKrzysztof Grobelny CollectionDuration(Milliseconds(0u))}}}); 297e8fc5751SKrzysztof Grobelny 298dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, Ref(*sut), Ref(storageMock)) 299e8fc5751SKrzysztof Grobelny .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 300e8fc5751SKrzysztof Grobelny 301e8fc5751SKrzysztof Grobelny auto [ec, path] = addReport(reportParams); 30232859b63SKarol Niczyj 303e8fc5751SKrzysztof Grobelny EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 304e8fc5751SKrzysztof Grobelny EXPECT_THAT(path, Eq("/"s + reportParams.reportName())); 305e8fc5751SKrzysztof Grobelny } 306e8fc5751SKrzysztof Grobelny 307e2362796SWludzik, Jozef class TestReportManagerStorage : public TestReportManager 308e2362796SWludzik, Jozef { 309e2362796SWludzik, Jozef public: 310e2362796SWludzik, Jozef using FilePath = interfaces::JsonStorage::FilePath; 311e2362796SWludzik, Jozef using DirectoryPath = interfaces::JsonStorage::DirectoryPath; 312e2362796SWludzik, Jozef 313e2362796SWludzik, Jozef void SetUp() override 314e2362796SWludzik, Jozef { 315dcc4e193SKrzysztof Grobelny EXPECT_CALL(reportFactoryMock, convertMetricParams(_, _)).Times(0); 316dcc4e193SKrzysztof Grobelny 317e2362796SWludzik, Jozef ON_CALL(storageMock, list()) 318e2362796SWludzik, Jozef .WillByDefault(Return(std::vector<FilePath>{FilePath("report1")})); 319e2362796SWludzik, Jozef ON_CALL(storageMock, load(FilePath("report1"))) 3206ccfcbf5SKrzysztof Grobelny .WillByDefault(InvokeWithoutArgs([this] { return data; })); 321e2362796SWludzik, Jozef } 322e2362796SWludzik, Jozef 323e2362796SWludzik, Jozef void makeReportManager() 324e2362796SWludzik, Jozef { 325e2362796SWludzik, Jozef sut = std::make_unique<ReportManager>(std::move(reportFactoryMockPtr), 326e2362796SWludzik, Jozef std::move(storageMockPtr), 327e2362796SWludzik, Jozef DbusEnvironment::getObjServer()); 328e2362796SWludzik, Jozef } 329e2362796SWludzik, Jozef 330e2362796SWludzik, Jozef nlohmann::json data = nlohmann::json{ 3317e098e93SLukasz Kazmierczak {"Enabled", reportParams.enabled()}, 332e2362796SWludzik, Jozef {"Version", Report::reportVersion}, 333e2362796SWludzik, Jozef {"Name", reportParams.reportName()}, 334e2362796SWludzik, Jozef {"ReportingType", reportParams.reportingType()}, 335e2362796SWludzik, Jozef {"EmitsReadingsUpdate", reportParams.emitReadingUpdate()}, 336e2362796SWludzik, Jozef {"LogToMetricReportsCollection", 337e2362796SWludzik, Jozef reportParams.logToMetricReportCollection()}, 338e2362796SWludzik, Jozef {"Interval", reportParams.interval().count()}, 339*3eb56865SSzymon Dompke {"ReportUpdates", reportParams.reportUpdates()}, 340*3eb56865SSzymon Dompke {"AppendLimit", reportParams.appendLimit()}, 341dcc4e193SKrzysztof Grobelny {"ReadingParameters", reportParams.metricParameters()}}; 342e2362796SWludzik, Jozef }; 343e2362796SWludzik, Jozef 344e2362796SWludzik, Jozef TEST_F(TestReportManagerStorage, reportManagerCtorAddReportFromStorage) 345e2362796SWludzik, Jozef { 346dcc4e193SKrzysztof Grobelny reportFactoryMock.expectMake(reportParams, _, Ref(storageMock)); 347e2362796SWludzik, Jozef 348e2362796SWludzik, Jozef makeReportManager(); 349e2362796SWludzik, Jozef } 350e2362796SWludzik, Jozef 351e2362796SWludzik, Jozef TEST_F(TestReportManagerStorage, 352e2362796SWludzik, Jozef reportManagerCtorRemoveFileIfVersionDoesNotMatch) 353e2362796SWludzik, Jozef { 354e2362796SWludzik, Jozef data["Version"] = Report::reportVersion - 1; 355e2362796SWludzik, Jozef 356e2362796SWludzik, Jozef EXPECT_CALL(storageMock, remove(FilePath("report1"))); 357e2362796SWludzik, Jozef 358e2362796SWludzik, Jozef makeReportManager(); 359e2362796SWludzik, Jozef } 360e2362796SWludzik, Jozef 361e2362796SWludzik, Jozef TEST_F(TestReportManagerStorage, 362e2362796SWludzik, Jozef reportManagerCtorRemoveFileIfIntervalHasWrongType) 363e2362796SWludzik, Jozef { 364e2362796SWludzik, Jozef data["Interval"] = "1000"; 365e2362796SWludzik, Jozef 366e2362796SWludzik, Jozef EXPECT_CALL(storageMock, remove(FilePath("report1"))); 367e2362796SWludzik, Jozef 368e2362796SWludzik, Jozef makeReportManager(); 369e2362796SWludzik, Jozef } 370