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