diff --git a/test/external_storer_file_test.cpp b/test/external_storer_file_test.cpp
index fc550ee..f2718aa 100644
--- a/test/external_storer_file_test.cpp
+++ b/test/external_storer_file_test.cpp
@@ -1,5 +1,8 @@
 #include "rde/external_storer_file.hpp"
 
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/test/sdbus_mock.hpp>
+
 #include <string_view>
 
 #include <gmock/gmock-matchers.h>
@@ -15,6 +18,7 @@
 using ::testing::DoAll;
 using ::testing::Return;
 using ::testing::SaveArg;
+using ::testing::StrEq;
 
 class MockFileWriter : public FileHandlerInterface
 {
@@ -30,14 +34,26 @@
 {
   public:
     ExternalStorerFileTest() :
+        bus(sdbusplus::get_mocked_new(&sdbusMock)),
         mockFileWriter(std::make_unique<MockFileWriter>())
     {
         mockFileWriterPtr = dynamic_cast<MockFileWriter*>(mockFileWriter.get());
+
+        EXPECT_CALL(
+            sdbusMock,
+            sd_bus_add_object_manager(
+                nullptr, _,
+                StrEq(
+                    "/xyz/openbmc_project/external_storer/bios_bmc_smm_error_logger/CPER")))
+            .WillOnce(Return(0));
+
         exStorer = std::make_unique<ExternalStorerFileInterface>(
-            rootPath, std::move(mockFileWriter));
+            bus, rootPath, std::move(mockFileWriter));
     }
 
   protected:
+    sdbusplus::SdBusMock sdbusMock;
+    sdbusplus::bus::bus bus;
     std::unique_ptr<FileHandlerInterface> mockFileWriter;
     std::unique_ptr<ExternalStorerFileInterface> exStorer;
     MockFileWriter* mockFileWriterPtr;
@@ -147,12 +163,29 @@
         "@odata.type": "#LogEntry.v1_13_0.LogEntry"
       }
     )";
+
     nlohmann::json logEntryOut;
     EXPECT_CALL(*mockFileWriterPtr, createFile(_, _))
         .WillOnce(DoAll(SaveArg<1>(&logEntryOut), Return(true)));
+
+    constexpr const char* dbusPath =
+        "/xyz/openbmc_project/external_storer/bios_bmc_smm_error_logger/CPER/entry0";
+    constexpr const char* dbusInterface = "xyz.openbmc_project.Common.FilePath";
+
+    EXPECT_CALL(sdbusMock, sd_bus_add_object_vtable(nullptr, _, StrEq(dbusPath),
+                                                    StrEq(dbusInterface), _, _))
+        .WillOnce(Return(0));
+    EXPECT_CALL(sdbusMock,
+                sd_bus_emit_interfaces_added_strv(nullptr, StrEq(dbusPath), _))
+        .WillOnce(Return(0));
+
     EXPECT_THAT(exStorer->publishJson(jsonLogEntry), true);
     EXPECT_NE(logEntryOut["Id"], nullptr);
     EXPECT_EQ(logEntryOut["@odata.id"], nullptr);
+
+    EXPECT_CALL(sdbusMock, sd_bus_emit_interfaces_removed_strv(
+                               nullptr, StrEq(dbusPath), _))
+        .WillOnce(Return(0));
 }
 
 TEST_F(ExternalStorerFileTest, OtherSchemaNoOdataIdTest)
