1b49b7d80SGeorge Liu #include "oem/ibm/host-bmc/host_lamp_test.hpp" 2b49b7d80SGeorge Liu #include "pldmd/dbus_impl_requester.hpp" 3b49b7d80SGeorge Liu #include "test/test_instance_id.hpp" 4b49b7d80SGeorge Liu 5b49b7d80SGeorge Liu #include <string.h> 6b49b7d80SGeorge Liu 7b49b7d80SGeorge Liu #include <gmock/gmock.h> 8b49b7d80SGeorge Liu #include <gtest/gtest.h> 9b49b7d80SGeorge Liu 10b49b7d80SGeorge Liu using namespace pldm::led; 11b49b7d80SGeorge Liu using ::testing::DoAll; 12b49b7d80SGeorge Liu using ::testing::Return; 13b49b7d80SGeorge Liu using ::testing::SetArgPointee; 14b49b7d80SGeorge Liu 15b49b7d80SGeorge Liu class MockLampTest : public HostLampTest 16b49b7d80SGeorge Liu { 17b49b7d80SGeorge Liu public: 18*39e7b32fSPatrick Williams MockLampTest(sdbusplus::bus_t& bus, const std::string& objPath, 19b49b7d80SGeorge Liu uint8_t mctp_eid, pldm::InstanceIdDb& instanceIdDb, 20b49b7d80SGeorge Liu pldm_pdr* repo, 21b49b7d80SGeorge Liu pldm::requester::Handler<pldm::requester::Request>* handler) : 22b49b7d80SGeorge Liu HostLampTest(bus, objPath, mctp_eid, instanceIdDb, repo, handler) 23b49b7d80SGeorge Liu {} 24b49b7d80SGeorge Liu 25b49b7d80SGeorge Liu MOCK_METHOD(uint16_t, getEffecterID, (), (override)); 26b49b7d80SGeorge Liu MOCK_METHOD(uint8_t, setHostStateEffecter, (uint16_t effecterId), 27b49b7d80SGeorge Liu (override)); 28b49b7d80SGeorge Liu }; 29b49b7d80SGeorge Liu 30b49b7d80SGeorge Liu TEST(TestLamp, Asserted) 31b49b7d80SGeorge Liu { 32*39e7b32fSPatrick Williams sdbusplus::bus_t bus = sdbusplus::bus::new_default(); 33b49b7d80SGeorge Liu TestInstanceIdDb instanceIdDb; 34b49b7d80SGeorge Liu 35b49b7d80SGeorge Liu MockLampTest lampTest(bus, "/xyz/openbmc_project/led/groups/host_lamp_test", 36b49b7d80SGeorge Liu 0, instanceIdDb, nullptr, nullptr); 37b49b7d80SGeorge Liu 38b49b7d80SGeorge Liu lampTest.asserted(false); 39b49b7d80SGeorge Liu EXPECT_EQ(lampTest.asserted(), false); 40b49b7d80SGeorge Liu 41b49b7d80SGeorge Liu EXPECT_CALL(lampTest, getEffecterID()) 42b49b7d80SGeorge Liu .Times(2) 43b49b7d80SGeorge Liu .WillOnce(Return(0)) 44b49b7d80SGeorge Liu .WillOnce(Return(1)); 45b49b7d80SGeorge Liu EXPECT_CALL(lampTest, setHostStateEffecter(1)).Times(1).WillOnce(Return(0)); 46b49b7d80SGeorge Liu 47b49b7d80SGeorge Liu ASSERT_THROW(lampTest.asserted(true), sdbusplus::exception::SdBusError); 48b49b7d80SGeorge Liu 49b49b7d80SGeorge Liu lampTest.asserted(true); 50b49b7d80SGeorge Liu EXPECT_EQ(lampTest.asserted(), true); 51b49b7d80SGeorge Liu } 52