diff --git a/test/Makefile.am b/test/Makefile.am
index 350c3a8..4230ce0 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -16,7 +16,8 @@
 	ipmi_starthash_unittest \
 	ipmi_hashdata_unittest \
 	ipmi_hashfinish_unittest \
-	ipmi_validate_unittest
+	ipmi_validate_unittest \
+	ipmi_command_unittest
 
 TESTS = $(check_PROGRAMS)
 
@@ -40,3 +41,6 @@
 
 ipmi_validate_unittest_SOURCES = ipmi_validate_unittest.cpp
 ipmi_validate_unittest_LDADD = $(top_builddir)/ipmi.o
+
+ipmi_command_unittest_SOURCES = ipmi_command_unittest.cpp
+ipmi_command_unittest_LDADD = $(top_builddir)/ipmi.o
diff --git a/test/ipmi_command_unittest.cpp b/test/ipmi_command_unittest.cpp
new file mode 100644
index 0000000..50d1f20
--- /dev/null
+++ b/test/ipmi_command_unittest.cpp
@@ -0,0 +1,42 @@
+#include "ipmi.hpp"
+
+#include <gtest/gtest.h>
+
+namespace
+{
+
+void EqualFunctions(IpmiFlashHandler lhs, IpmiFlashHandler rhs)
+{
+    EXPECT_FALSE(lhs == nullptr);
+    EXPECT_FALSE(rhs == nullptr);
+    ipmi_ret_t (*const* lPtr)(UpdateInterface*, const uint8_t*, uint8_t*,
+                              size_t*) =
+        lhs.target<ipmi_ret_t (*)(UpdateInterface*, const uint8_t*, uint8_t*,
+                                  size_t*)>();
+    ipmi_ret_t (*const* rPtr)(UpdateInterface*, const uint8_t*, uint8_t*,
+                              size_t*) =
+        rhs.target<ipmi_ret_t (*)(UpdateInterface*, const uint8_t*, uint8_t*,
+                                  size_t*)>();
+    EXPECT_TRUE(lPtr);
+    EXPECT_TRUE(rPtr);
+    EXPECT_EQ(*lPtr, *rPtr);
+    return;
+}
+}
+
+TEST(IpmiCommandTest, VerifyCommandReturnsExpected)
+{
+    // Given a subcommand that's valid, make sure it returns the expected
+    // pointer.
+
+    auto result = getCommandHandler(FlashSubCmds::flashHashFinish);
+    EqualFunctions(hashFinish, result);
+}
+
+TEST(IpmiCommandTest, VerifyInvalidCommandReturnsNull)
+{
+    // Given a subcommand that's invalid, make sure it returns the nullptr.
+
+    auto result = getCommandHandler(static_cast<FlashSubCmds>(25));
+    EXPECT_EQ(result, nullptr);
+}
