diff --git a/test/ldap_config_test.cpp b/test/ldap_config_test.cpp
index 5606af5..8168245 100644
--- a/test/ldap_config_test.cpp
+++ b/test/ldap_config_test.cpp
@@ -1,20 +1,22 @@
 #include "config.h"
+
 #include "phosphor-ldap-config/ldap_config.hpp"
 #include "phosphor-ldap-config/ldap_config_mgr.hpp"
 
-#include <phosphor-logging/log.hpp>
+#include <sys/types.h>
+
 #include <phosphor-logging/elog-errors.hpp>
+#include <phosphor-logging/log.hpp>
 #include <sdbusplus/bus.hpp>
 #include <xyz/openbmc_project/Common/error.hpp>
 #include <xyz/openbmc_project/User/Common/error.hpp>
-#include <sdbusplus/bus.hpp>
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
 
 #include <filesystem>
 #include <fstream>
 #include <string>
-#include <sys/types.h>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 namespace phosphor
 {
@@ -34,8 +36,7 @@
 {
   public:
     TestLDAPConfig() : bus(sdbusplus::bus::new_default())
-    {
-    }
+    {}
     void SetUp() override
     {
         using namespace phosphor::ldap;
@@ -80,8 +81,7 @@
                   const char* caCertFile, const char* certFile) :
         phosphor::ldap::ConfigMgr(bus, path, filePath, dbusPersistentFile,
                                   caCertFile, certFile)
-    {
-    }
+    {}
     MOCK_METHOD1(restartService, void(const std::string& service));
     MOCK_METHOD1(stopService, void(const std::string& service));
     std::unique_ptr<Config>& getOpenLdapConfigPtr()
diff --git a/test/ldap_mapper_test.cpp b/test/ldap_mapper_test.cpp
index a044b64..275ebe5 100644
--- a/test/ldap_mapper_test.cpp
+++ b/test/ldap_mapper_test.cpp
@@ -1,14 +1,19 @@
-#include <gtest/gtest.h>
-#include <filesystem>
-#include <stdlib.h>
-#include <sdbusplus/bus.hpp>
+#include "config.h"
+
 #include "phosphor-ldap-mapper/ldap_mapper_entry.hpp"
 #include "phosphor-ldap-mapper/ldap_mapper_mgr.hpp"
 #include "phosphor-ldap-mapper/ldap_mapper_serialize.hpp"
+
+#include <stdlib.h>
+
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/test/sdbus_mock.hpp>
 #include <xyz/openbmc_project/Common/error.hpp>
 #include <xyz/openbmc_project/User/Common/error.hpp>
-#include "config.h"
-#include <sdbusplus/test/sdbus_mock.hpp>
+
+#include <filesystem>
+
+#include <gtest/gtest.h>
 
 namespace phosphor
 {
@@ -21,8 +26,7 @@
     sdbusplus::SdBusMock sdbusMock;
 
     TestSerialization() : bus(sdbusplus::get_mocked_new(&sdbusMock))
-    {
-    }
+    {}
 
     void SetUp() override
     {
diff --git a/test/mock_user_mgr.hpp b/test/mock_user_mgr.hpp
index ea7c5f6..ec47909 100644
--- a/test/mock_user_mgr.hpp
+++ b/test/mock_user_mgr.hpp
@@ -1,4 +1,5 @@
 #include "user_mgr.hpp"
+
 #include <gmock/gmock.h>
 
 namespace phosphor
@@ -13,8 +14,7 @@
   public:
     MockManager(sdbusplus::bus::bus& bus, const char* path) :
         UserMgr(bus, objpath)
-    {
-    }
+    {}
 
     MOCK_METHOD1(getLdapGroupName, std::string(const std::string& userName));
     MOCK_METHOD0(getPrivilegeMapperObject, DbusUserObj());
diff --git a/test/user_mgr_test.cpp b/test/user_mgr_test.cpp
index 88911cd..818a18b 100644
--- a/test/user_mgr_test.cpp
+++ b/test/user_mgr_test.cpp
@@ -1,9 +1,12 @@
 #include "mock_user_mgr.hpp"
-#include <xyz/openbmc_project/User/Common/error.hpp>
-#include <xyz/openbmc_project/Common/error.hpp>
-#include <gtest/gtest.h>
-#include <exception>
+
 #include <sdbusplus/test/sdbus_mock.hpp>
+#include <xyz/openbmc_project/Common/error.hpp>
+#include <xyz/openbmc_project/User/Common/error.hpp>
+
+#include <exception>
+
+#include <gtest/gtest.h>
 
 namespace phosphor
 {
@@ -24,12 +27,11 @@
 
     TestUserMgr() :
         bus(sdbusplus::get_mocked_new(&sdbusMock)), mockManager(bus, objpath)
-    {
-    }
+    {}
 
-    void createLocalUser(const std::string &userName,
+    void createLocalUser(const std::string& userName,
                          std::vector<std::string> groupNames,
-                         const std::string &priv, bool enabled)
+                         const std::string& priv, bool enabled)
     {
         std::string userObj = std::string(usersObjPath) + "/" + userName;
         mockManager.usersList.emplace(
diff --git a/test/utils_test.cpp b/test/utils_test.cpp
index cded321..d312685 100644
--- a/test/utils_test.cpp
+++ b/test/utils_test.cpp
@@ -1,7 +1,9 @@
 #include "phosphor-ldap-config/utils.hpp"
-#include <netinet/in.h>
-#include <gtest/gtest.h>
+
 #include <ldap.h>
+#include <netinet/in.h>
+
+#include <gtest/gtest.h>
 
 namespace phosphor
 {
