firmware: add handler for static layout
Add static layout handler.
Change-Id: I5c4cfe9782d59d32b16556e1d82b468c119eeb76
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/test/firmware_canhandle_unittest.cpp b/test/firmware_canhandle_unittest.cpp
index 2350828..b82ab6a 100644
--- a/test/firmware_canhandle_unittest.cpp
+++ b/test/firmware_canhandle_unittest.cpp
@@ -1,4 +1,5 @@
#include "firmware_handler.hpp"
+#include "image_mock.hpp"
#include <memory>
#include <vector>
@@ -9,7 +10,6 @@
{
TEST(FirmwareHandlerCanHandleTest, VerifyItemsInListAreOk)
{
-
struct ListItem
{
std::string name;
@@ -19,8 +19,15 @@
std::vector<ListItem> items = {
{"asdf", true}, {"nope", false}, {"123123", false}, {"bcdf", true}};
+ ImageHandlerMock imageMock;
+
+ std::vector<HandlerPack> blobs = {
+ {"asdf", &imageMock},
+ {"bcdf", &imageMock},
+ };
+
auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler(
- {"asdf", "bcdf"}, static_cast<uint16_t>(FirmwareUpdateFlags::bt));
+ blobs, static_cast<uint16_t>(FirmwareUpdateFlags::bt));
for (const auto& item : items)
{
diff --git a/test/firmware_handler_unittest.cpp b/test/firmware_handler_unittest.cpp
index 8ef74c1..16395df 100644
--- a/test/firmware_handler_unittest.cpp
+++ b/test/firmware_handler_unittest.cpp
@@ -1,7 +1,9 @@
#include "firmware_handler.hpp"
+#include "image_mock.hpp"
#include <algorithm>
#include <memory>
+#include <vector>
#include <gtest/gtest.h>
@@ -15,7 +17,13 @@
}
TEST(FirmwareHandlerTest, CreateEmptyListVerifyHasHash)
{
- auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler({"asdf"}, 0);
+ ImageHandlerMock imageMock;
+
+ std::vector<HandlerPack> blobs = {
+ {"asdf", &imageMock},
+ };
+
+ auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler(blobs, 0);
auto result = handler->getBlobIds();
EXPECT_EQ(2, result.size());
EXPECT_EQ(2, std::count(result.begin(), result.end(), "asdf") +
diff --git a/test/firmware_stat_unittest.cpp b/test/firmware_stat_unittest.cpp
index b872b16..7d0961b 100644
--- a/test/firmware_stat_unittest.cpp
+++ b/test/firmware_stat_unittest.cpp
@@ -1,6 +1,8 @@
#include "firmware_handler.hpp"
+#include "image_mock.hpp"
#include <memory>
+#include <vector>
#include <gtest/gtest.h>
@@ -15,8 +17,14 @@
* the input for this function.
*/
+ ImageHandlerMock imageMock;
+
+ std::vector<HandlerPack> blobs = {
+ {"asdf", &imageMock},
+ };
+
auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler(
- {"asdf"}, static_cast<uint16_t>(FirmwareUpdateFlags::bt));
+ blobs, static_cast<uint16_t>(FirmwareUpdateFlags::bt));
struct BlobMeta meta;
EXPECT_TRUE(handler->stat("asdf", &meta));
EXPECT_EQ(static_cast<uint16_t>(FirmwareUpdateFlags::bt), meta.blobState);
diff --git a/test/image_mock.hpp b/test/image_mock.hpp
new file mode 100644
index 0000000..4e615b1
--- /dev/null
+++ b/test/image_mock.hpp
@@ -0,0 +1,18 @@
+#pragma once
+
+#include "image_handler.hpp"
+
+#include <gmock/gmock.h>
+
+namespace blobs
+{
+
+class ImageHandlerMock : public ImageHandlerInterface
+{
+ public:
+ virtual ~ImageHandlerMock() = default;
+
+ MOCK_METHOD1(open, bool(const std::string&));
+};
+
+} // namespace blobs