diff --git a/src/test/estoraged_test.cpp b/src/test/estoraged_test.cpp
index 7a3286c..e77d4c6 100644
--- a/src/test/estoraged_test.cpp
+++ b/src/test/estoraged_test.cpp
@@ -48,6 +48,7 @@
     const char* testPath = "/test/openbmc_project/storage/test_dev";
     const char* estoragedInterface =
         "xyz.openbmc_project.Inventory.Item.Volume";
+    const char* driveInterface = "xyz.openbmc_project.Inventory.Item.Drive";
     sdbusplus::bus::bus bus;
     std::string passwordString;
     std::vector<uint8_t> password;
@@ -76,6 +77,11 @@
             .WillRepeatedly(Return(0));
 
         EXPECT_CALL(sdbusMock,
+                    sd_bus_add_object_vtable(IsNull(), _, StrEq(testPath),
+                                             StrEq(driveInterface), _, _))
+            .WillRepeatedly(Return(0));
+
+        EXPECT_CALL(sdbusMock,
                     sd_bus_emit_object_added(IsNull(), StrEq(testPath)))
             .WillRepeatedly(Return(0));
 
@@ -105,6 +111,11 @@
 TEST_F(EStoragedTest, FormatPass)
 {
     EXPECT_CALL(sdbusMock,
+                sd_bus_emit_properties_changed_strv(IsNull(), StrEq(testPath),
+                                                    StrEq(driveInterface), _))
+        .WillRepeatedly(Return(0));
+
+    EXPECT_CALL(sdbusMock,
                 sd_bus_emit_properties_changed_strv(
                     IsNull(), StrEq(testPath), StrEq(estoragedInterface), _))
         .WillRepeatedly(Return(0));
@@ -155,6 +166,11 @@
 TEST_F(EStoragedTest, MountPointExistsPass)
 {
     EXPECT_CALL(sdbusMock,
+                sd_bus_emit_properties_changed_strv(IsNull(), StrEq(testPath),
+                                                    StrEq(driveInterface), _))
+        .WillRepeatedly(Return(0));
+
+    EXPECT_CALL(sdbusMock,
                 sd_bus_emit_properties_changed_strv(
                     IsNull(), StrEq(testPath), StrEq(estoragedInterface), _))
         .WillRepeatedly(Return(0));
@@ -229,6 +245,11 @@
 TEST_F(EStoragedTest, AddKeyslotFail)
 {
     EXPECT_CALL(sdbusMock,
+                sd_bus_emit_properties_changed_strv(IsNull(), StrEq(testPath),
+                                                    StrEq(driveInterface), _))
+        .WillRepeatedly(Return(0));
+
+    EXPECT_CALL(sdbusMock,
                 sd_bus_emit_properties_changed_strv(
                     IsNull(), StrEq(testPath), StrEq(estoragedInterface), _))
         .WillRepeatedly(Return(0));
@@ -247,6 +268,11 @@
 TEST_F(EStoragedTest, LoadLuksHeaderFail)
 {
     EXPECT_CALL(sdbusMock,
+                sd_bus_emit_properties_changed_strv(IsNull(), StrEq(testPath),
+                                                    StrEq(driveInterface), _))
+        .WillRepeatedly(Return(0));
+
+    EXPECT_CALL(sdbusMock,
                 sd_bus_emit_properties_changed_strv(
                     IsNull(), StrEq(testPath), StrEq(estoragedInterface), _))
         .WillRepeatedly(Return(0));
@@ -267,6 +293,11 @@
 TEST_F(EStoragedTest, ActivateFail)
 {
     EXPECT_CALL(sdbusMock,
+                sd_bus_emit_properties_changed_strv(IsNull(), StrEq(testPath),
+                                                    StrEq(driveInterface), _))
+        .WillRepeatedly(Return(0));
+
+    EXPECT_CALL(sdbusMock,
                 sd_bus_emit_properties_changed_strv(
                     IsNull(), StrEq(testPath), StrEq(estoragedInterface), _))
         .WillRepeatedly(Return(0));
@@ -290,6 +321,11 @@
 TEST_F(EStoragedTest, CreateFilesystemFail)
 {
     EXPECT_CALL(sdbusMock,
+                sd_bus_emit_properties_changed_strv(IsNull(), StrEq(testPath),
+                                                    StrEq(driveInterface), _))
+        .WillRepeatedly(Return(0));
+
+    EXPECT_CALL(sdbusMock,
                 sd_bus_emit_properties_changed_strv(
                     IsNull(), StrEq(testPath), StrEq(estoragedInterface), _))
         .WillRepeatedly(Return(0));
@@ -315,6 +351,11 @@
 TEST_F(EStoragedTest, CreateMountPointFail)
 {
     EXPECT_CALL(sdbusMock,
+                sd_bus_emit_properties_changed_strv(IsNull(), StrEq(testPath),
+                                                    StrEq(driveInterface), _))
+        .WillRepeatedly(Return(0));
+
+    EXPECT_CALL(sdbusMock,
                 sd_bus_emit_properties_changed_strv(
                     IsNull(), StrEq(testPath), StrEq(estoragedInterface), _))
         .WillRepeatedly(Return(0));
@@ -346,6 +387,11 @@
 TEST_F(EStoragedTest, MountFail)
 {
     EXPECT_CALL(sdbusMock,
+                sd_bus_emit_properties_changed_strv(IsNull(), StrEq(testPath),
+                                                    StrEq(driveInterface), _))
+        .WillRepeatedly(Return(0));
+
+    EXPECT_CALL(sdbusMock,
                 sd_bus_emit_properties_changed_strv(
                     IsNull(), StrEq(testPath), StrEq(estoragedInterface), _))
         .WillRepeatedly(Return(0));
@@ -385,6 +431,11 @@
 TEST_F(EStoragedTest, UnmountFail)
 {
     EXPECT_CALL(sdbusMock,
+                sd_bus_emit_properties_changed_strv(IsNull(), StrEq(testPath),
+                                                    StrEq(driveInterface), _))
+        .WillRepeatedly(Return(0));
+
+    EXPECT_CALL(sdbusMock,
                 sd_bus_emit_properties_changed_strv(
                     IsNull(), StrEq(testPath), StrEq(estoragedInterface), _))
         .WillRepeatedly(Return(0));
@@ -426,6 +477,11 @@
 TEST_F(EStoragedTest, RemoveMountPointFail)
 {
     EXPECT_CALL(sdbusMock,
+                sd_bus_emit_properties_changed_strv(IsNull(), StrEq(testPath),
+                                                    StrEq(driveInterface), _))
+        .WillRepeatedly(Return(0));
+
+    EXPECT_CALL(sdbusMock,
                 sd_bus_emit_properties_changed_strv(
                     IsNull(), StrEq(testPath), StrEq(estoragedInterface), _))
         .WillRepeatedly(Return(0));
@@ -471,6 +527,11 @@
 TEST_F(EStoragedTest, DeactivateFail)
 {
     EXPECT_CALL(sdbusMock,
+                sd_bus_emit_properties_changed_strv(IsNull(), StrEq(testPath),
+                                                    StrEq(driveInterface), _))
+        .WillRepeatedly(Return(0));
+
+    EXPECT_CALL(sdbusMock,
                 sd_bus_emit_properties_changed_strv(
                     IsNull(), StrEq(testPath), StrEq(estoragedInterface), _))
         .WillRepeatedly(Return(0));
