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