Additional tests on UserService.login and refactor

Changes:
 - Cover `UserService.login` with additional tests
 - Extracted `UserService.afterLogin` code into a separate class to ease testing `login` method