blob: beb17ec2b05851bfa073f7fdae78d17bce5b5949 [file]
#include "fw-update/aggregate_update_manager.hpp"
#include "fw-update/firmware_inventory.hpp"
#include "test/test_instance_id.hpp"
#include <string>
#include <gtest/gtest.h>
using namespace pldm::fw_update;
using namespace std::chrono;
class FirmwareInventoryTest : public FirmwareInventory
{
public:
using FirmwareInventory::FirmwareInventory;
const std::string& getSoftwarePath() const
{
return this->softwarePath;
}
const SoftwareAssociationDefinitions& getAssociation() const
{
return this->association;
}
const SoftwareVersion& getVersion() const
{
return this->version;
}
};
TEST(FirmwareInventoryTest, ConstructorSetsProperties)
{
SoftwareIdentifier softwareIdentifier{1, 100};
std::string expectedSoftwarePath =
"/xyz/openbmc_project/software/PLDM_Device_TestDevice";
std::string expectedSoftwareHash = "1234";
std::string expectedSoftwareVersion = "2.3.4";
std::string expectedEndpointPath =
"/xyz/openbmc_project/inventory/system/board/PLDM_Device";
Descriptors firmwareDescriptors;
DescriptorMap firmwareDescriptorMap{};
ComponentInfo firmwareComponentInfo;
ComponentInfoMap firmwareComponentInfoMap{};
SoftwareVersionPurpose expectedPurpose = SoftwareVersionPurpose::Unknown;
Event event(sdeventplus::Event::get_default());
TestInstanceIdDb instanceIdDb;
requester::Handler<requester::Request> handler(
nullptr, event, instanceIdDb, false, seconds(1), 2, milliseconds(100));
AggregateUpdateManager updateManager(
event, handler, instanceIdDb, firmwareDescriptorMap,
firmwareComponentInfoMap);
FirmwareInventoryTest inventory(
softwareIdentifier, expectedSoftwarePath, expectedSoftwareHash,
expectedSoftwareVersion, expectedEndpointPath, expectedPurpose);
EXPECT_EQ(inventory.getSoftwarePath(),
std::format("{}_{}", expectedSoftwarePath, expectedSoftwareHash));
auto associationTuples = inventory.getAssociation().associations();
ASSERT_FALSE(associationTuples.empty());
EXPECT_EQ(std::get<2>(associationTuples[0]), expectedEndpointPath);
EXPECT_EQ(inventory.getVersion().version(), expectedSoftwareVersion);
EXPECT_EQ(inventory.getVersion().purpose(), expectedPurpose);
}