Use proper dbus path when possible.
Following methods and properties were updated to use full dbus path,
instead of internal telemetry id:
- TriggerManager.AddTrigger() - 'reportIds' arg
- Trigger.ReportIds - renamed to 'Reports'
- Report.TriggerIds - renamed to 'Triggers'
Testing done:
- UTs were updated and are passing.
Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
Change-Id: I78d812d38289fac575d25b48503cc8b9c6f736fe
diff --git a/tests/src/test_trigger_manager.cpp b/tests/src/test_trigger_manager.cpp
index efdac65..58d0df1 100644
--- a/tests/src/test_trigger_manager.cpp
+++ b/tests/src/test_trigger_manager.cpp
@@ -10,6 +10,7 @@
#include "utils/transform.hpp"
using namespace testing;
+using sdbusplus::message::object_path;
class TestTriggerManager : public Test
{
@@ -33,7 +34,7 @@
utils::transform(
params.triggerActions(),
[](const auto& action) { return actionToString(action); }),
- sensorInfos, params.reportIds(),
+ sensorInfos, params.reports(),
std::visit(utils::FromLabeledThresholdParamConversion(),
params.thresholdParams()));
return DbusEnvironment::waitForFuture(addTriggerPromise.get_future());
@@ -134,6 +135,38 @@
EXPECT_THAT(path, Eq(std::string()));
}
+TEST_F(TestTriggerManager, addTriggerWithProperReportPaths)
+{
+ auto [ec, path] = addTrigger(TriggerParams().reports(
+ {object_path("/xyz/openbmc_project/Telemetry/Reports/MyReport"),
+ object_path(
+ "/xyz/openbmc_project/Telemetry/Reports/MyPrefix/MyReport")}));
+ EXPECT_THAT(ec.value(), Eq(boost::system::errc::success));
+ EXPECT_THAT(path, Eq(triggerMock.getPath()));
+}
+
+TEST_F(TestTriggerManager, DISABLED_failToAddTriggerWithBadReportsPath)
+{
+ triggerFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock))
+ .Times(0);
+
+ auto [ec, path] = addTrigger(TriggerParams().reports(
+ {object_path("/xyz/openbmc_project/Telemetry/NotReports/MyReport")}));
+ EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument));
+ EXPECT_THAT(path, Eq(std::string()));
+}
+
+TEST_F(TestTriggerManager, DISABLED_failToAddTriggerWithTooManyReportPrefixes)
+{
+ triggerFactoryMock.expectMake(std::nullopt, Ref(*sut), Ref(storageMock))
+ .Times(0);
+
+ auto [ec, path] = addTrigger(TriggerParams().reports({object_path(
+ "/xyz/openbmc_project/Telemetry/Reports/P1/P2/MyReport")}));
+ EXPECT_THAT(ec.value(), Eq(boost::system::errc::invalid_argument));
+ EXPECT_THAT(path, Eq(std::string()));
+}
+
TEST_F(TestTriggerManager, addTriggerWithoutIdAndName)
{
triggerFactoryMock