Added discrete threshold trigger support
Implemented discrete threshold logic
Discrete trigger with empty threshold array is handled as 'onChange'
Added unit tests coverage for discrete trigger
Supported scenarios:
-discrete threshold with value and dwell time
-discrete threshold with value, without dwell time
-discrete trigger without threshold ('onChange')
Tests:
-Unit tests passed
Change-Id: Id60a48f4113bd955d97e154888c00d1b6e5490af
Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
diff --git a/tests/src/test_trigger_manager.cpp b/tests/src/test_trigger_manager.cpp
index 95043e2..8754446 100644
--- a/tests/src/test_trigger_manager.cpp
+++ b/tests/src/test_trigger_manager.cpp
@@ -51,6 +51,36 @@
EXPECT_THAT(path, Eq(triggerMock.getPath()));
}
+TEST_F(TestTriggerManager, addTriggerWithDiscreteThresholds)
+{
+ TriggerParams triggerParamsDiscrete;
+ auto thresholds = std::vector<discrete::ThresholdParam>{
+ {"discrete_threshold1",
+ discrete::severityToString(discrete::Severity::ok), 10, 11.0},
+ {"discrete_threshold2",
+ discrete::severityToString(discrete::Severity::warning), 10, 12.0},
+ {"discrete_threshold3",
+ discrete::severityToString(discrete::Severity::critical), 10, 13.0}};
+
+ triggerParamsDiscrete.thresholdParams(thresholds).isDiscrete(true);
+
+ auto [ec, path] = addTrigger(triggerParamsDiscrete);
+ EXPECT_THAT(ec.value(), Eq(boost::system::errc::success));
+ EXPECT_THAT(path, Eq(triggerMock.getPath()));
+}
+
+TEST_F(TestTriggerManager, addDiscreteTriggerWithoutThresholds)
+{
+ TriggerParams triggerParamsDiscrete;
+ auto thresholds = std::vector<discrete::ThresholdParam>();
+
+ triggerParamsDiscrete.thresholdParams(thresholds).isDiscrete(true);
+
+ auto [ec, path] = addTrigger(triggerParamsDiscrete);
+ EXPECT_THAT(ec.value(), Eq(boost::system::errc::success));
+ EXPECT_THAT(path, Eq(triggerMock.getPath()));
+}
+
TEST_F(TestTriggerManager, DISABLED_failToAddTriggerTwice)
{
triggerFactoryMock.expectMake(triggerParams, Ref(*sut))