Implemented sensor class

Sensor class was introduced, it monitors
xyz.openbmc_project.Sensor.Value, for change and notifies all
listeners.

Tested:
  - Unit tested with service stub that provides dbus interface
    xyz.openbmc_project.Sensor.Value
  - All changes are delivered to listeners
  - All other unit tests are passing

Change-Id: I8c9d58cc986c1fe2a4d2386815d559814016efa6
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
diff --git a/tests/src/mocks/json_storage_mock.hpp b/tests/src/mocks/json_storage_mock.hpp
index 295bc94..99ecd41 100644
--- a/tests/src/mocks/json_storage_mock.hpp
+++ b/tests/src/mocks/json_storage_mock.hpp
@@ -7,8 +7,11 @@
 class StorageMock : public interfaces::JsonStorage
 {
   public:
-    MOCK_METHOD2(store, void(const FilePath&, const nlohmann::json&));
-    MOCK_METHOD1(remove, bool(const FilePath&));
-    MOCK_CONST_METHOD1(load, std::optional<nlohmann::json>(const FilePath&));
-    MOCK_CONST_METHOD1(list, std::vector<FilePath>(const DirectoryPath&));
+    MOCK_METHOD(void, store, (const FilePath&, const nlohmann::json&),
+                (override));
+    MOCK_METHOD(bool, remove, (const FilePath&), (override));
+    MOCK_METHOD(std::optional<nlohmann::json>, load, (const FilePath&),
+                (const, override));
+    MOCK_METHOD(std::vector<FilePath>, list, (const DirectoryPath&),
+                (const, override));
 };
diff --git a/tests/src/mocks/sensor_listener_mock.hpp b/tests/src/mocks/sensor_listener_mock.hpp
new file mode 100644
index 0000000..b8f1ef5
--- /dev/null
+++ b/tests/src/mocks/sensor_listener_mock.hpp
@@ -0,0 +1,29 @@
+#pragma once
+
+#include "interfaces/sensor_listener.hpp"
+
+#include <gmock/gmock.h>
+
+class SensorListenerMock : public interfaces::SensorListener
+{
+  public:
+    void delegateIgnoringArgs()
+    {
+        using namespace testing;
+
+        ON_CALL(*this, sensorUpdated(_, _)).WillByDefault(Invoke([this] {
+            sensorUpdated();
+        }));
+
+        ON_CALL(*this, sensorUpdated(_, _, _)).WillByDefault(Invoke([this] {
+            sensorUpdated();
+        }));
+    }
+
+    MOCK_METHOD(void, sensorUpdated, (interfaces::Sensor&, uint64_t),
+                (override));
+    MOCK_METHOD(void, sensorUpdated, (interfaces::Sensor&, uint64_t, double),
+                (override));
+
+    MOCK_METHOD(void, sensorUpdated, (), ());
+};
diff --git a/tests/src/mocks/sensor_mock.hpp b/tests/src/mocks/sensor_mock.hpp
index 9e8d7f3..0dcb2b5 100644
--- a/tests/src/mocks/sensor_mock.hpp
+++ b/tests/src/mocks/sensor_mock.hpp
@@ -20,7 +20,9 @@
         return Id("SensorMock", service, path);
     }
 
-    MOCK_CONST_METHOD0(id, Id());
+    MOCK_METHOD(Id, id, (), (const, override));
+    MOCK_METHOD(void, registerForUpdates,
+                (const std::weak_ptr<interfaces::SensorListener>&), (override));
 
     const uint64_t mockId = generateUniqueMockId();