1 #include "dbus/dbusactiveread.hpp" 2 3 #include <gmock/gmock.h> 4 #include <gtest/gtest.h> 5 #include <sdbusplus/test/sdbus_mock.hpp> 6 #include <string> 7 8 #include "test/dbushelper_mock.hpp" 9 10 using ::testing::Invoke; 11 using ::testing::NotNull; 12 using ::testing::_; 13 14 TEST(DbusActiveReadTest, BoringConstructorTest) { 15 // Verify we can construct it. 16 17 sdbusplus::SdBusMock sdbus_mock; 18 auto bus_mock = sdbusplus::get_mocked_new(&sdbus_mock); 19 DbusHelperMock helper; 20 std::string path = "/asdf"; 21 std::string service = "asdfasdf.asdfasdf"; 22 23 DbusActiveRead ar(bus_mock, path, service, &helper); 24 } 25 26 TEST(DbusActiveReadTest, Read_VerifyCallsToDbusForValue) { 27 // Verify it calls to get the value from dbus when requested. 28 29 sdbusplus::SdBusMock sdbus_mock; 30 auto bus_mock = sdbusplus::get_mocked_new(&sdbus_mock); 31 DbusHelperMock helper; 32 std::string path = "/asdf"; 33 std::string service = "asdfasdf.asdfasdf"; 34 35 DbusActiveRead ar(bus_mock, path, service, &helper); 36 37 EXPECT_CALL(helper, GetProperties(_, service, path, NotNull())) 38 .WillOnce(Invoke([&](sdbusplus::bus::bus& bus, 39 const std::string& service, 40 const std::string& path, 41 struct SensorProperties* prop) { 42 prop->scale = -3; 43 prop->value = 10000; 44 prop->unit = "x"; 45 })); 46 47 ReadReturn r = ar.read(); 48 EXPECT_EQ(10, r.value); 49 } 50 51 // WARN: GetProperties will raise an exception on failure 52 // Instead of just not updating the value. 53