xref: /openbmc/bmcweb/test/redfish-core/include/utils/sensor_utils_test.cpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #include "utils/sensor_utils.hpp"
4 
5 #include <string>
6 
7 #include <gtest/gtest.h>
8 
9 namespace redfish::sensor_utils
10 {
11 namespace
12 {
13 
TEST(SplitSensorNameAndType,Type)14 TEST(SplitSensorNameAndType, Type)
15 {
16     EXPECT_EQ(splitSensorNameAndType("fantach_foo_1").first, "fan_tach");
17     EXPECT_EQ(splitSensorNameAndType("temperature_foo2").first, "temperature");
18 }
19 
TEST(SplitSensorNameAndType,Name)20 TEST(SplitSensorNameAndType, Name)
21 {
22     EXPECT_EQ(splitSensorNameAndType("fantach_foo_1").second, "foo_1");
23     EXPECT_EQ(splitSensorNameAndType("temperature_foo2").second, "foo2");
24 }
25 
TEST(SplitSensorNameAndType,Error)26 TEST(SplitSensorNameAndType, Error)
27 {
28     EXPECT_TRUE(splitSensorNameAndType("fantach").first.empty());
29     EXPECT_TRUE(splitSensorNameAndType("temperature").second.empty());
30 }
31 
TEST(GetSensorId,Success)32 TEST(GetSensorId, Success)
33 {
34     std::string sensorId;
35 
36     sensorId = getSensorId("fan0_0", "fan_tach");
37     EXPECT_EQ(sensorId, "fantach_fan0_0");
38 
39     sensorId = getSensorId("0_1", "fan_pwm");
40     EXPECT_EQ(sensorId, "fanpwm_0_1");
41 
42     sensorId = getSensorId("fan2", "fan_tach");
43     EXPECT_EQ(sensorId, "fantach_fan2");
44 
45     sensorId = getSensorId("fan_3", "fan_tach");
46     EXPECT_EQ(sensorId, "fantach_fan_3");
47 
48     sensorId = getSensorId("temp2", "temperature");
49     EXPECT_EQ(sensorId, "temperature_temp2");
50 }
51 
TEST(ChassisSubNodeToString,Success)52 TEST(ChassisSubNodeToString, Success)
53 {
54     std::string subNodeStr;
55 
56     subNodeStr = chassisSubNodeToString(ChassisSubNode::powerNode);
57     EXPECT_EQ(subNodeStr, "Power");
58 
59     subNodeStr = chassisSubNodeToString(ChassisSubNode::sensorsNode);
60     EXPECT_EQ(subNodeStr, "Sensors");
61 
62     subNodeStr = chassisSubNodeToString(ChassisSubNode::thermalNode);
63     EXPECT_EQ(subNodeStr, "Thermal");
64 
65     subNodeStr = chassisSubNodeToString(ChassisSubNode::thermalMetricsNode);
66     EXPECT_EQ(subNodeStr, "ThermalMetrics");
67 
68     subNodeStr = chassisSubNodeToString(ChassisSubNode::unknownNode);
69     EXPECT_EQ(subNodeStr, "");
70 }
71 
TEST(ChassisSubNodeFromString,Success)72 TEST(ChassisSubNodeFromString, Success)
73 {
74     ChassisSubNode subNode = ChassisSubNode::unknownNode;
75 
76     subNode = chassisSubNodeFromString("Power");
77     EXPECT_EQ(subNode, ChassisSubNode::powerNode);
78 
79     subNode = chassisSubNodeFromString("Sensors");
80     EXPECT_EQ(subNode, ChassisSubNode::sensorsNode);
81 
82     subNode = chassisSubNodeFromString("Thermal");
83     EXPECT_EQ(subNode, ChassisSubNode::thermalNode);
84 
85     subNode = chassisSubNodeFromString("ThermalMetrics");
86     EXPECT_EQ(subNode, ChassisSubNode::thermalMetricsNode);
87 
88     subNode = chassisSubNodeFromString("BadNode");
89     EXPECT_EQ(subNode, ChassisSubNode::unknownNode);
90 
91     subNode = chassisSubNodeFromString("");
92     EXPECT_EQ(subNode, ChassisSubNode::unknownNode);
93 }
94 
TEST(IsExcerptNode,True)95 TEST(IsExcerptNode, True)
96 {
97     EXPECT_TRUE(isExcerptNode(ChassisSubNode::thermalMetricsNode));
98 }
99 
TEST(IsExcerptNode,False)100 TEST(IsExcerptNode, False)
101 {
102     EXPECT_FALSE(isExcerptNode(ChassisSubNode::sensorsNode));
103     EXPECT_FALSE(isExcerptNode(ChassisSubNode::powerNode));
104     EXPECT_FALSE(isExcerptNode(ChassisSubNode::thermalNode));
105     EXPECT_FALSE(isExcerptNode(ChassisSubNode::unknownNode));
106 }
107 
108 } // namespace
109 } // namespace redfish::sensor_utils
110