blob: 8454ed0eaa6fccdfb3cba4314da1f4797c4296f8 [file] [log] [blame]
Jason Lingc78bfc82020-11-05 18:58:16 -08001#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
13namespace ipmi_flash
14{
15
16TEST(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
32TEST(VersionCreateHandlerTest, VerifyEmptyInfoMapFails)
33{
34 VersionInfoMap test;
35 auto handler = VersionBlobHandler::create(std::move(test));
36 EXPECT_EQ(handler, nullptr);
37}
38
39TEST(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
48TEST(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
59TEST(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