Fix trigger type for OnChange triggers

Triggers with no threshold parameters should be treated as ones that
activate on change of monitored metric values', with `Discrete` property
value set to true. Otherwise they will be wrongly treated as numeric
triggers on Redfish side. This patch corrects this behavior.

Tested:
1. Created simple discrete trigger: `TestTriggerDiscreteOnChange`, with
`DiscreteTriggerCondition` set to `Changed`.
2. busctl introspect xyz.openbmc_project.Telemetry
/xyz/openbmc_project/Telemetry/Triggers/TelemetryService/
    TestTriggerDiscreteOnChange
3. Verified that `Discrete` property is true

All unit tests have passed.

Change-Id: I06762c94b38a9da42a64c9a014d3f6dd47577176
Signed-off-by: Michal Orzel <michalx.orzel@intel.com>
diff --git a/tests/src/test_trigger.cpp b/tests/src/test_trigger.cpp
index c2f7774..7764c8d 100644
--- a/tests/src/test_trigger.cpp
+++ b/tests/src/test_trigger.cpp
@@ -443,6 +443,26 @@
                 Eq(persistent));
 }
 
+class TestOnChangeTrigger : public TestTrigger
+{
+  public:
+    TriggerParams onChangeTriggerParams =
+        TriggerParams()
+            .id("DiscreteOnChangeTrigger")
+            .name("My Discrete On Change Trigger")
+            .thresholdParams(std::vector<numeric::LabeledThresholdParam>{});
+
+    void SetUp() override
+    {
+        sut = makeTrigger(onChangeTriggerParams);
+    }
+};
+
+TEST_F(TestOnChangeTrigger, isDiscrete)
+{
+    EXPECT_THAT(getProperty<bool>(sut->getPath(), "Discrete"), Eq(true));
+}
+
 class TestTriggerInitialization : public TestTrigger
 {
   public: