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