UserControllerTest.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Hotline.Api.Controllers;
  2. using Hotline.Identity.Accounts;
  3. using Microsoft.AspNetCore.Http;
  4. using Microsoft.AspNetCore.Mvc;
  5. using Shouldly;
  6. using XF.Domain.Repository;
  7. namespace Hotline.Tests.Controller;
  8. public class UserControllerTest
  9. {
  10. private readonly UserController _userController;
  11. private readonly IRepository<Account> _accountRepository;
  12. public UserControllerTest(UserController userController, IRepository<Account> accountRepository)
  13. {
  14. _userController = userController;
  15. _userController.ControllerContext = new ControllerContext
  16. {
  17. HttpContext = new DefaultHttpContext()
  18. };
  19. _accountRepository = accountRepository;
  20. }
  21. [Fact]
  22. public async Task UnlockUser_Test()
  23. {
  24. var user = await _accountRepository.Queryable()
  25. .Where(m => m.LockoutEnd == null).FirstAsync();
  26. user.ShouldNotBeNull();
  27. user.LockoutEnd = DateTime.Now.AddDays(1);
  28. await _accountRepository.UpdateAsync(user);
  29. user = await _accountRepository.GetAsync(user.Id);
  30. user.LockoutEnd.ShouldNotBeNull();
  31. await _userController.UnlockUserAsync(user.Id);
  32. user = await _accountRepository.GetAsync(user.Id);
  33. user.LockoutEnd.ShouldBeNull();
  34. }
  35. }