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))