Implement Report persistency

Now Report properties are stored in non-volatile memory. It allows
to restore Report after system restart. Persistency of a report is
controlled by Persistency property in Report interface.

Tested:
 - Passed unit tests
 - Verified that report is stored in /var/lib/telemetry dir
 - Verified that report is restored from storage after telemetry
   service start

Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>
Change-Id: Iccfe21603eecffc4e174a4403f699b03de320db9
diff --git a/tests/src/test_transform.cpp b/tests/src/test_transform.cpp
new file mode 100644
index 0000000..c97cf5f
--- /dev/null
+++ b/tests/src/test_transform.cpp
@@ -0,0 +1,26 @@
+#include "utils/transform.hpp"
+
+#include <set>
+#include <vector>
+
+#include <gmock/gmock.h>
+
+using namespace testing;
+
+TEST(TestTransform, transformsVector)
+{
+    std::vector<int> input = {1, 2, 3};
+    std::vector<std::string> output =
+        utils::transform(input, [](int v) { return std::to_string(v); });
+    EXPECT_TRUE(utils::detail::has_member_reserve_v<std::vector<std::string>>);
+    ASSERT_THAT(output, ElementsAre("1", "2", "3"));
+}
+
+TEST(TestTransform, transformsSet)
+{
+    std::set<int> input = {1, 2, 3};
+    std::set<std::string> output =
+        utils::transform(input, [](int v) { return std::to_string(v); });
+    EXPECT_FALSE(utils::detail::has_member_reserve_v<std::set<std::string>>);
+    ASSERT_THAT(output, ElementsAre("1", "2", "3"));
+}