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