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 16 TEST(VersionHandlerCanHandleTest, VerifyGoodInfoMapPasses) 17 { 18 VersionInfoMap test; 19 std::array blobNames{"blob0", "blob1", "blob2", "blob3"}; 20 for (const auto& blobName : blobNames) 21 { 22 test.try_emplace(blobName, 23 VersionInfoPack(blobName, 24 std::make_unique<VersionActionPack>( 25 CreateTriggerMock()), 26 CreateImageMock())); 27 } 28 auto handler = VersionBlobHandler::create(std::move(test)); 29 EXPECT_NE(handler, nullptr); 30 } 31 32 TEST(VersionCreateHandlerTest, VerifyEmptyInfoMapFails) 33 { 34 VersionInfoMap test; 35 auto handler = VersionBlobHandler::create(std::move(test)); 36 EXPECT_EQ(handler, nullptr); 37 } 38 39 TEST(VersionHandlerCanHandleTest, VerifyInfoMapWithNullActionPackFails) 40 { 41 VersionInfoMap test; 42 test.try_emplace("blob0", 43 VersionInfoPack("blob0", nullptr, CreateImageMock())); 44 auto handler = VersionBlobHandler::create(std::move(test)); 45 EXPECT_EQ(handler, nullptr); 46 } 47 48 TEST(VersionHandlerCanHandleTest, VerifyInfoMapWithNullTriggerableActionFails) 49 { 50 VersionInfoMap test; 51 test.try_emplace( 52 "blob0", 53 VersionInfoPack("blob0", std::make_unique<VersionActionPack>(nullptr), 54 CreateImageMock())); 55 auto handler = VersionBlobHandler::create(std::move(test)); 56 EXPECT_EQ(handler, nullptr); 57 } 58 59 TEST(VersionHandlerCanHandleTest, VerifyInfoMapWithNullImageHandlerFails) 60 { 61 VersionInfoMap test; 62 test.try_emplace( 63 "blob0", 64 VersionInfoPack( 65 "blob0", std::make_unique<VersionActionPack>(CreateTriggerMock()), 66 nullptr)); 67 auto handler = VersionBlobHandler::create(std::move(test)); 68 EXPECT_EQ(handler, nullptr); 69 } 70 } // namespace ipmi_flash 71