I have to unit test my service layer but I don't know how to do it as I am new to SpringMvc.
Here is the method I want to test:
@Override
public String update(String username, User newUserData, BindingResult result, Model model) {
if (result.hasErrors()) {
updateModelData(model, "", result.getAllErrors());
return HOME_VIEW_NAME;
}
User foundUser = this.userRepository.findByUsername(username);
if (foundUser == null) {
throw new UserNotFoundException(username);
}
String queryResult = String.format("UPDATED SUCCESSFULLY: \n Old User: %s", foundUser);
foundUser.setPassword(encryptPassword(newUserData.getPassword()));
foundUser.setStatus(newUserData.getStatus());
queryResult += String.format("New User: %s", foundUser);
this.userRepository.save(foundUser);
updateModelData(model, queryResult, new ArrayList<>());
return HOME_VIEW_NAME;
}
First - I would like to know if it is a good idea to keep the Model
, BindingResult
and return a page in the Service layer? If no, why not?
Second - How should I test this method correctly?
Thank you!