Revamped code for VPD parser

The commit removes all the pre-existing code from the branch
and pushes the revamped code.

Major modification includes:
- Movement from multi exe to single daemon model.
- Multithreaded approach to parse FRU VPD.
- Better error handling.
- Refactored code for performance optimization.

Note: This code supports all the existing functionalities as it is.

Change-Id: I1ddce1f0725ac59020b72709689a1013643bda8b
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
diff --git a/test/utest_json_utility.cpp b/test/utest_json_utility.cpp
new file mode 100644
index 0000000..4f0b5c5
--- /dev/null
+++ b/test/utest_json_utility.cpp
@@ -0,0 +1,29 @@
+#include "parser.hpp"
+#include "types.hpp"
+#include "utility/json_utility.hpp"
+
+#include <iostream>
+
+#include <gtest/gtest.h>
+
+using namespace vpd;
+
+TEST(IsFruPowerOffOnlyTest, PositiveTestCase)
+{
+    const std::string l_jsonPath{"/usr/local/share/vpd/50001001.json"};
+    const std::string l_vpdPath{"/sys/bus/spi/drivers/at25/spi12.0/eeprom"};
+    const nlohmann::json l_parsedJson = jsonUtility::getParsedJson(l_jsonPath);
+    const bool l_result =
+        jsonUtility::isFruPowerOffOnly(l_parsedJson, l_vpdPath);
+    EXPECT_TRUE(l_result);
+}
+
+TEST(IsFruPowerOffOnlyTest, NegativeTestCase)
+{
+    const std::string l_jsonPath{"/usr/local/share/vpd/50001001.json"};
+    const std::string l_vpdPath{"/sys/bus/i2c/drivers/at24/4-0050/eeprom"};
+    const nlohmann::json l_parsedJson = jsonUtility::getParsedJson(l_jsonPath);
+    const bool l_result =
+        jsonUtility::isFruPowerOffOnly(l_parsedJson, l_vpdPath);
+    EXPECT_FALSE(l_result);
+}