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