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" 90e7ae5dbSEd Tanous #include "utils/set_exception.hpp" 10e2362796SWludzik, Jozef #include "utils/transform.hpp" 112f9f9b87SWludzik, Jozef 122f9f9b87SWludzik, Jozef using namespace testing; 13e8fc5751SKrzysztof Grobelny using namespace std::string_literals; 14e2362796SWludzik, Jozef using namespace std::chrono_literals; 152f9f9b87SWludzik, Jozef 162f9f9b87SWludzik, Jozef class TestReportManager : public Test 172f9f9b87SWludzik, Jozef { 182f9f9b87SWludzik, Jozef public: 19e2362796SWludzik, Jozef ReportParams reportParams; 202f9f9b87SWludzik, Jozef 212f9f9b87SWludzik, Jozef std::unique_ptr<ReportFactoryMock> reportFactoryMockPtr = 222f9f9b87SWludzik, Jozef std::make_unique<StrictMock<ReportFactoryMock>>(); 232f9f9b87SWludzik, Jozef ReportFactoryMock& reportFactoryMock = *reportFactoryMockPtr; 24e2362796SWludzik, Jozef 25e2362796SWludzik, Jozef std::unique_ptr<StorageMock> storageMockPtr = 26e2362796SWludzik, Jozef std::make_unique<NiceMock<StorageMock>>(); 27e2362796SWludzik, Jozef StorageMock& storageMock = *storageMockPtr; 28e2362796SWludzik, Jozef 29d2238194SKrzysztof Grobelny std::unique_ptr<ReportMock> reportMockPtr = 30d2238194SKrzysztof Grobelny std::make_unique<NiceMock<ReportMock>>(reportParams.reportName()); 31d2238194SKrzysztof Grobelny ReportMock& reportMock = *reportMockPtr; 32d2238194SKrzysztof Grobelny 33e2362796SWludzik, Jozef std::unique_ptr<ReportManager> sut; 342f9f9b87SWludzik, Jozef 352f9f9b87SWludzik, Jozef MockFunction<void(std::string)> checkPoint; 362f9f9b87SWludzik, Jozef 37e2362796SWludzik, Jozef void SetUp() override 38e2362796SWludzik, Jozef { 39e2362796SWludzik, Jozef sut = std::make_unique<ReportManager>(std::move(reportFactoryMockPtr), 40e2362796SWludzik, Jozef std::move(storageMockPtr), 41e2362796SWludzik, Jozef DbusEnvironment::getObjServer()); 42e2362796SWludzik, Jozef } 43e2362796SWludzik, Jozef 442f9f9b87SWludzik, Jozef void TearDown() override 452f9f9b87SWludzik, Jozef { 462f9f9b87SWludzik, Jozef DbusEnvironment::synchronizeIoc(); 472f9f9b87SWludzik, Jozef } 482f9f9b87SWludzik, Jozef 492f9f9b87SWludzik, Jozef std::pair<boost::system::error_code, std::string> 50e2362796SWludzik, Jozef addReport(const ReportParams& params) 512f9f9b87SWludzik, Jozef { 522f9f9b87SWludzik, Jozef std::promise<std::pair<boost::system::error_code, std::string>> 532f9f9b87SWludzik, Jozef addReportPromise; 542f9f9b87SWludzik, Jozef DbusEnvironment::getBus()->async_method_call( 552f9f9b87SWludzik, Jozef [&addReportPromise](boost::system::error_code ec, 562f9f9b87SWludzik, Jozef const std::string& path) { 572f9f9b87SWludzik, Jozef addReportPromise.set_value({ec, path}); 582f9f9b87SWludzik, Jozef }, 592f9f9b87SWludzik, Jozef DbusEnvironment::serviceName(), ReportManager::reportManagerPath, 60*9f9ff90aSKrzysztof Grobelny ReportManager::reportManagerIfaceName, "AddReport", 61e2362796SWludzik, Jozef params.reportName(), params.reportingType(), 62e2362796SWludzik, Jozef params.emitReadingUpdate(), params.logToMetricReportCollection(), 63e2362796SWludzik, Jozef static_cast<uint64_t>(params.interval().count()), 64e2362796SWludzik, Jozef params.readingParameters()); 65f32f6fefSKrzysztof Grobelny return DbusEnvironment::waitForFuture(addReportPromise.get_future()); 662f9f9b87SWludzik, Jozef } 672f9f9b87SWludzik, Jozef 682f9f9b87SWludzik, Jozef template <class T> 692f9f9b87SWludzik, Jozef static T getProperty(std::string property) 702f9f9b87SWludzik, Jozef { 710e7ae5dbSEd Tanous auto propertyPromise = std::promise<T>(); 720e7ae5dbSEd Tanous auto propertyFuture = propertyPromise.get_future(); 732f9f9b87SWludzik, Jozef sdbusplus::asio::getProperty<T>( 742f9f9b87SWludzik, Jozef *DbusEnvironment::getBus(), DbusEnvironment::serviceName(), 752f9f9b87SWludzik, Jozef ReportManager::reportManagerPath, 762f9f9b87SWludzik, Jozef ReportManager::reportManagerIfaceName, property, 77*9f9ff90aSKrzysztof Grobelny [&propertyPromise](boost::system::error_code ec, T t) { 780e7ae5dbSEd Tanous if (ec) 790e7ae5dbSEd Tanous { 80*9f9ff90aSKrzysztof Grobelny utils::setException(propertyPromise, "GetProperty failed"); 810e7ae5dbSEd Tanous return; 820e7ae5dbSEd Tanous } 830e7ae5dbSEd Tanous propertyPromise.set_value(t); 840e7ae5dbSEd Tanous }); 850e7ae5dbSEd Tanous return DbusEnvironment::waitForFuture(std::move(propertyFuture)); 862f9f9b87SWludzik, Jozef } 872f9f9b87SWludzik, Jozef }; 882f9f9b87SWludzik, Jozef 892f9f9b87SWludzik, Jozef TEST_F(TestReportManager, minInterval) 902f9f9b87SWludzik, Jozef { 912f9f9b87SWludzik, Jozef EXPECT_THAT(getProperty<uint64_t>("MinInterval"), 922f9f9b87SWludzik, Jozef Eq(static_cast<uint64_t>(ReportManager::minInterval.count()))); 932f9f9b87SWludzik, Jozef } 942f9f9b87SWludzik, Jozef 952f9f9b87SWludzik, Jozef TEST_F(TestReportManager, maxReports) 962f9f9b87SWludzik, Jozef { 97503c1589SWludzik, Jozef EXPECT_THAT(getProperty<size_t>("MaxReports"), 982f9f9b87SWludzik, Jozef Eq(ReportManager::maxReports)); 992f9f9b87SWludzik, Jozef } 1002f9f9b87SWludzik, Jozef 1012f9f9b87SWludzik, Jozef TEST_F(TestReportManager, addReport) 1022f9f9b87SWludzik, Jozef { 103d2238194SKrzysztof Grobelny reportFactoryMock.expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 1042f9f9b87SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 1052f9f9b87SWludzik, Jozef 106e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 1072f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 1082f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(reportMock.getPath())); 1092f9f9b87SWludzik, Jozef } 1102f9f9b87SWludzik, Jozef 111e2362796SWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportTwice) 1122f9f9b87SWludzik, Jozef { 113d2238194SKrzysztof Grobelny reportFactoryMock.expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 114d2238194SKrzysztof Grobelny .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 1152f9f9b87SWludzik, Jozef 116e2362796SWludzik, Jozef addReport(reportParams); 1172f9f9b87SWludzik, Jozef 118e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 1192f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::file_exists)); 1202f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 1212f9f9b87SWludzik, Jozef } 1222f9f9b87SWludzik, Jozef 123e2362796SWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWithInvalidInterval) 1242f9f9b87SWludzik, Jozef { 125d2238194SKrzysztof Grobelny reportFactoryMock.expectMake(_, std::nullopt, Ref(*sut), Ref(storageMock)) 126d2238194SKrzysztof Grobelny .Times(0); 127d2238194SKrzysztof Grobelny reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock), _) 128d2238194SKrzysztof Grobelny .Times(0); 1292f9f9b87SWludzik, Jozef 130bc766b4dSWludzik, Jozef reportParams.reportingType("Periodic"); 131e2362796SWludzik, Jozef reportParams.interval(reportParams.interval() - 1ms); 1322f9f9b87SWludzik, Jozef 133e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 1342f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 1352f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 1362f9f9b87SWludzik, Jozef } 1372f9f9b87SWludzik, Jozef 138bc766b4dSWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWithInvalidReportingType) 139bc766b4dSWludzik, Jozef { 140bc766b4dSWludzik, Jozef reportFactoryMock.expectMake(_, std::nullopt, Ref(*sut), Ref(storageMock)) 141bc766b4dSWludzik, Jozef .Times(0); 142bc766b4dSWludzik, Jozef reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock), _) 143bc766b4dSWludzik, Jozef .Times(0); 144bc766b4dSWludzik, Jozef 145bc766b4dSWludzik, Jozef reportParams.reportingType("Invalid"); 146bc766b4dSWludzik, Jozef 147bc766b4dSWludzik, Jozef auto [ec, path] = addReport(reportParams); 148bc766b4dSWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 149bc766b4dSWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 150bc766b4dSWludzik, Jozef } 151bc766b4dSWludzik, Jozef 152bc766b4dSWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWithMoreSensorsThanExpected) 153bc766b4dSWludzik, Jozef { 154bc766b4dSWludzik, Jozef reportFactoryMock.expectMake(_, std::nullopt, Ref(*sut), Ref(storageMock)) 155bc766b4dSWludzik, Jozef .Times(0); 156bc766b4dSWludzik, Jozef reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock), _) 157bc766b4dSWludzik, Jozef .Times(0); 158bc766b4dSWludzik, Jozef 159bc766b4dSWludzik, Jozef auto readingParams = reportParams.readingParameters(); 160bc766b4dSWludzik, Jozef for (size_t i = 0; i < ReportManager::maxReadingParams + 1; i++) 161bc766b4dSWludzik, Jozef { 162bc766b4dSWludzik, Jozef readingParams.push_back(readingParams.front()); 163bc766b4dSWludzik, Jozef } 164bc766b4dSWludzik, Jozef reportParams.readingParameters(std::move(readingParams)); 165bc766b4dSWludzik, Jozef 166bc766b4dSWludzik, Jozef auto [ec, path] = addReport(reportParams); 167bc766b4dSWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::argument_list_too_long)); 168bc766b4dSWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 169bc766b4dSWludzik, Jozef } 170bc766b4dSWludzik, Jozef 171e2362796SWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWhenMaxReportIsReached) 1722f9f9b87SWludzik, Jozef { 173d2238194SKrzysztof Grobelny reportFactoryMock.expectMake(_, std::nullopt, Ref(*sut), Ref(storageMock)) 1742f9f9b87SWludzik, Jozef .Times(ReportManager::maxReports); 1752f9f9b87SWludzik, Jozef 1762f9f9b87SWludzik, Jozef for (size_t i = 0; i < ReportManager::maxReports; i++) 1772f9f9b87SWludzik, Jozef { 178e2362796SWludzik, Jozef reportParams.reportName(reportParams.reportName() + std::to_string(i)); 1792f9f9b87SWludzik, Jozef 180e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 1812f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 1822f9f9b87SWludzik, Jozef } 1832f9f9b87SWludzik, Jozef 184e2362796SWludzik, Jozef reportParams.reportName(reportParams.reportName() + 185e2362796SWludzik, Jozef std::to_string(ReportManager::maxReports)); 186e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 1872f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::too_many_files_open)); 1882f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 1892f9f9b87SWludzik, Jozef } 1902f9f9b87SWludzik, Jozef 1912f9f9b87SWludzik, Jozef TEST_F(TestReportManager, removeReport) 1922f9f9b87SWludzik, Jozef { 1932f9f9b87SWludzik, Jozef { 1942f9f9b87SWludzik, Jozef InSequence seq; 195d2238194SKrzysztof Grobelny reportFactoryMock 196d2238194SKrzysztof Grobelny .expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 1972f9f9b87SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 1982f9f9b87SWludzik, Jozef EXPECT_CALL(reportMock, Die()); 1992f9f9b87SWludzik, Jozef EXPECT_CALL(checkPoint, Call("end")); 2002f9f9b87SWludzik, Jozef } 2012f9f9b87SWludzik, Jozef 202e2362796SWludzik, Jozef addReport(reportParams); 203e2362796SWludzik, Jozef sut->removeReport(&reportMock); 2042f9f9b87SWludzik, Jozef checkPoint.Call("end"); 2052f9f9b87SWludzik, Jozef } 2062f9f9b87SWludzik, Jozef 2072f9f9b87SWludzik, Jozef TEST_F(TestReportManager, removingReportThatIsNotInContainerHasNoEffect) 2082f9f9b87SWludzik, Jozef { 2092f9f9b87SWludzik, Jozef { 2102f9f9b87SWludzik, Jozef InSequence seq; 2112f9f9b87SWludzik, Jozef EXPECT_CALL(checkPoint, Call("end")); 2122f9f9b87SWludzik, Jozef EXPECT_CALL(reportMock, Die()); 2132f9f9b87SWludzik, Jozef } 2142f9f9b87SWludzik, Jozef 215e2362796SWludzik, Jozef sut->removeReport(&reportMock); 2162f9f9b87SWludzik, Jozef checkPoint.Call("end"); 2172f9f9b87SWludzik, Jozef } 2182f9f9b87SWludzik, Jozef 2192f9f9b87SWludzik, Jozef TEST_F(TestReportManager, removingSameReportTwiceHasNoSideEffect) 2202f9f9b87SWludzik, Jozef { 2212f9f9b87SWludzik, Jozef { 2222f9f9b87SWludzik, Jozef InSequence seq; 223d2238194SKrzysztof Grobelny reportFactoryMock 224d2238194SKrzysztof Grobelny .expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 2252f9f9b87SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 2262f9f9b87SWludzik, Jozef EXPECT_CALL(reportMock, Die()); 2272f9f9b87SWludzik, Jozef EXPECT_CALL(checkPoint, Call("end")); 2282f9f9b87SWludzik, Jozef } 2292f9f9b87SWludzik, Jozef 230e2362796SWludzik, Jozef addReport(reportParams); 231e2362796SWludzik, Jozef sut->removeReport(&reportMock); 232e2362796SWludzik, Jozef sut->removeReport(&reportMock); 2332f9f9b87SWludzik, Jozef checkPoint.Call("end"); 2342f9f9b87SWludzik, Jozef } 235e2362796SWludzik, Jozef 236d960e1f3SWludzik, Jozef TEST_F(TestReportManager, updateReportCallsUpdateReadingsForExistReport) 237d960e1f3SWludzik, Jozef { 238d960e1f3SWludzik, Jozef reportFactoryMock.expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 239d960e1f3SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 240d960e1f3SWludzik, Jozef EXPECT_CALL(reportMock, updateReadings()); 241d960e1f3SWludzik, Jozef 242d960e1f3SWludzik, Jozef addReport(reportParams); 243d960e1f3SWludzik, Jozef sut->updateReport(reportParams.reportName()); 244d960e1f3SWludzik, Jozef } 245d960e1f3SWludzik, Jozef 246d960e1f3SWludzik, Jozef TEST_F(TestReportManager, updateReportDoNothingIfReportDoesNotExist) 247d960e1f3SWludzik, Jozef { 248d960e1f3SWludzik, Jozef reportFactoryMock.expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 249d960e1f3SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 250d960e1f3SWludzik, Jozef EXPECT_CALL(reportMock, updateReadings()).Times(0); 251d960e1f3SWludzik, Jozef 252d960e1f3SWludzik, Jozef addReport(reportParams); 253d960e1f3SWludzik, Jozef sut->updateReport("NotAReport"); 254d960e1f3SWludzik, Jozef } 255d960e1f3SWludzik, Jozef 256e8fc5751SKrzysztof Grobelny class TestReportManagerWithAggregationOperationType : 257e8fc5751SKrzysztof Grobelny public TestReportManager, 258e8fc5751SKrzysztof Grobelny public WithParamInterface<OperationType> 259e8fc5751SKrzysztof Grobelny { 260e8fc5751SKrzysztof Grobelny public: 261e8fc5751SKrzysztof Grobelny OperationType operationType = GetParam(); 262e8fc5751SKrzysztof Grobelny }; 263e8fc5751SKrzysztof Grobelny 264e8fc5751SKrzysztof Grobelny INSTANTIATE_TEST_SUITE_P(_, TestReportManagerWithAggregationOperationType, 265e8fc5751SKrzysztof Grobelny Values(OperationType::single, OperationType::max, 266e8fc5751SKrzysztof Grobelny OperationType::min, OperationType::avg, 267e8fc5751SKrzysztof Grobelny OperationType::sum)); 268e8fc5751SKrzysztof Grobelny 269e8fc5751SKrzysztof Grobelny TEST_P(TestReportManagerWithAggregationOperationType, 270e8fc5751SKrzysztof Grobelny addReportWithDifferentOperationTypes) 271e8fc5751SKrzysztof Grobelny { 272e8fc5751SKrzysztof Grobelny reportParams.readingParameters( 273e8fc5751SKrzysztof Grobelny {{{sdbusplus::message::object_path( 274e8fc5751SKrzysztof Grobelny "/xyz/openbmc_project/sensors/power/p1")}, 275e8fc5751SKrzysztof Grobelny utils::enumToString(operationType), 276e8fc5751SKrzysztof Grobelny "MetricId1", 277*9f9ff90aSKrzysztof Grobelny "Metadata1"}}); 278e8fc5751SKrzysztof Grobelny 279e8fc5751SKrzysztof Grobelny reportFactoryMock.expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 280e8fc5751SKrzysztof Grobelny .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 281e8fc5751SKrzysztof Grobelny 282e8fc5751SKrzysztof Grobelny auto [ec, path] = addReport(reportParams); 283e8fc5751SKrzysztof Grobelny EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 284e8fc5751SKrzysztof Grobelny EXPECT_THAT(path, Eq("/"s + reportParams.reportName())); 285e8fc5751SKrzysztof Grobelny } 286e8fc5751SKrzysztof Grobelny 287e2362796SWludzik, Jozef class TestReportManagerStorage : public TestReportManager 288e2362796SWludzik, Jozef { 289e2362796SWludzik, Jozef public: 290e2362796SWludzik, Jozef using FilePath = interfaces::JsonStorage::FilePath; 291e2362796SWludzik, Jozef using DirectoryPath = interfaces::JsonStorage::DirectoryPath; 292e2362796SWludzik, Jozef 293e2362796SWludzik, Jozef void SetUp() override 294e2362796SWludzik, Jozef { 295e2362796SWludzik, Jozef ON_CALL(storageMock, list()) 296e2362796SWludzik, Jozef .WillByDefault(Return(std::vector<FilePath>{FilePath("report1")})); 297e2362796SWludzik, Jozef ON_CALL(storageMock, load(FilePath("report1"))) 2986ccfcbf5SKrzysztof Grobelny .WillByDefault(InvokeWithoutArgs([this] { return data; })); 299e2362796SWludzik, Jozef } 300e2362796SWludzik, Jozef 301e2362796SWludzik, Jozef void makeReportManager() 302e2362796SWludzik, Jozef { 303e2362796SWludzik, Jozef sut = std::make_unique<ReportManager>(std::move(reportFactoryMockPtr), 304e2362796SWludzik, Jozef std::move(storageMockPtr), 305e2362796SWludzik, Jozef DbusEnvironment::getObjServer()); 306e2362796SWludzik, Jozef } 307e2362796SWludzik, Jozef 308d2238194SKrzysztof Grobelny static std::vector<LabeledMetricParameters> 309d2238194SKrzysztof Grobelny convertToLabeled(const ReadingParameters& params) 310d2238194SKrzysztof Grobelny { 311d2238194SKrzysztof Grobelny return utils::transform(params, [](const auto& item) { 312d2238194SKrzysztof Grobelny return LabeledMetricParameters( 313e8fc5751SKrzysztof Grobelny LabeledSensorParameters("service", std::get<0>(item)), 314e8fc5751SKrzysztof Grobelny utils::stringToOperationType(std::get<1>(item)), 315*9f9ff90aSKrzysztof Grobelny std::get<2>(item), std::get<3>(item)); 316d2238194SKrzysztof Grobelny }); 317d2238194SKrzysztof Grobelny } 318d2238194SKrzysztof Grobelny 319e2362796SWludzik, Jozef nlohmann::json data = nlohmann::json{ 320e2362796SWludzik, Jozef {"Version", Report::reportVersion}, 321e2362796SWludzik, Jozef {"Name", reportParams.reportName()}, 322e2362796SWludzik, Jozef {"ReportingType", reportParams.reportingType()}, 323e2362796SWludzik, Jozef {"EmitsReadingsUpdate", reportParams.emitReadingUpdate()}, 324e2362796SWludzik, Jozef {"LogToMetricReportsCollection", 325e2362796SWludzik, Jozef reportParams.logToMetricReportCollection()}, 326e2362796SWludzik, Jozef {"Interval", reportParams.interval().count()}, 327e2362796SWludzik, Jozef {"ReadingParameters", 328d2238194SKrzysztof Grobelny convertToLabeled(reportParams.readingParameters())}}; 329e2362796SWludzik, Jozef }; 330e2362796SWludzik, Jozef 331e2362796SWludzik, Jozef TEST_F(TestReportManagerStorage, reportManagerCtorAddReportFromStorage) 332e2362796SWludzik, Jozef { 333d2238194SKrzysztof Grobelny reportFactoryMock.expectMake( 334d2238194SKrzysztof Grobelny reportParams, _, Ref(storageMock), 335d2238194SKrzysztof Grobelny ElementsAreArray(convertToLabeled(reportParams.readingParameters()))); 336e2362796SWludzik, Jozef 337e2362796SWludzik, Jozef makeReportManager(); 338e2362796SWludzik, Jozef } 339e2362796SWludzik, Jozef 340e2362796SWludzik, Jozef TEST_F(TestReportManagerStorage, 341e2362796SWludzik, Jozef reportManagerCtorRemoveFileIfVersionDoesNotMatch) 342e2362796SWludzik, Jozef { 343e2362796SWludzik, Jozef data["Version"] = Report::reportVersion - 1; 344e2362796SWludzik, Jozef 345e2362796SWludzik, Jozef EXPECT_CALL(storageMock, remove(FilePath("report1"))); 346e2362796SWludzik, Jozef 347e2362796SWludzik, Jozef makeReportManager(); 348e2362796SWludzik, Jozef } 349e2362796SWludzik, Jozef 350e2362796SWludzik, Jozef TEST_F(TestReportManagerStorage, 351e2362796SWludzik, Jozef reportManagerCtorRemoveFileIfIntervalHasWrongType) 352e2362796SWludzik, Jozef { 353e2362796SWludzik, Jozef data["Interval"] = "1000"; 354e2362796SWludzik, Jozef 355e2362796SWludzik, Jozef EXPECT_CALL(storageMock, remove(FilePath("report1"))); 356e2362796SWludzik, Jozef 357e2362796SWludzik, Jozef makeReportManager(); 358e2362796SWludzik, Jozef } 359