1 #include "utils.hpp" 2 3 #include <xyz/openbmc_project/Common/error.hpp> 4 5 #include <gtest/gtest.h> 6 7 namespace phosphor 8 { 9 namespace time 10 { 11 namespace utils 12 { 13 14 using InvalidEnumString = sdbusplus::exception::InvalidEnumString; 15 16 TEST(TestUtil, strToMode) 17 { 18 EXPECT_EQ(Mode::NTP, 19 strToMode("xyz.openbmc_project.Time.Synchronization.Method.NTP")); 20 EXPECT_EQ( 21 Mode::Manual, 22 strToMode("xyz.openbmc_project.Time.Synchronization.Method.Manual")); 23 24 // All unrecognized strings result in InvalidEnumString exception 25 EXPECT_THROW(strToMode(""), InvalidEnumString); 26 EXPECT_THROW( 27 strToMode("xyz.openbmc_project.Time.Synchronization.Method.MANUAL"), 28 InvalidEnumString); 29 EXPECT_THROW(strToMode("whatever"), InvalidEnumString); 30 } 31 32 TEST(TestUtil, modeToStr) 33 { 34 EXPECT_EQ("xyz.openbmc_project.Time.Synchronization.Method.NTP", 35 modeToStr(Mode::NTP)); 36 EXPECT_EQ("xyz.openbmc_project.Time.Synchronization.Method.Manual", 37 modeToStr(Mode::Manual)); 38 39 // All unrecognized strings result in exception 40 EXPECT_ANY_THROW(modeToStr(static_cast<Mode>(100))); 41 } 42 43 } // namespace utils 44 } // namespace time 45 } // namespace phosphor 46