blob: eed26cd2bf63dccb2b4b9c15b709d1216f1fbed7 [file] [log] [blame]
#include "sensors/manager.hpp"
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <sdbusplus/test/sdbus_mock.hpp>
#include "test/sensor_mock.hpp"
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(std::move(bus_mock_passive), std::move(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(std::move(bus_mock_passive), std::move(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);
}