UserControllerTest.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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 System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using XF.Domain.Repository;
  12. namespace Hotline.Application.Tests.Controller;
  13. public class UserControllerTest
  14. {
  15. private readonly UserController _userController;
  16. private readonly IRepository<Account> _accountRepository;
  17. public UserControllerTest(UserController userController, IRepository<Account> accountRepository)
  18. {
  19. _userController = userController;
  20. _userController.ControllerContext = new ControllerContext
  21. {
  22. HttpContext = new DefaultHttpContext()
  23. };
  24. _accountRepository = accountRepository;
  25. }
  26. [Fact]
  27. public async Task UnlockUser_Test()
  28. {
  29. var user = await _accountRepository.Queryable()
  30. .Where(m => m.LockoutEnd == null).FirstAsync();
  31. user.ShouldNotBeNull();
  32. user.LockoutEnd = DateTime.Now.AddDays(1);
  33. await _accountRepository.UpdateAsync(user);
  34. user = await _accountRepository.GetAsync(user.Id);
  35. user.LockoutEnd.ShouldNotBeNull();
  36. await _userController.UnlockUserAsync(user.Id);
  37. user = await _accountRepository.GetAsync(user.Id);
  38. user.LockoutEnd.ShouldBeNull();
  39. }
  40. }