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