Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
using Omika.Core.Contracts.Common;
|
||||
|
||||
namespace Omika.Tests.Contracts;
|
||||
|
||||
/// <summary>
|
||||
/// Tests du contrat de pagination : bornes, calcul du nombre total de pages et
|
||||
/// indicateurs de navigation.
|
||||
/// </summary>
|
||||
public class PagedResultTests
|
||||
{
|
||||
[Fact]
|
||||
public void PagedRequest_NormalizesPage_ToAtLeastOne()
|
||||
{
|
||||
var request = new PagedRequest { Page = 0, PageSize = 10 };
|
||||
|
||||
Assert.Equal(1, request.Page);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PagedRequest_ClampsPageSize()
|
||||
{
|
||||
var request = new PagedRequest { PageSize = PagedRequest.MaxPageSize + 1 };
|
||||
|
||||
Assert.Equal(PagedRequest.MaxPageSize, request.PageSize);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PagedRequest_ZeroPageSize_FallsBackToDefault()
|
||||
{
|
||||
var request = new PagedRequest { PageSize = 0 };
|
||||
|
||||
Assert.Equal(20, request.PageSize);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PagedResult_ComputesTotalPages_AndNavigation()
|
||||
{
|
||||
var items = new[] { "a", "b", "c", "d", "e" };
|
||||
var result = new PagedResult<string>(items, Page: 1, PageSize: 2, TotalCount: 5, TotalPages: 3);
|
||||
|
||||
Assert.Equal(5, result.TotalCount);
|
||||
Assert.Equal(3, result.TotalPages);
|
||||
Assert.False(result.HasPreviousPage);
|
||||
Assert.True(result.HasNextPage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PagedResult_LastPage_HasNoNextPage()
|
||||
{
|
||||
var result = new PagedResult<string>([], Page: 2, PageSize: 2, TotalCount: 4, TotalPages: 2);
|
||||
|
||||
Assert.True(result.HasPreviousPage);
|
||||
Assert.False(result.HasNextPage);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user