renameUser: add unit test

Like the previous change, this test added unit test for |renameUser|. To
make it happen, this commit introduces a virtual function
|executeUserModify| which is overridden in unit test (see previous
change for why we need such overriding).

Tested: unit test passed.

Signed-off-by: Nan Zhou <nanzhoumails@gmail.com>
Change-Id: I230a8c12fd6c86d0fccfc00872eff647473c1e94
diff --git a/user_mgr.cpp b/user_mgr.cpp
index 37116f6..8656e66 100644
--- a/user_mgr.cpp
+++ b/user_mgr.cpp
@@ -338,9 +338,7 @@
                                 usersList[userName].get()->userGroups());
     try
     {
-        std::string newHomeDir = "/home/" + newUserName;
-        executeCmd("/usr/sbin/usermod", "-l", newUserName.c_str(),
-                   userName.c_str(), "-d", newHomeDir.c_str(), "-m");
+        executeUserRename(userName.c_str(), newUserName.c_str());
     }
     catch (const InternalFailure& e)
     {
@@ -1327,5 +1325,13 @@
     executeCmd("/usr/sbin/userdel", userName, "-r");
 }
 
+void UserMgr::executeUserRename(const char* userName, const char* newUserName)
+{
+    std::string newHomeDir = "/home/";
+    newHomeDir += newUserName;
+    executeCmd("/usr/sbin/usermod", "-l", newUserName, userName, "-d",
+               newHomeDir.c_str(), "-m");
+}
+
 } // namespace user
 } // namespace phosphor