bmc: add ActionPack notion to bundle actions

Each firmware type will provide its own set of action implementations
for each step, preparation, verification, and update.

Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: Id6409ac356a74e9094272b37709861e2a33d9862
diff --git a/bmc/test/triggerable_mock.hpp b/bmc/test/triggerable_mock.hpp
index c485d8e..8c83d52 100644
--- a/bmc/test/triggerable_mock.hpp
+++ b/bmc/test/triggerable_mock.hpp
@@ -1,7 +1,11 @@
 #pragma once
 
+#include "firmware_handler.hpp"
 #include "status.hpp"
 
+#include <memory>
+#include <string>
+
 #include <gtest/gtest.h>
 
 namespace ipmi_flash
@@ -21,4 +25,16 @@
     return std::make_unique<TriggerMock>();
 }
 
+ActionMap CreateActionMap(const std::string& blobPath)
+{
+    std::unique_ptr<ActionPack> actionPack = std::make_unique<ActionPack>();
+    actionPack->preparation = std::move(CreateTriggerMock());
+    actionPack->verification = std::move(CreateTriggerMock());
+    actionPack->update = std::move(CreateTriggerMock());
+
+    ActionMap map;
+    map[blobPath] = std::move(actionPack);
+    return map;
+}
+
 } // namespace ipmi_flash