blob: 1cbc852f30039ad43b6bd0a7dc474a23cf055a4d [file] [log] [blame]
#include "utils.hpp"
#include <xyz/openbmc_project/Common/error.hpp>
#include <gtest/gtest.h>
namespace phosphor
{
namespace time
{
namespace utils
{
using InvalidEnumString = sdbusplus::exception::InvalidEnumString;
TEST(TestUtil, strToMode)
{
EXPECT_EQ(Mode::NTP,
strToMode("xyz.openbmc_project.Time.Synchronization.Method.NTP"));
EXPECT_EQ(
Mode::Manual,
strToMode("xyz.openbmc_project.Time.Synchronization.Method.Manual"));
// All unrecognized strings result in InvalidEnumString exception
EXPECT_THROW(strToMode(""), InvalidEnumString);
EXPECT_THROW(
strToMode("xyz.openbmc_project.Time.Synchronization.Method.MANUAL"),
InvalidEnumString);
EXPECT_THROW(strToMode("whatever"), InvalidEnumString);
}
TEST(TestUtil, strToOwner)
{
EXPECT_EQ(Owner::BMC,
strToOwner("xyz.openbmc_project.Time.Owner.Owners.BMC"));
EXPECT_EQ(Owner::Host,
strToOwner("xyz.openbmc_project.Time.Owner.Owners.Host"));
EXPECT_EQ(Owner::Split,
strToOwner("xyz.openbmc_project.Time.Owner.Owners.Split"));
EXPECT_EQ(Owner::Both,
strToOwner("xyz.openbmc_project.Time.Owner.Owners.Both"));
// All unrecognized strings result in InvalidEnumString exception
EXPECT_THROW(strToOwner(""), InvalidEnumString);
EXPECT_THROW(strToOwner("Split"), InvalidEnumString);
EXPECT_THROW(strToOwner("xyz"), InvalidEnumString);
}
TEST(TestUtil, modeToStr)
{
EXPECT_EQ("xyz.openbmc_project.Time.Synchronization.Method.NTP",
modeToStr(Mode::NTP));
EXPECT_EQ("xyz.openbmc_project.Time.Synchronization.Method.Manual",
modeToStr(Mode::Manual));
// All unrecognized strings result in exception
EXPECT_ANY_THROW(modeToStr(static_cast<Mode>(100)));
}
TEST(TestUtil, ownerToStr)
{
EXPECT_EQ("xyz.openbmc_project.Time.Owner.Owners.BMC",
ownerToStr(Owner::BMC));
EXPECT_EQ("xyz.openbmc_project.Time.Owner.Owners.Host",
ownerToStr(Owner::Host));
EXPECT_EQ("xyz.openbmc_project.Time.Owner.Owners.Split",
ownerToStr(Owner::Split));
EXPECT_EQ("xyz.openbmc_project.Time.Owner.Owners.Both",
ownerToStr(Owner::Both));
// All unrecognized strings result in exception
EXPECT_ANY_THROW(ownerToStr(static_cast<Owner>(100)));
}
} // namespace utils
} // namespace time
} // namespace phosphor