summaryrefslogtreecommitdiffstats
path: root/test/TestUtils.cpp
blob: 1cbc852f30039ad43b6bd0a7dc474a23cf055a4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#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
OpenPOWER on IntegriCloud