Adding system configuration object & UT

This commit adds the system config object that implements
the SystemConfiguration interface.

The hostname property under this interface will initially
be set from the bios table when the service starts.

Whenever user sets the property, the same will be updated
in the bios table.

busctl tree xyz.openbmc_project.Network.Hypervisor
└─/xyz
  └─/xyz/openbmc_project
    └─/xyz/openbmc_project/network
      └─/xyz/openbmc_project/network/hypervisor
        └─/xyz/openbmc_project/network/hypervisor/config

Tested By:

busctl set-property xyz.openbmc_project.Network.Hypervisor
/xyz/openbmc_project/network/hypervisor/config
xyz.openbmc_project.Network.SystemConfiguration HostName s "vmi HN"

busctl introspect xyz.openbmc_project.Network.Hypervisor /xyz/openbmc_project/network/hypervisor/config
NAME                                            TYPE      SIGNATURE RESULT/VALUE FLAGS
org.freedesktop.DBus.Introspectable             interface -         -            -
.Introspect                                     method    -         s            -
org.freedesktop.DBus.Peer                       interface -         -            -
.GetMachineId                                   method    -         s            -
.Ping                                           method    -         -            -
org.freedesktop.DBus.Properties                 interface -         -            -
.Get                                            method    ss        v            -
.GetAll                                         method    s         a{sv}        -
.Set                                            method    ssv       -            -
.PropertiesChanged                              signal    sa{sv}as  -            -
xyz.openbmc_project.Network.SystemConfiguration interface -         -            -
.DefaultGateway                                 property  s         ""           emits-change writable
.DefaultGateway6                                property  s         ""           emits-change writable
.HostName                                       property  s         "vmi HN"     emits-change writable

busctl call  xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager GetAttribute s vmi_hostname
svv "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.String" s "vmi HN" s ""

Signed-off-by: Asmitha Karunanithi <asmitk01@in.ibm.com>
Change-Id: Ib3afaef2da039d18cc672a1759b721698f9c14e2
diff --git a/test/ibm/hypervisor-network-mgr-test/mock_hyp_sys_config.hpp b/test/ibm/hypervisor-network-mgr-test/mock_hyp_sys_config.hpp
new file mode 100644
index 0000000..e5bd42d
--- /dev/null
+++ b/test/ibm/hypervisor-network-mgr-test/mock_hyp_sys_config.hpp
@@ -0,0 +1,35 @@
+#pragma once
+
+#include "config.h"
+
+#include "hyp_sys_config.hpp"
+
+#include <gmock/gmock.h>
+
+namespace phosphor
+{
+namespace network
+{
+
+class MockHypSysConfig : public phosphor::network::HypSysConfig
+{
+  public:
+    MockHypSysConfig(sdbusplus::bus::bus& bus, const std::string& objPath,
+                     HypNetworkMgr& parent) :
+        HypSysConfig(bus, objPath, parent)
+    {
+    }
+
+    void setHostname(std::string hn)
+    {
+        SysConfigIntf::hostName(hn);
+        manager.setBIOSTableAttr("vmi_hostname", hn, "String");
+    }
+
+    const std::string getHostname()
+    {
+        return SysConfigIntf::hostName();
+    }
+};
+} // namespace network
+} // namespace phosphor