У меня есть этот класс, который, на самом деле, выполняет только операции над ASP. NET Идентичность.
public class AuthenticationService : IAuthenticationService
{
private readonly ApplicationSignInManager _signInManager;
private readonly ApplicationUserManager _userManager;
private readonly IAuthenticationManager _authManager;
private readonly HttpContextBase _context;
public AuthenticationService(
ApplicationSignInManager signInManager,
ApplicationUserManager userManager,
IAuthenticationManager authManager,
HttpContextBase context)
{
_signInManager = signInManager;
_userManager = userManager;
_authManager = authManager;
_context = context;
}
public async Task<SignInStatus> SignIn(string email, string password)
{
var result = await _signInManager.PasswordSignInAsync(email, password, true, shouldLockout: false);
return result;
}
public async Task<IdentityResult> Register(string email, string password)
{
var user = new AppUser
{
UserName = email,
Email = email,
};
var result = await _userManager.CreateAsync(user, password);
return result;
}
public void SignOut()
{
_authManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
}
public async Task<IdentityResult> ForgotPassword(string email, string newPassword)
{
var user = await _userManager.FindByEmailAsync(email);
string resetToken = await _userManager.GeneratePasswordResetTokenAsync(user.Id);
var result = await _userManager.ResetPasswordAsync(user.Id, resetToken, newPassword);
return result;
}
public async Task<AppUser> GetUserByEmail(string email)
{
var user = await _userManager.FindByEmailAsync(email);
return user;
}
public string GetLoggedInUserId()
{
if(_context.User.Identity.IsAuthenticated)
{
return _context.User.Identity.GetUserId();
}
return string.Empty;
}
}
Я не знаю, внедряю ли я правильные зависимости. Но мой вопрос:
В таком классе, как этот, какой смысл проводить модульное тестирование? Поскольку большинство методов вызывают методы, относящиеся к Identity, и возвращают только результат.
Единственный тест, который кажется правильным, - это то, что происходит, когда я пытаюсь получить идентификатор пользователя, если ни один пользователь не аутентифицирован .