Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

UsersControllerTest.cs 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. using AutoMapper;
  2. using Diligent.WebAPI.Business.MappingProfiles;
  3. using Diligent.WebAPI.Contracts.DTOs;
  4. using Diligent.WebAPI.Contracts.DTOs.User;
  5. using Diligent.WebAPI.Data.Entities;
  6. namespace Diligent.WebAPI.Tests.Controllers
  7. {
  8. public class UsersControllerTest
  9. {
  10. private IUserService _userService = Substitute.For<IUserService>();
  11. private readonly List<User> _users;
  12. private readonly User _user;
  13. private readonly IMapper _mapper;
  14. public UsersControllerTest()
  15. {
  16. _user = new User
  17. {
  18. Id = 1,
  19. PasswordHash = "AQAAAAEAACcQAAAAEJnWVhD/qftzqJq5XOUD0BxEBEwhd7vS46HeDD+9cwEsqO9ev9xEORJVjmFMASUGJg==",
  20. FirstName = "Dzenis",
  21. LastName = "Dzenis",
  22. UserName = "dzenis",
  23. NormalizedUserName = "DZENIS",
  24. Email = "dzenis@dilig.net",
  25. NormalizedEmail = "DZENIS@DILIG.NET",
  26. EmailConfirmed = false,
  27. IsEnabled = true,
  28. AccessFailedCount = 0,
  29. SecurityStamp = "2D3XPK2P5MAKO377AWFU3T4ZFFYTSOJX",
  30. ConcurrencyStamp = "2D3XPK2P5MAKO377AWFU3T4ZFFYTSOJX",
  31. };
  32. _users = new List<User>
  33. {
  34. _user,
  35. };
  36. // configure mapper
  37. var configuration = new MapperConfiguration(cfg => cfg.AddProfiles(
  38. new List<Profile>
  39. {
  40. new UserMappingProfile(),
  41. }));
  42. _mapper = new Mapper(configuration);
  43. }
  44. [Fact]
  45. public async Task GetUsers_ShouldReturn_200OK()
  46. {
  47. _userService.GetAll().Returns(_users);
  48. UsersController usersController = new(_userService, _mapper);
  49. var result = await usersController.GetAll();
  50. (result as OkObjectResult).StatusCode.Should().Be(200);
  51. }
  52. [Fact]
  53. public async Task GetUserById_ShouldReturn_200OK()
  54. {
  55. _userService.GetById(Arg.Any<int>()).Returns(_user);
  56. UsersController usersController = new(_userService, _mapper);
  57. var result = await usersController.GetUser(1);
  58. (result as OkObjectResult).StatusCode.Should().Be(200);
  59. }
  60. [Fact]
  61. public async Task GetUserById_ShouldReturn404_WhenUserDoesNotExist()
  62. {
  63. _userService.GetById(Arg.Any<int>()).Returns<User>(x => null);
  64. UsersController usersController = new(_userService, _mapper);
  65. var result = await usersController.GetUser(1);
  66. (result as ObjectResult).StatusCode.Should().Be(400);
  67. }
  68. [Fact]
  69. public async Task InviteUser_ShouldReturn200_WhenUserDoesNotExist()
  70. {
  71. _userService.SendRegistrationLink(Arg.Any<InviteDTO>()).Returns(x => new ServiceResponseDTO<object>
  72. {
  73. Data = new { Message = "Link has been sent!" }
  74. });
  75. UsersController usersController = new(_userService, _mapper);
  76. var result = await usersController.InviteUser(new InviteDTO());
  77. (result as OkObjectResult).StatusCode.Should().Be(200);
  78. }
  79. [Fact]
  80. public async Task InviteUser_ShouldReturn400_WhenUserExists()
  81. {
  82. _userService.SendRegistrationLink(Arg.Any<InviteDTO>()).Returns(x => new ServiceResponseDTO<object>
  83. {
  84. IsError = true,
  85. });
  86. UsersController usersController = new(_userService, _mapper);
  87. var result = await usersController.InviteUser(new InviteDTO());
  88. (result as BadRequestObjectResult).StatusCode.Should().Be(400);
  89. }
  90. [Fact]
  91. public async Task DeleteUser_ShouldReturn200_WhenUserExists()
  92. {
  93. _userService.GetById(Arg.Any<int>()).Returns(_user);
  94. UsersController usersController = new(_userService, _mapper);
  95. var result = await usersController.DeleteUser(1);
  96. (result as ObjectResult).StatusCode.Should().Be(200);
  97. }
  98. [Fact]
  99. public async Task DeleteUser_ShouldReturn400_WhenUserDoesNotExist()
  100. {
  101. _userService.GetById(Arg.Any<int>()).Returns<User>(x => null);
  102. UsersController usersController = new(_userService, _mapper);
  103. var result = await usersController.DeleteUser(1);
  104. (result as ObjectResult).StatusCode.Should().Be(400);
  105. }
  106. }
  107. }