blob: c9685bd402c512063e85be3bdf308f82c3198b60 [file] [log] [blame]
Patrick Venture27ac5822019-05-20 17:39:31 -07001#include "bmc_update_mock.hpp"
Patrick Venture1cde5f92018-11-07 08:26:47 -08002#include "data_mock.hpp"
Patrick Venturedf848ee2018-11-06 15:44:00 -08003#include "firmware_handler.hpp"
Patrick Venturea78e39f2018-11-06 18:37:06 -08004#include "image_mock.hpp"
Patrick Venture7dad86f2019-05-17 08:52:20 -07005#include "util.hpp"
Patrick Venture3ecb3502019-05-17 11:03:51 -07006#include "verification_mock.hpp"
Patrick Venturedf848ee2018-11-06 15:44:00 -08007
Patrick Venturedf848ee2018-11-06 15:44:00 -08008#include <vector>
9
10#include <gtest/gtest.h>
11
Patrick Venture1d5a31c2019-05-20 11:38:22 -070012namespace ipmi_flash
Patrick Venturedf848ee2018-11-06 15:44:00 -080013{
14TEST(FirmwareHandlerCanHandleTest, VerifyItemsInListAreOk)
15{
Patrick Venturedf848ee2018-11-06 15:44:00 -080016 struct ListItem
17 {
18 std::string name;
19 bool expected;
20 };
21
22 std::vector<ListItem> items = {
23 {"asdf", true}, {"nope", false}, {"123123", false}, {"bcdf", true}};
24
Patrick Venturea78e39f2018-11-06 18:37:06 -080025 ImageHandlerMock imageMock;
26
27 std::vector<HandlerPack> blobs = {
Patrick Venture7dad86f2019-05-17 08:52:20 -070028 {hashBlobId, &imageMock},
Patrick Venturea78e39f2018-11-06 18:37:06 -080029 {"asdf", &imageMock},
30 {"bcdf", &imageMock},
31 };
Patrick Venture1cde5f92018-11-07 08:26:47 -080032 std::vector<DataHandlerPack> data = {
Patrick Venture05abf7e2018-11-09 11:02:56 -080033 {FirmwareBlobHandler::UpdateFlags::ipmi, nullptr},
Patrick Venture1cde5f92018-11-07 08:26:47 -080034 };
Patrick Venturea78e39f2018-11-06 18:37:06 -080035
Patrick Venture4eb55952018-11-16 15:36:24 -080036 auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler(
Patrick Venture27ac5822019-05-20 17:39:31 -070037 blobs, data, CreateVerifyMock(), CreateUpdateMock());
Patrick Venturedf848ee2018-11-06 15:44:00 -080038
39 for (const auto& item : items)
40 {
41 EXPECT_EQ(item.expected, handler->canHandleBlob(item.name));
42 }
43}
Patrick Venture1d5a31c2019-05-20 11:38:22 -070044} // namespace ipmi_flash