#include "oem/ibm/host-bmc/host_lamp_test.hpp" #include "pldmd/dbus_impl_requester.hpp" #include "test/test_instance_id.hpp" #include #include #include using namespace pldm::led; using ::testing::DoAll; using ::testing::Return; using ::testing::SetArgPointee; class MockLampTest : public HostLampTest { public: MockLampTest(sdbusplus::bus_t& bus, const std::string& objPath, uint8_t mctp_eid, pldm::InstanceIdDb& instanceIdDb, pldm_pdr* repo, pldm::requester::Handler* handler) : HostLampTest(bus, objPath, mctp_eid, instanceIdDb, repo, handler) {} MOCK_METHOD(uint16_t, getEffecterID, (), (override)); MOCK_METHOD(uint8_t, setHostStateEffecter, (uint16_t effecterId), (override)); }; TEST(TestLamp, Asserted) { sdbusplus::bus_t bus = sdbusplus::bus::new_default(); TestInstanceIdDb instanceIdDb; MockLampTest lampTest(bus, "/xyz/openbmc_project/led/groups/host_lamp_test", 0, instanceIdDb, nullptr, nullptr); lampTest.asserted(false); EXPECT_EQ(lampTest.asserted(), false); EXPECT_CALL(lampTest, getEffecterID()) .Times(2) .WillOnce(Return(0)) .WillOnce(Return(1)); EXPECT_CALL(lampTest, setHostStateEffecter(1)).Times(1).WillOnce(Return(0)); ASSERT_THROW(lampTest.asserted(true), sdbusplus::exception::SdBusError); lampTest.asserted(true); EXPECT_EQ(lampTest.asserted(), true); }