111 lines
2.5 KiB
C#
111 lines
2.5 KiB
C#
using Application.DTOs;
|
|
|
|
namespace Application.UnitTest.DTOs;
|
|
|
|
public class PagedResultTests
|
|
{
|
|
[Fact]
|
|
public void TotalPages_ShouldCalculateCorrectly_WhenExactDivision()
|
|
{
|
|
var paged = new PagedResult<string>
|
|
{
|
|
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<string>
|
|
{
|
|
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<string>
|
|
{
|
|
Items = [],
|
|
TotalCount = 0,
|
|
PageNumber = 1,
|
|
PageSize = 10
|
|
};
|
|
Assert.Equal(0, paged.TotalPages);
|
|
}
|
|
|
|
[Fact]
|
|
public void HasPreviousPage_ShouldBeFalse_WhenOnFirstPage()
|
|
{
|
|
var paged = new PagedResult<string>
|
|
{
|
|
Items = [],
|
|
TotalCount = 20,
|
|
PageNumber = 1,
|
|
PageSize = 10
|
|
};
|
|
Assert.False(paged.HasPreviousPage);
|
|
}
|
|
|
|
[Fact]
|
|
public void HasPreviousPage_ShouldBeTrue_WhenPastFirstPage()
|
|
{
|
|
var paged = new PagedResult<string>
|
|
{
|
|
Items = [],
|
|
TotalCount = 20,
|
|
PageNumber = 2,
|
|
PageSize = 10
|
|
};
|
|
Assert.True(paged.HasPreviousPage);
|
|
}
|
|
|
|
[Fact]
|
|
public void HasNext_ShouldBeFalse_WhenOnLastPage()
|
|
{
|
|
var paged = new PagedResult<string>
|
|
{
|
|
Items = [],
|
|
TotalCount = 20,
|
|
PageNumber = 2,
|
|
PageSize = 10
|
|
};
|
|
Assert.False(paged.HasNext);
|
|
}
|
|
|
|
[Fact]
|
|
public void HasNext_ShouldBeTrue_WhenMorePagesExist()
|
|
{
|
|
var paged = new PagedResult<string>
|
|
{
|
|
Items = [],
|
|
TotalCount = 20,
|
|
PageNumber = 1,
|
|
PageSize = 10
|
|
};
|
|
Assert.True(paged.HasNext);
|
|
}
|
|
|
|
[Fact]
|
|
public void HasNext_ShouldBeFalse_WhenOnlyOnePage()
|
|
{
|
|
var paged = new PagedResult<string>
|
|
{
|
|
Items = [],
|
|
TotalCount = 3,
|
|
PageNumber = 1,
|
|
PageSize = 10
|
|
};
|
|
Assert.False(paged.HasNext);
|
|
}
|
|
}
|