using System; using Xunit; using CncModels.Dto; using CncModels.Dto.Login; using CncModels.Dto.Machine; namespace CncModels.Tests { /// /// PagedQuery 单元测试:覆盖默认值、偏移计算与自动修正逻辑 /// public class PagedQueryTests { [Fact] /// /// 默认值正确:page=1, pageSize=20, offset=0 /// public void Page_Defaults_Are_Correct() { // Arrange/Act var q = new PagedQuery(); // Assert Assert.Equal(1, q.Page); Assert.Equal(20, q.PageSize); Assert.Equal(0, q.Offset); } [Fact] /// /// 标准赋值:Page=3, PageSize=10 -> Offset=20 /// public void Page_And_PageSize_Normal_Assignments() { // Arrange var q = new PagedQuery { Page = 3, PageSize = 10 }; // Assert Assert.Equal(3, q.Page); Assert.Equal(10, q.PageSize); Assert.Equal(20, q.Offset); } [Fact] /// /// 边界:Page=100, PageSize=20 /// public void Page_Boundary_Normal() { var q = new PagedQuery { Page = 100, PageSize = 20 }; Assert.Equal(100, q.Page); Assert.Equal(20, q.PageSize); Assert.Equal(1980, q.Offset); } [Fact] /// /// 自动修正:Page=0 -> 1 /// public void Page_AutoFix_When_Zero() { var q = new PagedQuery { Page = 0 }; Assert.Equal(1, q.Page); } [Fact] /// /// 自动修正:Page=-5 -> 1 /// public void Page_AutoFix_When_Negative() { var q = new PagedQuery { Page = -5 }; Assert.Equal(1, q.Page); } [Fact] /// /// 自动修正:PageSize=0 -> 20 /// public void PageSize_AutoFix_When_Zero() { var q = new PagedQuery { PageSize = 0 }; Assert.Equal(20, q.PageSize); } [Fact] /// /// 自动修正:PageSize=101 -> 100 /// public void PageSize_AutoFix_When_Over_Max() { var q1 = new PagedQuery { PageSize = 101 }; Assert.Equal(100, q1.PageSize); var q2 = new PagedQuery { PageSize = 999 }; Assert.Equal(100, q2.PageSize); } } }