diff --git a/flash-ipmi.cpp b/flash-ipmi.cpp
index 07b9b9a..42333dd 100644
--- a/flash-ipmi.cpp
+++ b/flash-ipmi.cpp
@@ -129,7 +129,13 @@
 
 bool FlashUpdate::flashFinish()
 {
-    /* TODO: implement. */
+    /* If it's open, close it. */
+    if (flashFd)
+    {
+        closeFile(&flashFd);
+        return true;
+    }
+
     return false;
 }
 
diff --git a/test/Makefile.am b/test/Makefile.am
index 43040a1..d0b8b2a 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -21,7 +21,8 @@
 	ipmi_validate_unittest \
 	ipmi_command_unittest \
 	flash_start_unittest \
-	flash_flashdata_unittest
+	flash_flashdata_unittest \
+	flash_flashfinish_unittest
 
 TESTS = $(check_PROGRAMS)
 
@@ -60,3 +61,6 @@
 
 flash_flashdata_unittest_SOURCES = flash_flashdata_unittest.cpp
 flash_flashdata_unittest_LDADD = $(top_builddir)/flash-ipmi.o $(SDBUSPLUS_LIBS)
+
+flash_flashfinish_unittest_SOURCES = flash_flashfinish_unittest.cpp
+flash_flashfinish_unittest_LDADD = $(top_builddir)/flash-ipmi.o $(SDBUSPLUS_LIBS)
diff --git a/test/flash_flashfinish_unittest.cpp b/test/flash_flashfinish_unittest.cpp
new file mode 100644
index 0000000..bdddd5a
--- /dev/null
+++ b/test/flash_flashfinish_unittest.cpp
@@ -0,0 +1,72 @@
+#include "flash-ipmi.hpp"
+
+#include <cstdio>
+#include <cstring>
+#include <gtest/gtest.h>
+#include <string>
+#include <vector>
+
+#define THIRTYTWO_MIB 33554432
+
+class FlashIpmiFlashDataTest : public ::testing::Test
+{
+  protected:
+    FlashIpmiFlashDataTest() = default;
+
+    void SetUp() override
+    {
+        name = std::tmpnam(nullptr);
+    }
+    void TearDown() override
+    {
+        (void)std::remove(name.c_str());
+    }
+
+    std::string name;
+};
+
+TEST_F(FlashIpmiFlashDataTest, CalledOutOfSequenceFails)
+{
+    // Verify that there is sanity checking
+    std::vector<uint8_t> bytes = {0xaa, 0x55};
+
+    FlashUpdate updater(name);
+    EXPECT_FALSE(updater.flashFinish());
+
+    // Verify the file doesn't exist.
+    auto file = std::fopen(name.c_str(), "r");
+    EXPECT_FALSE(file);
+}
+
+TEST_F(FlashIpmiFlashDataTest, CalledInSequenceSucceeds)
+{
+    // Verify that under normal usage it closes the file.
+    std::vector<uint8_t> bytes = {0xaa, 0x55};
+
+    FlashUpdate updater(name);
+    updater.start(THIRTYTWO_MIB);
+    EXPECT_TRUE(updater.flashFinish());
+
+    // Verify we can open the file, so we know it didn't get deleted.
+    auto file = std::fopen(name.c_str(), "r");
+    EXPECT_TRUE(file);
+    std::fclose(file);
+}
+
+TEST_F(FlashIpmiFlashDataTest, CalledTwiceFails)
+{
+    // Verify that under normal usage it closes the file, and therefore cannot
+    // be closed twice.
+    std::vector<uint8_t> bytes = {0xaa, 0x55};
+
+    FlashUpdate updater(name);
+    updater.start(THIRTYTWO_MIB);
+    EXPECT_TRUE(updater.flashFinish());
+
+    EXPECT_FALSE(updater.flashFinish());
+
+    // Verify we can open the file, so we know it didn't get deleted.
+    auto file = std::fopen(name.c_str(), "r");
+    EXPECT_TRUE(file);
+    std::fclose(file);
+}
