diff --git a/test/mock_network_manager.hpp b/test/mock_network_manager.hpp
index 130e806..69a3263 100644
--- a/test/mock_network_manager.hpp
+++ b/test/mock_network_manager.hpp
@@ -30,12 +30,10 @@
         auto interfaceStrList = system::getInterfaces();
         for (auto& interface : interfaceStrList)
         {
-            fs::path objPath = objectPath;
             // normal ethernet interface
-            objPath /= interface;
             config::Parser config(config::pathForIntfConf(confDir, interface));
             auto intf = std::make_unique<MockEthernetInterface>(
-                bus, objPath.string(), config, *this);
+                bus, *this, getInterfaceInfo(interface), objectPath, config);
             intf->createIPAddressObjects();
             intf->createStaticNeighborObjects();
             intf->loadNameServers(config);
diff --git a/test/test_ethernet_interface.cpp b/test/test_ethernet_interface.cpp
index 4fd97a0..f8254b0 100644
--- a/test/test_ethernet_interface.cpp
+++ b/test/test_ethernet_interface.cpp
@@ -45,8 +45,8 @@
     {
         mock_clear();
         mock_addIF("test0", /*idx=*/1);
-        return {bus, "/xyz/openbmc_test/network/test0", config::Parser(),
-                manager};
+        return {bus, manager, getInterfaceInfo("test0"),
+                "/xyz/openbmc_test/network"sv, config::Parser()};
     }
 
     int countIPObjects()
@@ -113,8 +113,8 @@
     constexpr unsigned mtu = 150;
 
     mock_addIF("test1", idx, IFF_RUNNING, mac, mtu);
-    MockEthernetInterface intf(bus, "/xyz/openbmc_test/network/test1",
-                               config::Parser(), manager);
+    MockEthernetInterface intf(bus, manager, getInterfaceInfo("test1"),
+                               "/xyz/openbmc_test/network"sv, config::Parser());
 
     EXPECT_EQ(mtu, intf.mtu());
     EXPECT_EQ(mac_address::toString(mac), intf.macAddress());
diff --git a/test/test_vlan_interface.cpp b/test/test_vlan_interface.cpp
index 9c3a1ea..499ab34 100644
--- a/test/test_vlan_interface.cpp
+++ b/test/test_vlan_interface.cpp
@@ -20,6 +20,7 @@
 {
 
 namespace fs = std::filesystem;
+using std::literals::string_view_literals::operator""sv;
 
 class TestVlanInterface : public stdplus::gtest::TestWithTmp
 {
@@ -42,14 +43,15 @@
         mock_clear();
         mock_addIF("test0", /*idx=*/1);
         return {bus,
-                "/xyz/openbmc_test/network/test0",
-                config::Parser(),
                 manager,
-                /*emitSignals=*/false,
+                getInterfaceInfo("test0"),
+                "/xyz/openbmc_test/network"sv,
+                config::Parser(),
+                /*emitSignal=*/false,
                 /*nicEnabled=*/true};
     }
 
-    void createVlan(VlanId id)
+    void createVlan(uint16_t id)
     {
         std::string ifname = "test0.";
         ifname += std::to_string(id);
