blob: 6a1ffe6f7b6716f1516e857e52f6665fb5813ea1 [file] [log] [blame]
Patrick Venture21be45a2018-11-06 12:08:52 -08001#include "firmware_handler.hpp"
Patrick Venturea78e39f2018-11-06 18:37:06 -08002#include "image_mock.hpp"
Patrick Venture21be45a2018-11-06 12:08:52 -08003
Patrick Venture52854622018-11-06 12:30:00 -08004#include <algorithm>
Patrick Venture21be45a2018-11-06 12:08:52 -08005#include <memory>
Patrick Venturea78e39f2018-11-06 18:37:06 -08006#include <vector>
Patrick Venture21be45a2018-11-06 12:08:52 -08007
8#include <gtest/gtest.h>
9
10namespace blobs
11{
Patrick Venture52854622018-11-06 12:30:00 -080012
13TEST(FirmwareHandlerTest, CreateEmptyListVerifyFails)
Patrick Venture21be45a2018-11-06 12:08:52 -080014{
Patrick Venture1cde5f92018-11-07 08:26:47 -080015 std::vector<DataHandlerPack> data = {
Patrick Venture9158dcf2018-11-08 09:44:28 -080016 {FirmwareBlobHandler::FirmwareUpdateFlags::ipmi, nullptr},
Patrick Venture1cde5f92018-11-07 08:26:47 -080017 };
18
19 auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler({}, data);
20 EXPECT_EQ(handler, nullptr);
21}
22TEST(FirmwareHandlerTest, CreateEmptyDataHandlerListFails)
23{
24 ImageHandlerMock imageMock;
25
26 std::vector<HandlerPack> blobs = {
27 {"asdf", &imageMock},
28 };
29
30 auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler(blobs, {});
Patrick Venture52854622018-11-06 12:30:00 -080031 EXPECT_EQ(handler, nullptr);
32}
33TEST(FirmwareHandlerTest, CreateEmptyListVerifyHasHash)
34{
Patrick Venturea78e39f2018-11-06 18:37:06 -080035 ImageHandlerMock imageMock;
36
37 std::vector<HandlerPack> blobs = {
38 {"asdf", &imageMock},
39 };
Patrick Venture1cde5f92018-11-07 08:26:47 -080040 std::vector<DataHandlerPack> data = {
Patrick Venture9158dcf2018-11-08 09:44:28 -080041 {FirmwareBlobHandler::FirmwareUpdateFlags::ipmi, nullptr},
Patrick Venture1cde5f92018-11-07 08:26:47 -080042 };
Patrick Venturea78e39f2018-11-06 18:37:06 -080043
Patrick Venture1cde5f92018-11-07 08:26:47 -080044 auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler(blobs, data);
Patrick Venture21be45a2018-11-06 12:08:52 -080045 auto result = handler->getBlobIds();
Patrick Venture52854622018-11-06 12:30:00 -080046 EXPECT_EQ(2, result.size());
47 EXPECT_EQ(2, std::count(result.begin(), result.end(), "asdf") +
48 std::count(result.begin(), result.end(),
49 FirmwareBlobHandler::hashBlobID));
Patrick Venture21be45a2018-11-06 12:08:52 -080050}
51} // namespace blobs