1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #include "registries.hpp"
4 #include "registries/openbmc_message_registry.hpp"
5
6 #include <optional>
7
8 #include <gtest/gtest.h>
9
10 namespace redfish::registries
11 {
12 namespace
13 {
14
TEST(FillMessageArgs,ArgsAreFilledCorrectly)15 TEST(FillMessageArgs, ArgsAreFilledCorrectly)
16 {
17 EXPECT_EQ(fillMessageArgs({{"foo"}}, "%1"), "foo");
18 EXPECT_EQ(fillMessageArgs({}, ""), "");
19 EXPECT_EQ(fillMessageArgs({{"foo", "bar"}}, "%1, %2"), "foo, bar");
20 EXPECT_EQ(fillMessageArgs({{"foo"}}, "%1 bar"), "foo bar");
21 EXPECT_EQ(fillMessageArgs({}, "%1"), "");
22 EXPECT_EQ(fillMessageArgs({}, "%"), "");
23 EXPECT_EQ(fillMessageArgs({}, "%foo"), "");
24 }
25
TEST(RedfishRegistries,GetMessageFromRegistry)26 TEST(RedfishRegistries, GetMessageFromRegistry)
27 {
28 const redfish::registries::Message* msg =
29 redfish::registries::getMessageFromRegistry(
30 "Non-Existent", redfish::registries::Openbmc::registry);
31 ASSERT_EQ(msg, nullptr);
32
33 const redfish::registries::Message* msg1 =
34 redfish::registries::getMessageFromRegistry(
35 "ServiceStarted", redfish::registries::Openbmc::registry);
36 ASSERT_NE(msg1, nullptr);
37
38 EXPECT_EQ(std::string(msg1->description),
39 "Indicates that a service has started successfully.");
40 EXPECT_EQ(std::string(msg1->message),
41 "Service %1 has started successfully.");
42 EXPECT_EQ(std::string(msg1->messageSeverity), "OK");
43 EXPECT_EQ(msg1->numberOfArgs, 1);
44 EXPECT_EQ(std::string(msg1->resolution), "None.");
45 }
46
TEST(RedfishRegistries,GetMessage)47 TEST(RedfishRegistries, GetMessage)
48 {
49 const redfish::registries::Message* msg =
50 redfish::registries::getMessage("OpenBMC.1.0.Non_Existent_Message");
51 ASSERT_EQ(msg, nullptr);
52
53 msg = redfish::registries::getMessage("OpenBMC.1.0.ServiceStarted");
54 ASSERT_NE(msg, nullptr);
55 }
56
TEST(RedfishRegistries,GetMessageComponents)57 TEST(RedfishRegistries, GetMessageComponents)
58 {
59 std::optional<registries::MessageId> msgComponents =
60 registries::getMessageComponents("OpenBMC.5.threeComponents");
61 ASSERT_EQ(msgComponents, std::nullopt);
62
63 msgComponents =
64 registries::getMessageComponents("OpenBMC.0.0.5.fiveComponents");
65 ASSERT_EQ(msgComponents, std::nullopt);
66
67 msgComponents =
68 registries::getMessageComponents("OpenBMC.0.5.BIOSAttributesChanged");
69 ASSERT_TRUE(msgComponents);
70
71 if (!msgComponents)
72 {
73 return;
74 }
75
76 EXPECT_EQ(msgComponents->registryName, "OpenBMC");
77 EXPECT_EQ(msgComponents->messageKey, "BIOSAttributesChanged");
78 EXPECT_EQ(msgComponents->majorVersion, "0");
79 EXPECT_EQ(msgComponents->minorVersion, "5");
80 }
81
82 } // namespace
83 } // namespace redfish::registries
84