blob: cfd3a43ac0d8e7716adc41880cb080d30028ea0f [file] [log] [blame]
George Liub49b7d82021-02-08 14:10:17 +08001#include "oem/ibm/host-bmc/host_lamp_test.hpp"
George Liub49b7d82021-02-08 14:10:17 +08002#include "test/test_instance_id.hpp"
3
Pavithra Barithayab3b84b42024-08-23 11:43:57 +05304#include <cstring>
George Liub49b7d82021-02-08 14:10:17 +08005
6#include <gmock/gmock.h>
7#include <gtest/gtest.h>
8
9using namespace pldm::led;
10using ::testing::DoAll;
11using ::testing::Return;
12using ::testing::SetArgPointee;
13
14class MockLampTest : public HostLampTest
15{
16 public:
Patrick Williams39e7b322024-07-16 02:33:27 -050017 MockLampTest(sdbusplus::bus_t& bus, const std::string& objPath,
George Liub49b7d82021-02-08 14:10:17 +080018 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
29TEST(TestLamp, Asserted)
30{
Patrick Williams39e7b322024-07-16 02:33:27 -050031 sdbusplus::bus_t bus = sdbusplus::bus::new_default();
George Liub49b7d82021-02-08 14:10:17 +080032 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}