xref: /openbmc/phosphor-ipmi-flash/bmc/version-handler/test/version_canhandle_enumerate_unittest.cpp (revision 6ee93c6d0add031e38fdbca093d9458549ca2e73)
1 #include "flags.hpp"
2 #include "image_mock.hpp"
3 #include "triggerable_mock.hpp"
4 #include "util.hpp"
5 #include "version_handler.hpp"
6 
7 #include <array>
8 #include <string>
9 #include <vector>
10 
11 #include <gtest/gtest.h>
12 
13 namespace ipmi_flash
14 {
15 TEST(VersionHandlerCanHandleTest, VerifyGoodInfoMap)
16 {
17     VersionInfoMap test;
18     std::array blobNames{"blob0", "blob1", "blob2", "blob3"};
19     for (const auto& blobName : blobNames)
20     {
21         test.try_emplace(blobName,
22                          VersionInfoPack(blobName,
23                                          std::make_unique<VersionActionPack>(
24                                              CreateTriggerMock()),
25                                          CreateImageMock()));
26     }
27     auto handler = VersionBlobHandler::create(std::move(test));
28     ASSERT_NE(handler, nullptr);
29     for (const auto& blobName : blobNames)
30     {
31         EXPECT_TRUE(handler->canHandleBlob(blobName));
32     }
33 }
34 
35 TEST(VersionHandlerEnumerateTest, VerifyGoodInfoMap)
36 {
37     VersionInfoMap test;
38     std::vector<std::string> blobNames{"blob0", "blob1", "blob2", "blob3"};
39     for (const auto& blobName : blobNames)
40     {
41         test.try_emplace(blobName,
42                          VersionInfoPack(blobName,
43                                          std::make_unique<VersionActionPack>(
44                                              CreateTriggerMock()),
45                                          CreateImageMock()));
46     }
47     auto handler = VersionBlobHandler::create(std::move(test));
48     ASSERT_NE(handler, nullptr);
49     EXPECT_THAT(handler->getBlobIds(),
50                 ::testing::UnorderedElementsAreArray(blobNames));
51 }
52 } // namespace ipmi_flash
53