1 #include "sensors/manager.hpp"
2 #include "test/sensor_mock.hpp"
3
4 #include <sdbusplus/test/sdbus_mock.hpp>
5
6 #include <gmock/gmock.h>
7 #include <gtest/gtest.h>
8
9 namespace pid_control
10 {
11 namespace
12 {
13
14 using ::testing::_;
15 using ::testing::IsNull;
16 using ::testing::Return;
17 using ::testing::StrEq;
18
TEST(SensorManagerTest,BoringConstructorTest)19 TEST(SensorManagerTest, BoringConstructorTest)
20 {
21 // Build a boring SensorManager.
22
23 sdbusplus::SdBusMock sdbus_mock_passive, sdbus_mock_host;
24 auto bus_mock_passive = sdbusplus::get_mocked_new(&sdbus_mock_passive);
25 auto bus_mock_host = sdbusplus::get_mocked_new(&sdbus_mock_host);
26
27 EXPECT_CALL(sdbus_mock_host,
28 sd_bus_add_object_manager(
29 IsNull(), _, StrEq("/xyz/openbmc_project/extsensors")))
30 .WillOnce(Return(0));
31
32 SensorManager s(bus_mock_passive, bus_mock_host);
33 // Success
34 }
35
TEST(SensorManagerTest,AddSensorInvalidTypeTest)36 TEST(SensorManagerTest, AddSensorInvalidTypeTest)
37 {
38 // AddSensor doesn't validate the type of sensor you're adding, because
39 // ultimately it doesn't care -- but if we decide to change that this
40 // test will start failing :D
41
42 sdbusplus::SdBusMock sdbus_mock_passive, sdbus_mock_host;
43 auto bus_mock_passive = sdbusplus::get_mocked_new(&sdbus_mock_passive);
44 auto bus_mock_host = sdbusplus::get_mocked_new(&sdbus_mock_host);
45
46 EXPECT_CALL(sdbus_mock_host,
47 sd_bus_add_object_manager(
48 IsNull(), _, StrEq("/xyz/openbmc_project/extsensors")))
49 .WillOnce(Return(0));
50
51 SensorManager s(bus_mock_passive, bus_mock_host);
52
53 std::string name = "name";
54 std::string type = "invalid";
55 int64_t timeout = 1;
56 std::unique_ptr<Sensor> sensor =
57 std::make_unique<SensorMock>(name, timeout);
58 Sensor* sensor_ptr = sensor.get();
59
60 s.addSensor(type, name, std::move(sensor));
61 EXPECT_EQ(s.getSensor(name), sensor_ptr);
62 }
63
64 } // namespace
65 } // namespace pid_control
66