| #include "sensors/manager.hpp" |
| #include "test/sensor_mock.hpp" |
| |
| #include <sdbusplus/test/sdbus_mock.hpp> |
| |
| #include <gmock/gmock.h> |
| #include <gtest/gtest.h> |
| |
| namespace pid_control |
| { |
| namespace |
| { |
| |
| using ::testing::_; |
| using ::testing::IsNull; |
| using ::testing::Return; |
| using ::testing::StrEq; |
| |
| TEST(SensorManagerTest, BoringConstructorTest) |
| { |
| // Build a boring SensorManager. |
| |
| sdbusplus::SdBusMock sdbus_mock_passive, sdbus_mock_host; |
| auto bus_mock_passive = sdbusplus::get_mocked_new(&sdbus_mock_passive); |
| auto bus_mock_host = sdbusplus::get_mocked_new(&sdbus_mock_host); |
| |
| EXPECT_CALL(sdbus_mock_host, |
| sd_bus_add_object_manager( |
| IsNull(), _, StrEq("/xyz/openbmc_project/extsensors"))) |
| .WillOnce(Return(0)); |
| |
| SensorManager s(bus_mock_passive, bus_mock_host); |
| // Success |
| } |
| |
| TEST(SensorManagerTest, AddSensorInvalidTypeTest) |
| { |
| // AddSensor doesn't validate the type of sensor you're adding, because |
| // ultimately it doesn't care -- but if we decide to change that this |
| // test will start failing :D |
| |
| sdbusplus::SdBusMock sdbus_mock_passive, sdbus_mock_host; |
| auto bus_mock_passive = sdbusplus::get_mocked_new(&sdbus_mock_passive); |
| auto bus_mock_host = sdbusplus::get_mocked_new(&sdbus_mock_host); |
| |
| EXPECT_CALL(sdbus_mock_host, |
| sd_bus_add_object_manager( |
| IsNull(), _, StrEq("/xyz/openbmc_project/extsensors"))) |
| .WillOnce(Return(0)); |
| |
| SensorManager s(bus_mock_passive, bus_mock_host); |
| |
| std::string name = "name"; |
| std::string type = "invalid"; |
| int64_t timeout = 1; |
| std::unique_ptr<Sensor> sensor = |
| std::make_unique<SensorMock>(name, timeout); |
| Sensor* sensor_ptr = sensor.get(); |
| |
| s.addSensor(type, name, std::move(sensor)); |
| EXPECT_EQ(s.getSensor(name), sensor_ptr); |
| } |
| |
| } // namespace |
| } // namespace pid_control |