diff --git a/http/ut/router_test.cpp b/http/ut/router_test.cpp
new file mode 100644
index 0000000..da0f72c
--- /dev/null
+++ b/http/ut/router_test.cpp
@@ -0,0 +1,37 @@
+#include "http_request.hpp"
+#include "routing.hpp"
+
+#include "gmock/gmock.h"
+#include "gtest/gtest.h"
+
+TEST(Router, AllowHeader)
+{
+    // Callback handler that does nothing
+    auto nullCallback = [](const crow::Request&,
+                           const std::shared_ptr<bmcweb::AsyncResp>&) {};
+
+    crow::Router router;
+    std::error_code ec;
+
+    constexpr const std::string_view url = "/foo";
+
+    crow::Request req{{boost::beast::http::verb::get, url, 11}, ec};
+
+    // No route should return no methods.
+    router.validate();
+    EXPECT_EQ(router.buildAllowHeader(req), "");
+
+    router
+        .newRuleTagged<crow::black_magic::getParameterTag(url)>(
+            std::string(url))
+        .methods(boost::beast::http::verb::get)(nullCallback);
+    router.validate();
+    EXPECT_EQ(router.buildAllowHeader(req), "GET");
+
+    router
+        .newRuleTagged<crow::black_magic::getParameterTag(url)>(
+            std::string(url))
+        .methods(boost::beast::http::verb::patch)(nullCallback);
+    router.validate();
+    EXPECT_EQ(router.buildAllowHeader(req), "GET, PATCH");
+}
\ No newline at end of file
