pldm: Move the updateDbusProperty method to the common utils

The updateDbusProperty method defined in libpldmresponder/bios_parse.cpp
and need to moved pldm/utils.hpp.
Add the updateDbusProperty method to Mock test class and remove the
setDbusProperty method in Mock test class.

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: Ib1c339af41df7f625d6976c192a3b72ce06b04a2
diff --git a/libpldmresponder/bios_parser.cpp b/libpldmresponder/bios_parser.cpp
index 2dc2e57..0b74059 100644
--- a/libpldmresponder/bios_parser.cpp
+++ b/libpldmresponder/bios_parser.cpp
@@ -17,6 +17,7 @@
 namespace bios_parser
 {
 
+using namespace pldm::utils;
 using Json = nlohmann::json;
 namespace fs = std::filesystem;
 using namespace pldm::responder::bios;
@@ -24,21 +25,11 @@
 const std::vector<Json> emptyJsonList{};
 const Json emptyJson{};
 
-struct DBusMapping
-{
-    std::string objectPath;   //!< D-Bus object path
-    std::string interface;    //!< D-Bus interface
-    std::string propertyName; //!< D-Bus property name
-    std::string propertyType; //!< D-Bus property type
-};
-
 using AttrType = uint8_t;
 using Table = std::vector<uint8_t>;
 using BIOSJsonName = std::string;
 using AttrLookup = std::map<AttrName, std::optional<DBusMapping>>;
-using PropertyValue =
-    std::variant<bool, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t,
-                 uint64_t, double, std::string>;
+
 const std::set<std::string> SupportedDbusPropertyTypes = {
     "bool",     "uint8_t", "int16_t",  "uint16_t", "int32_t",
     "uint32_t", "int64_t", "uint64_t", "double",   "string"};
@@ -173,66 +164,6 @@
 
     return valueMap;
 }
-
-void updateDbusProperty(const DBusMapping& dBusMap, const PropertyValue& value)
-{
-    auto setDbusProperty = [&dBusMap](const auto& variant) {
-        pldm::utils::DBusHandler().setDbusProperty(
-            dBusMap.objectPath.c_str(), dBusMap.propertyName.c_str(),
-            dBusMap.interface.c_str(), variant);
-    };
-
-    if (dBusMap.propertyType == "uint8_t")
-    {
-        std::variant<uint8_t> v = std::get<uint8_t>(value);
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "int16_t")
-    {
-        std::variant<int16_t> v = std::get<int16_t>(value);
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "uint16_t")
-    {
-        std::variant<uint16_t> v = std::get<uint16_t>(value);
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "int32_t")
-    {
-        std::variant<int32_t> v = std::get<int32_t>(value);
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "uint32_t")
-    {
-        std::variant<uint32_t> v = std::get<uint32_t>(value);
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "int64_t")
-    {
-        std::variant<int64_t> v = std::get<int64_t>(value);
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "uint64_t")
-    {
-        std::variant<uint64_t> v = std::get<uint64_t>(value);
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "double")
-    {
-        std::variant<double> v = std::get<double>(value);
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "string")
-    {
-        std::variant<std::string> v = std::get<std::string>(value);
-        setDbusProperty(v);
-    }
-    else
-    {
-        assert(false && "UnSpported Dbus Type");
-    }
-}
-
 } // namespace internal
 
 int setupBIOSStrings(const Json& entry, Strings& strings)
@@ -352,7 +283,7 @@
         return PLDM_ERROR;
     }
 
-    internal::updateDbusProperty(dBusMap.value(), it->first);
+    pldm::utils::DBusHandler().setDbusProperty(dBusMap.value(), it->first);
 
     return PLDM_SUCCESS;
 }
@@ -503,12 +434,9 @@
     std::vector<uint8_t> data(currentString.ptr,
                               currentString.ptr + currentString.length);
 
-    std::variant<std::string> value =
+    PropertyValue value =
         stringToUtf8(static_cast<BIOSStringEncoding>(stringType), data);
-
-    pldm::utils::DBusHandler().setDbusProperty(
-        dBusMap->objectPath.c_str(), dBusMap->propertyName.c_str(),
-        dBusMap->interface.c_str(), value);
+    pldm::utils::DBusHandler().setDbusProperty(dBusMap.value(), value);
 
     return PLDM_SUCCESS;
 }
@@ -556,55 +484,6 @@
     return 0;
 }
 
-void updateDbusProperty(const DBusMapping& dBusMap, uint64_t value)
-{
-    auto setDbusProperty = [&dBusMap](const auto& variant) {
-        pldm::utils::DBusHandler().setDbusProperty(
-            dBusMap.objectPath.c_str(), dBusMap.propertyName.c_str(),
-            dBusMap.interface.c_str(), variant);
-    };
-
-    if (dBusMap.propertyType == "uint8_t")
-    {
-        std::variant<uint8_t> v = value;
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "int16_t")
-    {
-        std::variant<int16_t> v = value;
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "uint16_t")
-    {
-        std::variant<uint16_t> v = value;
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "int32_t")
-    {
-        std::variant<int32_t> v = value;
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "uint32_t")
-    {
-        std::variant<uint32_t> v = value;
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "int64_t")
-    {
-        std::variant<int64_t> v = value;
-        setDbusProperty(v);
-    }
-    else if (dBusMap.propertyType == "uint64_t")
-    {
-        std::variant<uint64_t> v = value;
-        setDbusProperty(v);
-    }
-    else
-    {
-        assert(false && "Unsupported Dbus Type");
-    }
-}
-
 const AttrValuesMap& getValues()
 {
     return valueMap;
@@ -639,7 +518,8 @@
     uint64_t currentValue =
         pldm_bios_table_attr_value_entry_integer_decode_cv(attrValueEntry);
 
-    updateDbusProperty(dBusMap.value(), currentValue);
+    PropertyValue value = static_cast<uint64_t>(currentValue);
+    pldm::utils::DBusHandler().setDbusProperty(dBusMap.value(), value);
 
     return PLDM_SUCCESS;
 }