using Application.DTOs; namespace Application.UnitTest.DTOs; public class PagedResultTests { [Fact] public void TotalPages_ShouldCalculateCorrectly_WhenExactDivision() { var paged = new PagedResult { Items = ["a", "b", "c", "d", "e"], TotalCount = 5, PageNumber = 1, PageSize = 5 }; Assert.Equal(1, paged.TotalPages); } [Fact] public void TotalPages_ShouldRoundUp_WhenNotExactDivision() { var paged = new PagedResult { Items = ["a", "b", "c"], TotalCount = 10, PageNumber = 1, PageSize = 3 }; Assert.Equal(4, paged.TotalPages); } [Fact] public void TotalPages_ShouldBeZero_WhenTotalCountIsZero() { var paged = new PagedResult { Items = [], TotalCount = 0, PageNumber = 1, PageSize = 10 }; Assert.Equal(0, paged.TotalPages); } [Fact] public void HasPreviousPage_ShouldBeFalse_WhenOnFirstPage() { var paged = new PagedResult { Items = [], TotalCount = 20, PageNumber = 1, PageSize = 10 }; Assert.False(paged.HasPreviousPage); } [Fact] public void HasPreviousPage_ShouldBeTrue_WhenPastFirstPage() { var paged = new PagedResult { Items = [], TotalCount = 20, PageNumber = 2, PageSize = 10 }; Assert.True(paged.HasPreviousPage); } [Fact] public void HasNext_ShouldBeFalse_WhenOnLastPage() { var paged = new PagedResult { Items = [], TotalCount = 20, PageNumber = 2, PageSize = 10 }; Assert.False(paged.HasNext); } [Fact] public void HasNext_ShouldBeTrue_WhenMorePagesExist() { var paged = new PagedResult { Items = [], TotalCount = 20, PageNumber = 1, PageSize = 10 }; Assert.True(paged.HasNext); } [Fact] public void HasNext_ShouldBeFalse_WhenOnlyOnePage() { var paged = new PagedResult { Items = [], TotalCount = 3, PageNumber = 1, PageSize = 10 }; Assert.False(paged.HasNext); } }