using YZWater.Core.Models; namespace YZWater.Core.Tests.Models; public class UserTests { [Fact] public void User_DefaultValues_AreCorrect() { var user = new User(); Assert.Equal(0, user.Id); Assert.Equal(string.Empty, user.UserName); Assert.Equal(string.Empty, user.PasswordHash); Assert.Equal(string.Empty, user.DisplayName); Assert.Equal(UserRole.Viewer, user.Role); Assert.True(user.IsActive); Assert.Null(user.LastLoginTime); } [Fact] public void UserRole_HasCorrectHierarchy() { // 枚举值顺序反映权限递增 Assert.True(UserRole.Admin > UserRole.Engineer); Assert.True(UserRole.Engineer > UserRole.Operator); Assert.True(UserRole.Operator > UserRole.Viewer); } [Fact] public void User_CanSetAllProperties() { var loginTime = new DateTime(2026, 9, 1, 10, 0, 0); var user = new User { Id = 1, UserName = "admin", PasswordHash = "hash123", DisplayName = "管理员", Role = UserRole.Admin, IsActive = true, LastLoginTime = loginTime }; Assert.Equal(1, user.Id); Assert.Equal("admin", user.UserName); Assert.Equal("hash123", user.PasswordHash); Assert.Equal("管理员", user.DisplayName); Assert.Equal(UserRole.Admin, user.Role); Assert.Equal(loginTime, user.LastLoginTime); } }