diff --git a/test/Makefile.am b/test/Makefile.am
new file mode 100644
index 0000000..ac61577
--- /dev/null
+++ b/test/Makefile.am
@@ -0,0 +1,21 @@
+AM_CPPFLAGS = -iquote$(top_srcdir)
+gtest_cflags = $(PTHREAD_CFLAGS)
+gtest_ldadd = -lgtest -lgtest_main -lgmock $(PTHREAD_LIBS)
+
+check_PROGRAMS = logger_test
+
+TESTS = $(check_PROGRAMS)
+
+logger_test_SOURCES = \
+	logger_test.cpp
+logger_test_CXXFLAGS = \
+	$(gtest_cflags) \
+	${PHOSPHOR_DBUS_INTERFACES_CFLAGS} \
+	$(SDBUSPLUS_CFLAGS)
+logger_test_LDFLAGS = \
+	$(OESDK_TESTCASE_FLAGS)
+logger_test_LDADD = \
+	$(gtest_ldadd) \
+	${PHOSPHOR_DBUS_INTERFACES_LIBS} \
+	$(SDBUSPLUS_LIBS) \
+	$(FMT_LIBS)
diff --git a/test/logger_test.cpp b/test/logger_test.cpp
new file mode 100644
index 0000000..c234b4f
--- /dev/null
+++ b/test/logger_test.cpp
@@ -0,0 +1,59 @@
+#include "logger.hpp"
+
+#include <gtest/gtest.h>
+
+using namespace phosphor::fan;
+using namespace std::literals::string_literals;
+
+TEST(LoggerTest, Test)
+{
+    const auto logSize = 5;
+
+    Logger logger{logSize};
+
+    for (int i = 0; i < logSize; i++)
+    {
+        logger.log("Test Message "s + std::to_string(i));
+    }
+
+    auto messages = logger.getLogs();
+
+    ASSERT_EQ(messages.size(), logSize);
+
+    EXPECT_EQ((messages[0][1].get<std::string>()), "Test Message 0");
+    EXPECT_EQ((messages[1][1].get<std::string>()), "Test Message 1");
+    EXPECT_EQ((messages[2][1].get<std::string>()), "Test Message 2");
+    EXPECT_EQ((messages[3][1].get<std::string>()), "Test Message 3");
+    EXPECT_EQ((messages[4][1].get<std::string>()), "Test Message 4");
+
+    // There isn't really a way to verify the timestamp, but
+    // it can at least be printed.
+    for (const auto& msg : messages)
+    {
+        std::cout << "Timestamp: " << msg[0] << "\n";
+    }
+
+    // Add another message, it should purge the first one
+    logger.log("New Message");
+
+    messages = logger.getLogs();
+    ASSERT_EQ(messages.size(), logSize);
+
+    // Check the first and last
+    EXPECT_EQ((messages[0][1].get<std::string>()), "Test Message 1");
+    EXPECT_EQ((messages[4][1].get<std::string>()), "New Message");
+
+    auto path = logger.saveToTempFile();
+    ASSERT_TRUE(std::filesystem::exists(path));
+
+    std::ifstream file{path};
+
+    // check that valid JSON was written
+    auto newJSON = nlohmann::json::parse(file);
+    EXPECT_EQ(newJSON["Logs"].size(), logSize);
+    std::filesystem::remove(path);
+
+    logger.clear();
+    messages = logger.getLogs();
+    EXPECT_TRUE(messages.empty());
+}
