diff --git a/cleanup/test/Makefile.am b/cleanup/test/Makefile.am
new file mode 100644
index 0000000..4c347ba
--- /dev/null
+++ b/cleanup/test/Makefile.am
@@ -0,0 +1,18 @@
+AM_CPPFLAGS = -I$(top_srcdir)/ \
+	-I$(top_srcdir)/cleanup/ \
+	$(GTEST_CFLAGS) \
+	$(GMOCK_CFLAGS)
+AM_CXXFLAGS = \
+	$(PHOSPHOR_LOGGING_CFLAGS)
+AM_LDFLAGS = \
+	$(GTEST_LIBS) \
+	$(GMOCK_LIBS) \
+	-lgmock_main \
+	$(OESDK_TESTCASE_FLAGS) \
+	$(PHOSPHOR_LOGGING_LIBS)
+
+check_PROGRAMS = cleanup_handler_unittest
+TESTS = $(check_PROGRAMS)
+
+cleanup_handler_unittest_SOURCES = cleanup_handler_unittest.cpp
+cleanup_handler_unittest_LDADD = $(top_builddir)/cleanup/libfirmwarecleanupblob_common.la
diff --git a/cleanup/test/cleanup_handler_unittest.cpp b/cleanup/test/cleanup_handler_unittest.cpp
new file mode 100644
index 0000000..5191234
--- /dev/null
+++ b/cleanup/test/cleanup_handler_unittest.cpp
@@ -0,0 +1,42 @@
+#include "cleanup.hpp"
+#include "filesystem_mock.hpp"
+#include "util.hpp"
+
+#include <string>
+#include <vector>
+
+#include <gtest/gtest.h>
+
+namespace ipmi_flash
+{
+namespace
+{
+
+using ::testing::Return;
+using ::testing::UnorderedElementsAreArray;
+
+class CleanupHandlerTest : public ::testing::Test
+{
+  protected:
+    std::vector<std::string> blobs = {"abcd", "efgh"};
+    FileSystemMock mock;
+    FileCleanupHandler handler{cleanupBlobId, blobs, &mock};
+};
+
+TEST_F(CleanupHandlerTest, GetBlobListReturnsExpectedList)
+{
+    EXPECT_TRUE(handler.canHandleBlob(cleanupBlobId));
+    EXPECT_THAT(handler.getBlobIds(),
+                UnorderedElementsAreArray({cleanupBlobId}));
+}
+
+TEST_F(CleanupHandlerTest, CommitShouldDeleteFiles)
+{
+    EXPECT_CALL(mock, remove("abcd")).WillOnce(Return());
+    EXPECT_CALL(mock, remove("efgh")).WillOnce(Return());
+
+    EXPECT_TRUE(handler.commit(1, {}));
+}
+
+} // namespace
+} // namespace ipmi_flash
diff --git a/cleanup/test/filesystem_mock.hpp b/cleanup/test/filesystem_mock.hpp
new file mode 100644
index 0000000..76a45c1
--- /dev/null
+++ b/cleanup/test/filesystem_mock.hpp
@@ -0,0 +1,17 @@
+#pragma once
+
+#include "fs.hpp"
+
+#include <string>
+
+#include <gmock/gmock.h>
+
+namespace ipmi_flash
+{
+
+class FileSystemMock : public FileSystemInterface
+{
+  public:
+    MOCK_CONST_METHOD1(remove, void(const std::string&));
+};
+} // namespace ipmi_flash
