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" 8*e8fc5751SKrzysztof Grobelny #include "utils/conversion.hpp" 9e2362796SWludzik, Jozef #include "utils/transform.hpp" 102f9f9b87SWludzik, Jozef 112f9f9b87SWludzik, Jozef using namespace testing; 12*e8fc5751SKrzysztof 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 { 38e2362796SWludzik, Jozef sut = std::make_unique<ReportManager>(std::move(reportFactoryMockPtr), 39e2362796SWludzik, Jozef std::move(storageMockPtr), 40e2362796SWludzik, Jozef DbusEnvironment::getObjServer()); 41e2362796SWludzik, Jozef } 42e2362796SWludzik, Jozef 432f9f9b87SWludzik, Jozef void TearDown() override 442f9f9b87SWludzik, Jozef { 452f9f9b87SWludzik, Jozef DbusEnvironment::synchronizeIoc(); 462f9f9b87SWludzik, Jozef } 472f9f9b87SWludzik, Jozef 482f9f9b87SWludzik, Jozef std::pair<boost::system::error_code, std::string> 49e2362796SWludzik, Jozef addReport(const ReportParams& params) 502f9f9b87SWludzik, Jozef { 512f9f9b87SWludzik, Jozef std::promise<std::pair<boost::system::error_code, std::string>> 522f9f9b87SWludzik, Jozef addReportPromise; 532f9f9b87SWludzik, Jozef DbusEnvironment::getBus()->async_method_call( 542f9f9b87SWludzik, Jozef [&addReportPromise](boost::system::error_code ec, 552f9f9b87SWludzik, Jozef const std::string& path) { 562f9f9b87SWludzik, Jozef addReportPromise.set_value({ec, path}); 572f9f9b87SWludzik, Jozef }, 582f9f9b87SWludzik, Jozef DbusEnvironment::serviceName(), ReportManager::reportManagerPath, 59e2362796SWludzik, Jozef ReportManager::reportManagerIfaceName, "AddReport", 60e2362796SWludzik, Jozef params.reportName(), params.reportingType(), 61e2362796SWludzik, Jozef params.emitReadingUpdate(), params.logToMetricReportCollection(), 62e2362796SWludzik, Jozef static_cast<uint64_t>(params.interval().count()), 63e2362796SWludzik, Jozef params.readingParameters()); 64f32f6fefSKrzysztof Grobelny return DbusEnvironment::waitForFuture(addReportPromise.get_future()); 652f9f9b87SWludzik, Jozef } 662f9f9b87SWludzik, Jozef 672f9f9b87SWludzik, Jozef template <class T> 682f9f9b87SWludzik, Jozef static T getProperty(std::string property) 692f9f9b87SWludzik, Jozef { 702f9f9b87SWludzik, Jozef std::promise<T> propertyPromise; 712f9f9b87SWludzik, Jozef sdbusplus::asio::getProperty<T>( 722f9f9b87SWludzik, Jozef *DbusEnvironment::getBus(), DbusEnvironment::serviceName(), 732f9f9b87SWludzik, Jozef ReportManager::reportManagerPath, 742f9f9b87SWludzik, Jozef ReportManager::reportManagerIfaceName, property, 752f9f9b87SWludzik, Jozef [&propertyPromise](boost::system::error_code ec) { 762f9f9b87SWludzik, Jozef EXPECT_THAT(static_cast<bool>(ec), ::testing::Eq(false)); 772f9f9b87SWludzik, Jozef propertyPromise.set_value(T{}); 782f9f9b87SWludzik, Jozef }, 792f9f9b87SWludzik, Jozef [&propertyPromise](T t) { propertyPromise.set_value(t); }); 80f32f6fefSKrzysztof Grobelny return DbusEnvironment::waitForFuture(propertyPromise.get_future()); 812f9f9b87SWludzik, Jozef } 822f9f9b87SWludzik, Jozef }; 832f9f9b87SWludzik, Jozef 842f9f9b87SWludzik, Jozef TEST_F(TestReportManager, minInterval) 852f9f9b87SWludzik, Jozef { 862f9f9b87SWludzik, Jozef EXPECT_THAT(getProperty<uint64_t>("MinInterval"), 872f9f9b87SWludzik, Jozef Eq(static_cast<uint64_t>(ReportManager::minInterval.count()))); 882f9f9b87SWludzik, Jozef } 892f9f9b87SWludzik, Jozef 902f9f9b87SWludzik, Jozef TEST_F(TestReportManager, maxReports) 912f9f9b87SWludzik, Jozef { 92503c1589SWludzik, Jozef EXPECT_THAT(getProperty<size_t>("MaxReports"), 932f9f9b87SWludzik, Jozef Eq(ReportManager::maxReports)); 942f9f9b87SWludzik, Jozef } 952f9f9b87SWludzik, Jozef 962f9f9b87SWludzik, Jozef TEST_F(TestReportManager, addReport) 972f9f9b87SWludzik, Jozef { 98d2238194SKrzysztof Grobelny reportFactoryMock.expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 992f9f9b87SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 1002f9f9b87SWludzik, Jozef 101e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 1022f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 1032f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(reportMock.getPath())); 1042f9f9b87SWludzik, Jozef } 1052f9f9b87SWludzik, Jozef 106e2362796SWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportTwice) 1072f9f9b87SWludzik, Jozef { 108d2238194SKrzysztof Grobelny reportFactoryMock.expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 109d2238194SKrzysztof Grobelny .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 1102f9f9b87SWludzik, Jozef 111e2362796SWludzik, Jozef addReport(reportParams); 1122f9f9b87SWludzik, Jozef 113e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 1142f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::file_exists)); 1152f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 1162f9f9b87SWludzik, Jozef } 1172f9f9b87SWludzik, Jozef 118e2362796SWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWithInvalidInterval) 1192f9f9b87SWludzik, Jozef { 120d2238194SKrzysztof Grobelny reportFactoryMock.expectMake(_, std::nullopt, Ref(*sut), Ref(storageMock)) 121d2238194SKrzysztof Grobelny .Times(0); 122d2238194SKrzysztof Grobelny reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock), _) 123d2238194SKrzysztof Grobelny .Times(0); 1242f9f9b87SWludzik, Jozef 125bc766b4dSWludzik, Jozef reportParams.reportingType("Periodic"); 126e2362796SWludzik, Jozef reportParams.interval(reportParams.interval() - 1ms); 1272f9f9b87SWludzik, Jozef 128e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 1292f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 1302f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 1312f9f9b87SWludzik, Jozef } 1322f9f9b87SWludzik, Jozef 133bc766b4dSWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWithInvalidReportingType) 134bc766b4dSWludzik, Jozef { 135bc766b4dSWludzik, Jozef reportFactoryMock.expectMake(_, std::nullopt, Ref(*sut), Ref(storageMock)) 136bc766b4dSWludzik, Jozef .Times(0); 137bc766b4dSWludzik, Jozef reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock), _) 138bc766b4dSWludzik, Jozef .Times(0); 139bc766b4dSWludzik, Jozef 140bc766b4dSWludzik, Jozef reportParams.reportingType("Invalid"); 141bc766b4dSWludzik, Jozef 142bc766b4dSWludzik, Jozef auto [ec, path] = addReport(reportParams); 143bc766b4dSWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument)); 144bc766b4dSWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 145bc766b4dSWludzik, Jozef } 146bc766b4dSWludzik, Jozef 147bc766b4dSWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWithMoreSensorsThanExpected) 148bc766b4dSWludzik, Jozef { 149bc766b4dSWludzik, Jozef reportFactoryMock.expectMake(_, std::nullopt, Ref(*sut), Ref(storageMock)) 150bc766b4dSWludzik, Jozef .Times(0); 151bc766b4dSWludzik, Jozef reportFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock), _) 152bc766b4dSWludzik, Jozef .Times(0); 153bc766b4dSWludzik, Jozef 154bc766b4dSWludzik, Jozef auto readingParams = reportParams.readingParameters(); 155bc766b4dSWludzik, Jozef for (size_t i = 0; i < ReportManager::maxReadingParams + 1; i++) 156bc766b4dSWludzik, Jozef { 157bc766b4dSWludzik, Jozef readingParams.push_back(readingParams.front()); 158bc766b4dSWludzik, Jozef } 159bc766b4dSWludzik, Jozef reportParams.readingParameters(std::move(readingParams)); 160bc766b4dSWludzik, Jozef 161bc766b4dSWludzik, Jozef auto [ec, path] = addReport(reportParams); 162bc766b4dSWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::argument_list_too_long)); 163bc766b4dSWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 164bc766b4dSWludzik, Jozef } 165bc766b4dSWludzik, Jozef 166e2362796SWludzik, Jozef TEST_F(TestReportManager, DISABLED_failToAddReportWhenMaxReportIsReached) 1672f9f9b87SWludzik, Jozef { 168d2238194SKrzysztof Grobelny reportFactoryMock.expectMake(_, std::nullopt, Ref(*sut), Ref(storageMock)) 1692f9f9b87SWludzik, Jozef .Times(ReportManager::maxReports); 1702f9f9b87SWludzik, Jozef 1712f9f9b87SWludzik, Jozef for (size_t i = 0; i < ReportManager::maxReports; i++) 1722f9f9b87SWludzik, Jozef { 173e2362796SWludzik, Jozef reportParams.reportName(reportParams.reportName() + std::to_string(i)); 1742f9f9b87SWludzik, Jozef 175e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 1762f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 1772f9f9b87SWludzik, Jozef } 1782f9f9b87SWludzik, Jozef 179e2362796SWludzik, Jozef reportParams.reportName(reportParams.reportName() + 180e2362796SWludzik, Jozef std::to_string(ReportManager::maxReports)); 181e2362796SWludzik, Jozef auto [ec, path] = addReport(reportParams); 1822f9f9b87SWludzik, Jozef EXPECT_THAT(ec.value(), Eq(boost::system::errc::too_many_files_open)); 1832f9f9b87SWludzik, Jozef EXPECT_THAT(path, Eq(std::string())); 1842f9f9b87SWludzik, Jozef } 1852f9f9b87SWludzik, Jozef 1862f9f9b87SWludzik, Jozef TEST_F(TestReportManager, removeReport) 1872f9f9b87SWludzik, Jozef { 1882f9f9b87SWludzik, Jozef { 1892f9f9b87SWludzik, Jozef InSequence seq; 190d2238194SKrzysztof Grobelny reportFactoryMock 191d2238194SKrzysztof Grobelny .expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 1922f9f9b87SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 1932f9f9b87SWludzik, Jozef EXPECT_CALL(reportMock, Die()); 1942f9f9b87SWludzik, Jozef EXPECT_CALL(checkPoint, Call("end")); 1952f9f9b87SWludzik, Jozef } 1962f9f9b87SWludzik, Jozef 197e2362796SWludzik, Jozef addReport(reportParams); 198e2362796SWludzik, Jozef sut->removeReport(&reportMock); 1992f9f9b87SWludzik, Jozef checkPoint.Call("end"); 2002f9f9b87SWludzik, Jozef } 2012f9f9b87SWludzik, Jozef 2022f9f9b87SWludzik, Jozef TEST_F(TestReportManager, removingReportThatIsNotInContainerHasNoEffect) 2032f9f9b87SWludzik, Jozef { 2042f9f9b87SWludzik, Jozef { 2052f9f9b87SWludzik, Jozef InSequence seq; 2062f9f9b87SWludzik, Jozef EXPECT_CALL(checkPoint, Call("end")); 2072f9f9b87SWludzik, Jozef EXPECT_CALL(reportMock, Die()); 2082f9f9b87SWludzik, Jozef } 2092f9f9b87SWludzik, Jozef 210e2362796SWludzik, Jozef sut->removeReport(&reportMock); 2112f9f9b87SWludzik, Jozef checkPoint.Call("end"); 2122f9f9b87SWludzik, Jozef } 2132f9f9b87SWludzik, Jozef 2142f9f9b87SWludzik, Jozef TEST_F(TestReportManager, removingSameReportTwiceHasNoSideEffect) 2152f9f9b87SWludzik, Jozef { 2162f9f9b87SWludzik, Jozef { 2172f9f9b87SWludzik, Jozef InSequence seq; 218d2238194SKrzysztof Grobelny reportFactoryMock 219d2238194SKrzysztof Grobelny .expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 2202f9f9b87SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 2212f9f9b87SWludzik, Jozef EXPECT_CALL(reportMock, Die()); 2222f9f9b87SWludzik, Jozef EXPECT_CALL(checkPoint, Call("end")); 2232f9f9b87SWludzik, Jozef } 2242f9f9b87SWludzik, Jozef 225e2362796SWludzik, Jozef addReport(reportParams); 226e2362796SWludzik, Jozef sut->removeReport(&reportMock); 227e2362796SWludzik, Jozef sut->removeReport(&reportMock); 2282f9f9b87SWludzik, Jozef checkPoint.Call("end"); 2292f9f9b87SWludzik, Jozef } 230e2362796SWludzik, Jozef 231d960e1f3SWludzik, Jozef TEST_F(TestReportManager, updateReportCallsUpdateReadingsForExistReport) 232d960e1f3SWludzik, Jozef { 233d960e1f3SWludzik, Jozef reportFactoryMock.expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 234d960e1f3SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 235d960e1f3SWludzik, Jozef EXPECT_CALL(reportMock, updateReadings()); 236d960e1f3SWludzik, Jozef 237d960e1f3SWludzik, Jozef addReport(reportParams); 238d960e1f3SWludzik, Jozef sut->updateReport(reportParams.reportName()); 239d960e1f3SWludzik, Jozef } 240d960e1f3SWludzik, Jozef 241d960e1f3SWludzik, Jozef TEST_F(TestReportManager, updateReportDoNothingIfReportDoesNotExist) 242d960e1f3SWludzik, Jozef { 243d960e1f3SWludzik, Jozef reportFactoryMock.expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 244d960e1f3SWludzik, Jozef .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 245d960e1f3SWludzik, Jozef EXPECT_CALL(reportMock, updateReadings()).Times(0); 246d960e1f3SWludzik, Jozef 247d960e1f3SWludzik, Jozef addReport(reportParams); 248d960e1f3SWludzik, Jozef sut->updateReport("NotAReport"); 249d960e1f3SWludzik, Jozef } 250d960e1f3SWludzik, Jozef 251*e8fc5751SKrzysztof Grobelny class TestReportManagerWithAggregationOperationType : 252*e8fc5751SKrzysztof Grobelny public TestReportManager, 253*e8fc5751SKrzysztof Grobelny public WithParamInterface<OperationType> 254*e8fc5751SKrzysztof Grobelny { 255*e8fc5751SKrzysztof Grobelny public: 256*e8fc5751SKrzysztof Grobelny OperationType operationType = GetParam(); 257*e8fc5751SKrzysztof Grobelny }; 258*e8fc5751SKrzysztof Grobelny 259*e8fc5751SKrzysztof Grobelny INSTANTIATE_TEST_SUITE_P(_, TestReportManagerWithAggregationOperationType, 260*e8fc5751SKrzysztof Grobelny Values(OperationType::single, OperationType::max, 261*e8fc5751SKrzysztof Grobelny OperationType::min, OperationType::avg, 262*e8fc5751SKrzysztof Grobelny OperationType::sum)); 263*e8fc5751SKrzysztof Grobelny 264*e8fc5751SKrzysztof Grobelny TEST_P(TestReportManagerWithAggregationOperationType, 265*e8fc5751SKrzysztof Grobelny addReportWithDifferentOperationTypes) 266*e8fc5751SKrzysztof Grobelny { 267*e8fc5751SKrzysztof Grobelny reportParams.readingParameters( 268*e8fc5751SKrzysztof Grobelny {{{sdbusplus::message::object_path( 269*e8fc5751SKrzysztof Grobelny "/xyz/openbmc_project/sensors/power/p1")}, 270*e8fc5751SKrzysztof Grobelny utils::enumToString(operationType), 271*e8fc5751SKrzysztof Grobelny "MetricId1", 272*e8fc5751SKrzysztof Grobelny "Metadata1"}}); 273*e8fc5751SKrzysztof Grobelny 274*e8fc5751SKrzysztof Grobelny reportFactoryMock.expectMake(_, reportParams, Ref(*sut), Ref(storageMock)) 275*e8fc5751SKrzysztof Grobelny .WillOnce(Return(ByMove(std::move(reportMockPtr)))); 276*e8fc5751SKrzysztof Grobelny 277*e8fc5751SKrzysztof Grobelny auto [ec, path] = addReport(reportParams); 278*e8fc5751SKrzysztof Grobelny EXPECT_THAT(ec.value(), Eq(boost::system::errc::success)); 279*e8fc5751SKrzysztof Grobelny EXPECT_THAT(path, Eq("/"s + reportParams.reportName())); 280*e8fc5751SKrzysztof Grobelny } 281*e8fc5751SKrzysztof Grobelny 282e2362796SWludzik, Jozef class TestReportManagerStorage : public TestReportManager 283e2362796SWludzik, Jozef { 284e2362796SWludzik, Jozef public: 285e2362796SWludzik, Jozef using FilePath = interfaces::JsonStorage::FilePath; 286e2362796SWludzik, Jozef using DirectoryPath = interfaces::JsonStorage::DirectoryPath; 287e2362796SWludzik, Jozef 288e2362796SWludzik, Jozef void SetUp() override 289e2362796SWludzik, Jozef { 290e2362796SWludzik, Jozef ON_CALL(storageMock, list()) 291e2362796SWludzik, Jozef .WillByDefault(Return(std::vector<FilePath>{FilePath("report1")})); 292e2362796SWludzik, Jozef ON_CALL(storageMock, load(FilePath("report1"))) 2936ccfcbf5SKrzysztof Grobelny .WillByDefault(InvokeWithoutArgs([this] { return data; })); 294e2362796SWludzik, Jozef } 295e2362796SWludzik, Jozef 296e2362796SWludzik, Jozef void makeReportManager() 297e2362796SWludzik, Jozef { 298e2362796SWludzik, Jozef sut = std::make_unique<ReportManager>(std::move(reportFactoryMockPtr), 299e2362796SWludzik, Jozef std::move(storageMockPtr), 300e2362796SWludzik, Jozef DbusEnvironment::getObjServer()); 301e2362796SWludzik, Jozef } 302e2362796SWludzik, Jozef 303d2238194SKrzysztof Grobelny static std::vector<LabeledMetricParameters> 304d2238194SKrzysztof Grobelny convertToLabeled(const ReadingParameters& params) 305d2238194SKrzysztof Grobelny { 306d2238194SKrzysztof Grobelny return utils::transform(params, [](const auto& item) { 307d2238194SKrzysztof Grobelny return LabeledMetricParameters( 308*e8fc5751SKrzysztof Grobelny LabeledSensorParameters("service", std::get<0>(item)), 309*e8fc5751SKrzysztof Grobelny utils::stringToOperationType(std::get<1>(item)), 310*e8fc5751SKrzysztof Grobelny std::get<2>(item), std::get<3>(item)); 311d2238194SKrzysztof Grobelny }); 312d2238194SKrzysztof Grobelny } 313d2238194SKrzysztof Grobelny 314e2362796SWludzik, Jozef nlohmann::json data = nlohmann::json{ 315e2362796SWludzik, Jozef {"Version", Report::reportVersion}, 316e2362796SWludzik, Jozef {"Name", reportParams.reportName()}, 317e2362796SWludzik, Jozef {"ReportingType", reportParams.reportingType()}, 318e2362796SWludzik, Jozef {"EmitsReadingsUpdate", reportParams.emitReadingUpdate()}, 319e2362796SWludzik, Jozef {"LogToMetricReportsCollection", 320e2362796SWludzik, Jozef reportParams.logToMetricReportCollection()}, 321e2362796SWludzik, Jozef {"Interval", reportParams.interval().count()}, 322e2362796SWludzik, Jozef {"ReadingParameters", 323d2238194SKrzysztof Grobelny convertToLabeled(reportParams.readingParameters())}}; 324e2362796SWludzik, Jozef }; 325e2362796SWludzik, Jozef 326e2362796SWludzik, Jozef TEST_F(TestReportManagerStorage, reportManagerCtorAddReportFromStorage) 327e2362796SWludzik, Jozef { 328d2238194SKrzysztof Grobelny reportFactoryMock.expectMake( 329d2238194SKrzysztof Grobelny reportParams, _, Ref(storageMock), 330d2238194SKrzysztof Grobelny ElementsAreArray(convertToLabeled(reportParams.readingParameters()))); 331e2362796SWludzik, Jozef 332e2362796SWludzik, Jozef makeReportManager(); 333e2362796SWludzik, Jozef } 334e2362796SWludzik, Jozef 335e2362796SWludzik, Jozef TEST_F(TestReportManagerStorage, 336e2362796SWludzik, Jozef reportManagerCtorRemoveFileIfVersionDoesNotMatch) 337e2362796SWludzik, Jozef { 338e2362796SWludzik, Jozef data["Version"] = Report::reportVersion - 1; 339e2362796SWludzik, Jozef 340e2362796SWludzik, Jozef EXPECT_CALL(storageMock, remove(FilePath("report1"))); 341e2362796SWludzik, Jozef 342e2362796SWludzik, Jozef makeReportManager(); 343e2362796SWludzik, Jozef } 344e2362796SWludzik, Jozef 345e2362796SWludzik, Jozef TEST_F(TestReportManagerStorage, 346e2362796SWludzik, Jozef reportManagerCtorRemoveFileIfIntervalHasWrongType) 347e2362796SWludzik, Jozef { 348e2362796SWludzik, Jozef data["Interval"] = "1000"; 349e2362796SWludzik, Jozef 350e2362796SWludzik, Jozef EXPECT_CALL(storageMock, remove(FilePath("report1"))); 351e2362796SWludzik, Jozef 352e2362796SWludzik, Jozef makeReportManager(); 353e2362796SWludzik, Jozef } 354