diff --git a/test/test_scheduled_host_transition.cpp b/test/test_scheduled_host_transition.cpp
index f5ffa2c..58e7aea 100644
--- a/test/test_scheduled_host_transition.cpp
+++ b/test/test_scheduled_host_transition.cpp
@@ -4,6 +4,7 @@
 #include <gtest/gtest.h>
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/test/sdbus_mock.hpp>
+#include <sdeventplus/event.hpp>
 #include <xyz/openbmc_project/ScheduledTime/error.hpp>
 
 namespace phosphor
@@ -20,11 +21,14 @@
 class TestScheduledHostTransition : public testing::Test
 {
   public:
+    sdeventplus::Event event;
     sdbusplus::SdBusMock sdbusMock;
     sdbusplus::bus::bus mockedBus = sdbusplus::get_mocked_new(&sdbusMock);
     ScheduledHostTransition scheduledHostTransition;
 
-    TestScheduledHostTransition() : scheduledHostTransition(mockedBus, "")
+    TestScheduledHostTransition() :
+        event(sdeventplus::Event::get_default()),
+        scheduledHostTransition(mockedBus, "", event)
     {
         // Empty
     }
@@ -33,11 +37,17 @@
     {
         return scheduledHostTransition.getTime();
     }
+
+    bool isTimerEnabled()
+    {
+        return scheduledHostTransition.timer.isEnabled();
+    }
 };
 
 TEST_F(TestScheduledHostTransition, disableHostTransition)
 {
     EXPECT_EQ(scheduledHostTransition.scheduledTime(0), 0);
+    EXPECT_FALSE(isTimerEnabled());
 }
 
 TEST_F(TestScheduledHostTransition, invalidScheduledTime)
@@ -49,6 +59,25 @@
                  InvalidTimeError);
 }
 
+TEST_F(TestScheduledHostTransition, validScheduledTime)
+{
+    // scheduled time is 1 min later than current time
+    uint64_t schTime =
+        static_cast<uint64_t>((getCurrentTime() + seconds(60)).count());
+    EXPECT_EQ(scheduledHostTransition.scheduledTime(schTime), schTime);
+    EXPECT_TRUE(isTimerEnabled());
+}
+
+TEST_F(TestScheduledHostTransition, hostTransitionStatus)
+{
+    // set requested transition to be on
+    scheduledHostTransition.scheduledTransition(Transition::On);
+    EXPECT_EQ(scheduledHostTransition.scheduledTransition(), Transition::On);
+    // set requested transition to be off
+    scheduledHostTransition.scheduledTransition(Transition::Off);
+    EXPECT_EQ(scheduledHostTransition.scheduledTransition(), Transition::Off);
+}
+
 } // namespace manager
 } // namespace state
 } // namespace phosphor
