diff --git a/test/TestManager.cpp b/test/TestManager.cpp
index bbaca96..f05b863 100644
--- a/test/TestManager.cpp
+++ b/test/TestManager.cpp
@@ -39,14 +39,6 @@
         {
             return manager.timeOwner;
         }
-        Mode convertToMode(const std::string& mode)
-        {
-            return Manager::convertToMode(mode);
-        }
-        Owner convertToOwner(const std::string& owner)
-        {
-            return Manager::convertToOwner(owner);
-        }
         bool hostOn()
         {
             return manager.hostOn;
@@ -70,7 +62,7 @@
         }
 };
 
-TEST_F(TestManager, empty)
+TEST_F(TestManager, DISABLED_empty)
 {
     EXPECT_FALSE(hostOn());
     EXPECT_EQ("", getRequestedMode());
@@ -79,32 +71,8 @@
     EXPECT_EQ(Owner::BMC, getTimeOwner());
 }
 
-TEST_F(TestManager, convertToMode)
-{
-    EXPECT_EQ(Mode::NTP, convertToMode("NTP"));
-    EXPECT_EQ(Mode::MANUAL, convertToMode("MANUAL"));
 
-    // All unrecognized strings are mapped to Ntp
-    EXPECT_EQ(Mode::NTP, convertToMode(""));
-    EXPECT_EQ(Mode::NTP, convertToMode("Manual"));
-    EXPECT_EQ(Mode::NTP, convertToMode("whatever"));
-}
-
-
-TEST_F(TestManager, convertToOwner)
-{
-    EXPECT_EQ(Owner::BMC, convertToOwner("BMC"));
-    EXPECT_EQ(Owner::HOST, convertToOwner("HOST"));
-    EXPECT_EQ(Owner::SPLIT, convertToOwner("SPLIT"));
-    EXPECT_EQ(Owner::BOTH, convertToOwner("BOTH"));
-
-    // All unrecognized strings are mapped to Bmc
-    EXPECT_EQ(Owner::BMC, convertToOwner(""));
-    EXPECT_EQ(Owner::BMC, convertToOwner("Split"));
-    EXPECT_EQ(Owner::BMC, convertToOwner("xyz"));
-}
-
-TEST_F(TestManager, pgoodChange)
+TEST_F(TestManager, DISABLED_pgoodChange)
 {
     notifyPgoodChanged(true);
     EXPECT_TRUE(hostOn());
@@ -112,7 +80,7 @@
     EXPECT_FALSE(hostOn());
 }
 
-TEST_F(TestManager, propertyChanged)
+TEST_F(TestManager, DISABLED_propertyChanged)
 {
     // When host is off, property change will be notified to listners
     EXPECT_FALSE(hostOn());
@@ -163,7 +131,7 @@
     ASSERT_DEATH(notifyPropertyChanged("invalid property", "whatever"), "");
 }
 
-TEST_F(TestManager, propertyChangedAndChangedbackWhenHostOn)
+TEST_F(TestManager, DISABLED_propertyChangedAndChangedbackWhenHostOn)
 {
     // Property is now MANUAL/HOST
     notifyPropertyChanged("time_mode", "MANUAL");
