xref: /openbmc/bmcweb/test/redfish-core/include/utils/sensor_utils_test.cpp (revision 378f1d6138791d1d936ae3bc2114ddcafe124ed0)
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::environmentMetricsNode);
57     EXPECT_EQ(subNodeStr, "EnvironmentMetrics");
58 
59     subNodeStr = chassisSubNodeToString(ChassisSubNode::powerNode);
60     EXPECT_EQ(subNodeStr, "Power");
61 
62     subNodeStr = chassisSubNodeToString(ChassisSubNode::sensorsNode);
63     EXPECT_EQ(subNodeStr, "Sensors");
64 
65     subNodeStr = chassisSubNodeToString(ChassisSubNode::thermalNode);
66     EXPECT_EQ(subNodeStr, "Thermal");
67 
68     subNodeStr = chassisSubNodeToString(ChassisSubNode::thermalMetricsNode);
69     EXPECT_EQ(subNodeStr, "ThermalMetrics");
70 
71     subNodeStr = chassisSubNodeToString(ChassisSubNode::unknownNode);
72     EXPECT_EQ(subNodeStr, "");
73 }
74 
TEST(ChassisSubNodeFromString,Success)75 TEST(ChassisSubNodeFromString, Success)
76 {
77     ChassisSubNode subNode = ChassisSubNode::unknownNode;
78 
79     subNode = chassisSubNodeFromString("EnvironmentMetrics");
80     EXPECT_EQ(subNode, ChassisSubNode::environmentMetricsNode);
81 
82     subNode = chassisSubNodeFromString("Power");
83     EXPECT_EQ(subNode, ChassisSubNode::powerNode);
84 
85     subNode = chassisSubNodeFromString("Sensors");
86     EXPECT_EQ(subNode, ChassisSubNode::sensorsNode);
87 
88     subNode = chassisSubNodeFromString("Thermal");
89     EXPECT_EQ(subNode, ChassisSubNode::thermalNode);
90 
91     subNode = chassisSubNodeFromString("ThermalMetrics");
92     EXPECT_EQ(subNode, ChassisSubNode::thermalMetricsNode);
93 
94     subNode = chassisSubNodeFromString("BadNode");
95     EXPECT_EQ(subNode, ChassisSubNode::unknownNode);
96 
97     subNode = chassisSubNodeFromString("");
98     EXPECT_EQ(subNode, ChassisSubNode::unknownNode);
99 }
100 
TEST(IsExcerptNode,True)101 TEST(IsExcerptNode, True)
102 {
103     EXPECT_TRUE(isExcerptNode(ChassisSubNode::environmentMetricsNode));
104     EXPECT_TRUE(isExcerptNode(ChassisSubNode::thermalMetricsNode));
105 }
106 
TEST(IsExcerptNode,False)107 TEST(IsExcerptNode, False)
108 {
109     EXPECT_FALSE(isExcerptNode(ChassisSubNode::sensorsNode));
110     EXPECT_FALSE(isExcerptNode(ChassisSubNode::powerNode));
111     EXPECT_FALSE(isExcerptNode(ChassisSubNode::thermalNode));
112     EXPECT_FALSE(isExcerptNode(ChassisSubNode::unknownNode));
113 }
114 
115 } // namespace
116 } // namespace redfish::sensor_utils
117