blob: b5b67c718bfba5bc1803983736e67263a62002ca [file] [log] [blame]
#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