Add ReportManager and Report unit tests

Introduced ReportFactory to seperate Report and ReportManager
unit tests. Implemented mocks for Report, ReportManager and
ReportFactory classes. Added tests for DBus Properties and Methods
provided by telemetry service.

Tested:
 - Ran unit-tests with success

Change-Id: I1860e280d26ee4becc52de98dd65e5697d26b376
Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>
diff --git a/src/interfaces/report.hpp b/src/interfaces/report.hpp
new file mode 100644
index 0000000..98421be
--- /dev/null
+++ b/src/interfaces/report.hpp
@@ -0,0 +1,16 @@
+#pragma once
+
+#include <string>
+
+namespace interfaces
+{
+
+class Report
+{
+  public:
+    virtual ~Report() = default;
+
+    virtual std::string getName() const = 0;
+    virtual std::string getPath() const = 0;
+};
+} // namespace interfaces
diff --git a/src/interfaces/report_factory.hpp b/src/interfaces/report_factory.hpp
new file mode 100644
index 0000000..9273d03
--- /dev/null
+++ b/src/interfaces/report_factory.hpp
@@ -0,0 +1,28 @@
+#pragma once
+
+#include "interfaces/report.hpp"
+#include "interfaces/report_manager.hpp"
+#include "interfaces/types.hpp"
+
+#include <chrono>
+#include <memory>
+
+class ReportManager;
+
+namespace interfaces
+{
+
+class ReportFactory
+{
+  public:
+    virtual ~ReportFactory() = default;
+
+    virtual std::unique_ptr<interfaces::Report>
+        make(const std::string& name, const std::string& reportingType,
+             bool emitsReadingsSignal, bool logToMetricReportsCollection,
+             std::chrono::milliseconds period,
+             const ReadingParameters& metricParams,
+             ReportManager& reportManager) const = 0;
+};
+
+} // namespace interfaces
diff --git a/src/interfaces/report_manager.hpp b/src/interfaces/report_manager.hpp
new file mode 100644
index 0000000..80e0c82
--- /dev/null
+++ b/src/interfaces/report_manager.hpp
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "interfaces/report.hpp"
+
+namespace interfaces
+{
+
+class ReportManager
+{
+  public:
+    virtual ~ReportManager() = default;
+
+    virtual void removeReport(const interfaces::Report* report) = 0;
+};
+
+} // namespace interfaces
diff --git a/src/interfaces/types.hpp b/src/interfaces/types.hpp
new file mode 100644
index 0000000..09a75cd
--- /dev/null
+++ b/src/interfaces/types.hpp
@@ -0,0 +1,11 @@
+#pragma once
+
+#include <sdbusplus/message/types.hpp>
+
+#include <string>
+#include <tuple>
+#include <vector>
+
+using ReadingParameters =
+    std::vector<std::tuple<std::vector<sdbusplus::message::object_path>,
+                           std::string, std::string, std::string>>;