UserTests.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using YZWater.Core.Models;
  2. namespace YZWater.Core.Tests.Models;
  3. public class UserTests
  4. {
  5. [Fact]
  6. public void User_DefaultValues_AreCorrect()
  7. {
  8. var user = new User();
  9. Assert.Equal(0, user.Id);
  10. Assert.Equal(string.Empty, user.UserName);
  11. Assert.Equal(string.Empty, user.PasswordHash);
  12. Assert.Equal(string.Empty, user.DisplayName);
  13. Assert.Equal(UserRole.Viewer, user.Role);
  14. Assert.True(user.IsActive);
  15. Assert.Null(user.LastLoginTime);
  16. }
  17. [Fact]
  18. public void UserRole_HasCorrectHierarchy()
  19. {
  20. // 枚举值顺序反映权限递增
  21. Assert.True(UserRole.Admin > UserRole.Engineer);
  22. Assert.True(UserRole.Engineer > UserRole.Operator);
  23. Assert.True(UserRole.Operator > UserRole.Viewer);
  24. }
  25. [Fact]
  26. public void User_CanSetAllProperties()
  27. {
  28. var loginTime = new DateTime(2026, 9, 1, 10, 0, 0);
  29. var user = new User
  30. {
  31. Id = 1,
  32. UserName = "admin",
  33. PasswordHash = "hash123",
  34. DisplayName = "管理员",
  35. Role = UserRole.Admin,
  36. IsActive = true,
  37. LastLoginTime = loginTime
  38. };
  39. Assert.Equal(1, user.Id);
  40. Assert.Equal("admin", user.UserName);
  41. Assert.Equal("hash123", user.PasswordHash);
  42. Assert.Equal("管理员", user.DisplayName);
  43. Assert.Equal(UserRole.Admin, user.Role);
  44. Assert.Equal(loginTime, user.LastLoginTime);
  45. }
  46. }