diff --git a/http/ut/router_test.cpp b/http/ut/router_test.cpp
index f4c9e70..a08a810 100644
--- a/http/ut/router_test.cpp
+++ b/http/ut/router_test.cpp
@@ -12,34 +12,39 @@
 
 #include <gtest/gtest.h>
 
+namespace crow
+{
+namespace
+{
+
+using ::crow::black_magic::getParameterTag;
+
 TEST(Router, AllowHeader)
 {
     // Callback handler that does nothing
-    auto nullCallback = [](const crow::Request&,
+    auto nullCallback = [](const Request&,
                            const std::shared_ptr<bmcweb::AsyncResp>&) {};
 
-    crow::Router router;
+    Router router;
     std::error_code ec;
 
     constexpr const std::string_view url = "/foo";
 
-    crow::Request req{{boost::beast::http::verb::get, url, 11}, ec};
+    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))
+    router.newRuleTagged<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))
+    router.newRuleTagged<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
+}
+} // namespace
+} // namespace crow
\ No newline at end of file
