diff --git a/test/Makefile.am b/test/Makefile.am
index 64aa6d8..ddd42e6 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -10,7 +10,8 @@
 	remote_logging_test_port \
 	remote_logging_test_config \
 	sdjournal_mock_test \
-	extensions_test
+	extensions_test \
+	elog_update_ts_test
 
 test_cppflags = \
 	-Igtest \
@@ -106,6 +107,13 @@
 	$(top_builddir)/xyz/openbmc_project/Logging/Internal/Manager/server.o
 extensions_test_LDFLAGS = $(test_ldflags)
 
+elog_update_ts_test_CPPFLAGS = $(test_cppflags)
+elog_update_ts_test_CXXFLAGS = $(test_cxxflags)
+elog_update_ts_test_SOURCES = elog_update_ts_test.cpp
+elog_update_ts_test_LDADD = $(test_ldadd)
+elog_update_ts_test_LDFLAGS = \
+	$(test_ldflags)
+
 # TODO Remove once the test-case failure is resolved openbmc/phosphor-logging#11
 XFAIL_TESTS = elog_errorwrap_test
 
diff --git a/test/elog_update_ts_test.cpp b/test/elog_update_ts_test.cpp
new file mode 100644
index 0000000..ece0b80
--- /dev/null
+++ b/test/elog_update_ts_test.cpp
@@ -0,0 +1,73 @@
+#include "config.h"
+
+#include "elog_entry.hpp"
+#include "elog_serialize.hpp"
+#include "log_manager.hpp"
+
+#include <filesystem>
+#include <thread>
+
+#include <gtest/gtest.h>
+
+namespace phosphor
+{
+namespace logging
+{
+namespace test
+{
+
+using namespace std::chrono_literals;
+
+// Test that the update timestamp changes when the resolved property changes
+TEST(TestUpdateTS, testChangeResolved)
+{
+    // Setting resolved will serialize, so need this directory.
+    std::filesystem::create_directory(ERRLOG_PERSIST_PATH);
+
+    auto bus = sdbusplus::bus::new_default();
+    phosphor::logging::internal::Manager manager(bus, OBJ_INTERNAL);
+
+    uint32_t id = 99;
+    uint64_t timestamp{100};
+    std::string message{"test error"};
+    std::string fwLevel{"level42"};
+    std::vector<std::string> testData{"additional", "data"};
+    phosphor::logging::AssociationList associations{};
+
+    Entry elog{bus,
+               std::string(OBJ_ENTRY) + '/' + std::to_string(id),
+               id,
+               timestamp,
+               Entry::Level::Informational,
+               std::move(message),
+               std::move(testData),
+               std::move(associations),
+               fwLevel,
+               manager};
+
+    EXPECT_EQ(elog.timestamp(), elog.updateTimestamp());
+
+    std::this_thread::sleep_for(1ms);
+
+    elog.resolved(true);
+    auto updateTS = elog.updateTimestamp();
+    EXPECT_NE(updateTS, elog.timestamp());
+
+    std::this_thread::sleep_for(1ms);
+
+    elog.resolved(false);
+    EXPECT_NE(updateTS, elog.updateTimestamp());
+    updateTS = elog.updateTimestamp();
+
+    std::this_thread::sleep_for(1ms);
+
+    // No change
+    elog.resolved(false);
+    EXPECT_EQ(updateTS, elog.updateTimestamp());
+
+    std::filesystem::remove_all(ERRLOG_PERSIST_PATH);
+}
+
+} // namespace test
+} // namespace logging
+} // namespace phosphor
diff --git a/test/serialization_test_properties.cpp b/test/serialization_test_properties.cpp
index 8c92024..270f8bc 100644
--- a/test/serialization_test_properties.cpp
+++ b/test/serialization_test_properties.cpp
@@ -38,6 +38,7 @@
     EXPECT_EQ(input->associations(), output->associations());
     EXPECT_EQ(input->version(), output->version());
     EXPECT_EQ(input->purpose(), output->purpose());
+    EXPECT_EQ(input->updateTimestamp(), output->updateTimestamp());
 }
 
 } // namespace test
