diff --git a/test/TestBmcEpoch.cpp b/test/TestBmcEpoch.cpp
index eb116e5..db43854 100644
--- a/test/TestBmcEpoch.cpp
+++ b/test/TestBmcEpoch.cpp
@@ -1,12 +1,10 @@
 #include "config.h"
 
 #include "bmc_epoch.hpp"
-#include "mocked_bmc_time_change_listener.hpp"
 #include "types.hpp"
 
 #include <memory>
 #include <sdbusplus/bus.hpp>
-#include <xyz/openbmc_project/Time/error.hpp>
 
 #include <gtest/gtest.h>
 
@@ -15,16 +13,13 @@
 namespace time
 {
 
-using ::testing::_;
 using namespace std::chrono;
-using NotAllowed = sdbusplus::xyz::openbmc_project::Time::Error::NotAllowed;
 
 class TestBmcEpoch : public testing::Test
 {
   public:
     sdbusplus::bus::bus bus;
     sd_event* event;
-    MockBmcTimeChangeListener listener;
     std::unique_ptr<BmcEpoch> bmcEpoch;
 
     TestBmcEpoch() : bus(sdbusplus::bus::new_default())
@@ -33,7 +28,6 @@
         sd_event_default(&event);
         bus.attach_event(event, SD_EVENT_PRIORITY_NORMAL);
         bmcEpoch = std::make_unique<BmcEpoch>(bus, OBJPATH_BMC);
-        bmcEpoch->setBmcTimeChangeListener(&listener);
     }
 
     ~TestBmcEpoch()
@@ -47,14 +41,6 @@
     {
         return bmcEpoch->timeMode;
     }
-    Owner getTimeOwner()
-    {
-        return bmcEpoch->timeOwner;
-    }
-    void setTimeOwner(Owner owner)
-    {
-        bmcEpoch->timeOwner = owner;
-    }
     void setTimeMode(Mode mode)
     {
         bmcEpoch->timeMode = mode;
@@ -67,9 +53,8 @@
 
 TEST_F(TestBmcEpoch, empty)
 {
-    // Default mode/owner is MANUAL/BOTH
+    // Default mode is MANUAL
     EXPECT_EQ(Mode::Manual, getTimeMode());
-    EXPECT_EQ(Owner::Both, getTimeOwner());
 }
 
 TEST_F(TestBmcEpoch, getElapsed)
@@ -80,18 +65,6 @@
     EXPECT_GE(t2, t1);
 }
 
-TEST_F(TestBmcEpoch, setElapsedNotAllowed)
-{
-    auto epochNow =
-        duration_cast<microseconds>(system_clock::now().time_since_epoch())
-            .count();
-
-    // In Host owner, setting time is not allowed
-    setTimeMode(Mode::Manual);
-    setTimeOwner(Owner::Host);
-    EXPECT_THROW(bmcEpoch->elapsed(epochNow), NotAllowed);
-}
-
 TEST_F(TestBmcEpoch, setElapsedOK)
 {
     // TODO: setting time will call sd-bus functions and it will fail on host
@@ -99,12 +72,5 @@
     // But for now we can not test it
 }
 
-TEST_F(TestBmcEpoch, onTimeChange)
-{
-    // On BMC time change, the listner is expected to be notified
-    EXPECT_CALL(listener, onBmcTimeChanged(_)).Times(1);
-    triggerTimeChange();
-}
-
 } // namespace time
 } // namespace phosphor
