Save persistent triggers to storage

Create json storage file for persistent triggers.
Handle persistent dbus property.
Save/remove persistent triggers on add/delete.
Cover code with UTs.

Tested:
   - Passed unit tests
   - Tested on QEMU
     * adding new valid and invalid trigger from cli
     * verifying if valid trigger is properly stored
     * deleting existed trigger from storage

Change-Id: I243326e84833a8cb22075fbf565573b62b205b4a
Signed-off-by: Cezary Zwolak <cezary.zwolak@intel.com>
Signed-off-by: Lukasz Kazmierczak <lukasz.kazmierczak@intel.com>
diff --git a/tests/src/mocks/trigger_factory_mock.hpp b/tests/src/mocks/trigger_factory_mock.hpp
index cf1be55..8249799 100644
--- a/tests/src/mocks/trigger_factory_mock.hpp
+++ b/tests/src/mocks/trigger_factory_mock.hpp
@@ -13,7 +13,7 @@
     {
         using namespace testing;
 
-        ON_CALL(*this, make(_, _, _, _, _, _, _, _, _, _))
+        ON_CALL(*this, make(_, _, _, _, _, _, _, _, _, _, _))
             .WillByDefault(WithArgs<1>(Invoke([](const std::string& name) {
                 return std::make_unique<NiceMock<TriggerMock>>(name);
             })));
@@ -27,12 +27,14 @@
              std::pair<sdbusplus::message::object_path, std::string>>& sensors),
          const std::vector<std::string>& reportNames,
          const TriggerThresholdParams& thresholdParams,
-         interfaces::TriggerManager& triggerManager),
+         interfaces::TriggerManager& triggerManager,
+         interfaces::JsonStorage& triggerStorage),
         (const, override));
 
     auto& expectMake(
         std::optional<std::reference_wrapper<const TriggerParams>> paramsOpt,
-        const testing::Matcher<interfaces::TriggerManager&>& tm)
+        const testing::Matcher<interfaces::TriggerManager&>& tm,
+        const testing::Matcher<interfaces::JsonStorage&>& triggerStorage)
     {
         using namespace testing;
 
@@ -40,15 +42,16 @@
         {
             const TriggerParams& params = *paramsOpt;
             return EXPECT_CALL(
-                *this,
-                make(_, params.name(), params.isDiscrete(),
-                     params.logToJournal(), params.logToRedfish(),
-                     params.updateReport(), params.sensors(),
-                     params.reportNames(), params.thresholdParams(), tm));
+                *this, make(_, params.name(), params.isDiscrete(),
+                            params.logToJournal(), params.logToRedfish(),
+                            params.updateReport(), params.sensors(),
+                            params.reportNames(), params.thresholdParams(), tm,
+                            triggerStorage));
         }
         else
         {
-            return EXPECT_CALL(*this, make(_, _, _, _, _, _, _, _, _, tm));
+            return EXPECT_CALL(
+                *this, make(_, _, _, _, _, _, _, _, _, tm, triggerStorage));
         }
     }
 };