1*7ad45b40SUnive Tien #include "fw-update/firmware_inventory.hpp"
2*7ad45b40SUnive Tien
3*7ad45b40SUnive Tien #include <string>
4*7ad45b40SUnive Tien
5*7ad45b40SUnive Tien #include <gtest/gtest.h>
6*7ad45b40SUnive Tien
7*7ad45b40SUnive Tien using namespace pldm::fw_update;
8*7ad45b40SUnive Tien
9*7ad45b40SUnive Tien class FirmwareInventoryTest : public FirmwareInventory
10*7ad45b40SUnive Tien {
11*7ad45b40SUnive Tien public:
12*7ad45b40SUnive Tien using FirmwareInventory::FirmwareInventory;
getSoftwarePath() const13*7ad45b40SUnive Tien const std::string& getSoftwarePath() const
14*7ad45b40SUnive Tien {
15*7ad45b40SUnive Tien return this->softwarePath;
16*7ad45b40SUnive Tien }
getAssociation() const17*7ad45b40SUnive Tien const SoftwareAssociationDefinitions& getAssociation() const
18*7ad45b40SUnive Tien {
19*7ad45b40SUnive Tien return this->association;
20*7ad45b40SUnive Tien }
getVersion() const21*7ad45b40SUnive Tien const SoftwareVersion& getVersion() const
22*7ad45b40SUnive Tien {
23*7ad45b40SUnive Tien return this->version;
24*7ad45b40SUnive Tien }
25*7ad45b40SUnive Tien };
26*7ad45b40SUnive Tien
TEST(FirmwareInventoryTest,ConstructorSetsProperties)27*7ad45b40SUnive Tien TEST(FirmwareInventoryTest, ConstructorSetsProperties)
28*7ad45b40SUnive Tien {
29*7ad45b40SUnive Tien SoftwareIdentifier softwareIdentifier{1, 100};
30*7ad45b40SUnive Tien std::string expectedSoftwarePath =
31*7ad45b40SUnive Tien "/xyz/openbmc_project/software/PLDM_Device_TestDevice_1234";
32*7ad45b40SUnive Tien std::string expectedSoftwareVersion = "2.3.4";
33*7ad45b40SUnive Tien std::string expectedEndpointPath =
34*7ad45b40SUnive Tien "/xyz/openbmc_project/inventory/system/board/PLDM_Device";
35*7ad45b40SUnive Tien Descriptors firmwareDescriptors;
36*7ad45b40SUnive Tien ComponentInfo firmwareComponentInfo;
37*7ad45b40SUnive Tien SoftwareVersionPurpose expectedPurpose = SoftwareVersionPurpose::Unknown;
38*7ad45b40SUnive Tien
39*7ad45b40SUnive Tien FirmwareInventoryTest inventory(
40*7ad45b40SUnive Tien softwareIdentifier, expectedSoftwarePath, expectedSoftwareVersion,
41*7ad45b40SUnive Tien expectedEndpointPath, firmwareDescriptors, firmwareComponentInfo,
42*7ad45b40SUnive Tien expectedPurpose);
43*7ad45b40SUnive Tien
44*7ad45b40SUnive Tien EXPECT_EQ(inventory.getSoftwarePath(), expectedSoftwarePath);
45*7ad45b40SUnive Tien auto associationTuples = inventory.getAssociation().associations();
46*7ad45b40SUnive Tien ASSERT_FALSE(associationTuples.empty());
47*7ad45b40SUnive Tien EXPECT_EQ(std::get<2>(associationTuples[0]), expectedEndpointPath);
48*7ad45b40SUnive Tien EXPECT_EQ(inventory.getVersion().version(), expectedSoftwareVersion);
49*7ad45b40SUnive Tien EXPECT_EQ(inventory.getVersion().purpose(), expectedPurpose);
50*7ad45b40SUnive Tien }
51