diff --git a/test/Makefile.am b/test/Makefile.am
index 7da78d8..d9fd289 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -10,9 +10,13 @@
 
 # Run all 'check' test programs
 check_PROGRAMS = \
-	ipmi_starttransfer_unittest
+	ipmi_starttransfer_unittest \
+	ipmi_flashdata_unittest
 
 TESTS = $(check_PROGRAMS)
 
 ipmi_starttransfer_unittest_SOURCES = ipmi_starttransfer_unittest.cpp
 ipmi_starttransfer_unittest_LDADD = $(top_builddir)/ipmi.o
+
+ipmi_flashdata_unittest_SOURCES = ipmi_flashdata_unittest.cpp
+ipmi_flashdata_unittest_LDADD = $(top_builddir)/ipmi.o
diff --git a/test/ipmi_flashdata_unittest.cpp b/test/ipmi_flashdata_unittest.cpp
new file mode 100644
index 0000000..dcb27f6
--- /dev/null
+++ b/test/ipmi_flashdata_unittest.cpp
@@ -0,0 +1,84 @@
+#include "flash-ipmi.hpp"
+#include "ipmi.hpp"
+
+#include "updater_mock.hpp"
+
+#include <cstring>
+#include <gtest/gtest.h>
+
+using ::testing::ElementsAreArray;
+using ::testing::Return;
+using ::testing::StrictMock;
+
+// ipmid.hpp isn't installed where we can grab it and this value is per BMC
+// SoC.
+#define MAX_IPMI_BUFFER 64
+
+TEST(IpmiFlashData, InvalidRequestLengthReturnsFailure)
+{
+    // This request isn't large enough to be well-formed.
+
+    StrictMock<UpdaterMock> updater;
+
+    size_t dataLen;
+    uint8_t request[MAX_IPMI_BUFFER] = {0};
+    uint8_t reply[MAX_IPMI_BUFFER] = {0};
+
+    struct ChunkHdr tx;
+    tx.cmd = FlashSubCmds::flashDataBlock;
+    tx.offset = 0x00;
+    std::memcpy(request, &tx, sizeof(tx));
+
+    dataLen = sizeof(tx) - 1; // It's too small to be a valid packet.
+
+    EXPECT_EQ(IPMI_CC_INVALID, dataBlock(&updater, request, reply, &dataLen));
+}
+
+TEST(IpmiFlashData, NoDataReturnsFailure)
+{
+    // If the request has no data, it's invalid, returns failure.
+
+    StrictMock<UpdaterMock> updater;
+
+    size_t dataLen;
+    uint8_t request[MAX_IPMI_BUFFER] = {0};
+    uint8_t reply[MAX_IPMI_BUFFER] = {0};
+
+    struct ChunkHdr tx;
+    tx.cmd = FlashSubCmds::flashDataBlock;
+    tx.offset = 0x00;
+    std::memcpy(request, &tx, sizeof(tx));
+
+    dataLen = sizeof(tx); // It's only the header, so no data.
+
+    EXPECT_EQ(IPMI_CC_INVALID, dataBlock(&updater, request, reply, &dataLen));
+}
+
+TEST(IpmiFlashData, DataReceivedIsPassedOnOk)
+{
+    // If valid data was passed in, it'll pass it onto the update handler.
+
+    StrictMock<UpdaterMock> updater;
+
+    size_t dataLen;
+    uint8_t request[MAX_IPMI_BUFFER] = {0};
+    uint8_t reply[MAX_IPMI_BUFFER] = {0};
+
+    struct ChunkHdr tx;
+    tx.cmd = FlashSubCmds::flashDataBlock;
+    tx.offset = 0x00;
+    std::memcpy(request, &tx, sizeof(tx));
+
+    uint8_t bytes[] = {0x04, 0x05};
+    std::memcpy(&request[sizeof(struct ChunkHdr)], bytes, sizeof(bytes));
+
+    dataLen = sizeof(struct ChunkHdr) + sizeof(bytes);
+
+    EXPECT_CALL(updater,
+                flashData(0x00, ElementsAreArray(bytes, sizeof(bytes))))
+        .WillOnce(Return(true));
+
+    EXPECT_EQ(IPMI_CC_OK, dataBlock(&updater, request, reply, &dataLen));
+    EXPECT_EQ(sizeof(uint8_t), dataLen);
+    EXPECT_EQ(0, reply[0]);
+}
diff --git a/test/updater_mock.hpp b/test/updater_mock.hpp
index 3c2b5ab..ef0094b 100644
--- a/test/updater_mock.hpp
+++ b/test/updater_mock.hpp
@@ -1,6 +1,7 @@
 #pragma once
 
 #include <gmock/gmock.h>
+#include <vector>
 
 #include "flash-ipmi.hpp"
 
@@ -10,4 +11,5 @@
     virtual ~UpdaterMock() = default;
 
     MOCK_METHOD1(start, bool(uint32_t));
+    MOCK_METHOD2(flashData, bool(uint32_t, const std::vector<uint8_t>&));
 };
