#include "dbus/dbusactiveread.hpp" #include #include #include #include #include "test/dbushelper_mock.hpp" using ::testing::Invoke; using ::testing::NotNull; using ::testing::_; TEST(DbusActiveReadTest, BoringConstructorTest) { // Verify we can construct it. sdbusplus::SdBusMock sdbus_mock; auto bus_mock = sdbusplus::get_mocked_new(&sdbus_mock); DbusHelperMock helper; std::string path = "/asdf"; std::string service = "asdfasdf.asdfasdf"; DbusActiveRead ar(bus_mock, path, service, &helper); } TEST(DbusActiveReadTest, Read_VerifyCallsToDbusForValue) { // Verify it calls to get the value from dbus when requested. sdbusplus::SdBusMock sdbus_mock; auto bus_mock = sdbusplus::get_mocked_new(&sdbus_mock); DbusHelperMock helper; std::string path = "/asdf"; std::string service = "asdfasdf.asdfasdf"; DbusActiveRead ar(bus_mock, path, service, &helper); EXPECT_CALL(helper, GetProperties(_, service, path, NotNull())) .WillOnce(Invoke([&](sdbusplus::bus::bus& bus, const std::string& service, const std::string& path, struct SensorProperties* prop) { prop->scale = -3; prop->value = 10000; prop->unit = "x"; })); ReadReturn r = ar.read(); EXPECT_EQ(10, r.value); } // WARN: GetProperties will raise an exception on failure // Instead of just not updating the value.