Files
SoulliesOfficial 7ee2894a63 整合SLSUtilities
2026-01-17 11:35:49 -05:00

122 lines
3.5 KiB
C#

using LunaWolfStudiosEditor.ScriptableSheets.Layout;
using NUnit.Framework;
using System.Collections.Generic;
namespace LunaWolfStudiosEditor.ScriptableSheets.EditorTests
{
[TestFixture]
[Category(TestUtility.MainCategory)]
public class PaginatorTests
{
[Test]
public void GetPageObjects_ShouldReturnCorrectPageObjects()
{
var paginator = new Paginator(3, 10);
var expectedValues = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var pageObjects = paginator.GetPageObjects(expectedValues);
Assert.AreEqual(3, pageObjects.Count);
Assert.AreEqual(1, pageObjects[0]);
Assert.AreEqual(2, pageObjects[1]);
Assert.AreEqual(3, pageObjects[2]);
paginator.NextPage();
pageObjects = paginator.GetPageObjects(expectedValues);
Assert.AreEqual(3, pageObjects.Count);
Assert.AreEqual(4, pageObjects[0]);
Assert.AreEqual(5, pageObjects[1]);
Assert.AreEqual(6, pageObjects[2]);
paginator.NextPage();
pageObjects = paginator.GetPageObjects(expectedValues);
Assert.AreEqual(3, pageObjects.Count);
Assert.AreEqual(7, pageObjects[0]);
Assert.AreEqual(8, pageObjects[1]);
Assert.AreEqual(9, pageObjects[2]);
paginator.NextPage();
pageObjects = paginator.GetPageObjects(expectedValues);
Assert.AreEqual(1, pageObjects.Count);
Assert.AreEqual(10, pageObjects[0]);
paginator.NextPage();
pageObjects = paginator.GetPageObjects(expectedValues);
Assert.AreEqual(3, pageObjects.Count);
Assert.AreEqual(1, pageObjects[0]);
Assert.AreEqual(2, pageObjects[1]);
Assert.AreEqual(3, pageObjects[2]);
paginator.PreviousPage();
pageObjects = paginator.GetPageObjects(expectedValues);
Assert.AreEqual(1, pageObjects.Count);
Assert.AreEqual(10, pageObjects[0]);
}
[Test]
public void NextPage_ShouldIncrementCurrentPage()
{
var paginator = new Paginator(5, 20);
paginator.NextPage();
Assert.AreEqual(2, paginator.CurrentPage);
paginator.NextPage();
Assert.AreEqual(3, paginator.CurrentPage);
paginator.NextPage();
Assert.AreEqual(4, paginator.CurrentPage);
}
[Test]
public void NextPage_ShouldResetToFirstPageIfCurrentPageExceedsTotalPages()
{
var paginator = new Paginator(5, 20);
for (var i = 0; i < 4; i++)
{
paginator.NextPage();
}
Assert.AreEqual(1, paginator.CurrentPage);
}
[Test]
public void PreviousPage_ShouldDecrementCurrentPage()
{
var paginator = new Paginator(5, 20);
paginator.NextPage();
paginator.NextPage();
paginator.NextPage();
Assert.AreEqual(4, paginator.CurrentPage);
paginator.PreviousPage();
Assert.AreEqual(3, paginator.CurrentPage);
paginator.PreviousPage();
Assert.AreEqual(2, paginator.CurrentPage);
paginator.PreviousPage();
Assert.AreEqual(1, paginator.CurrentPage);
}
[Test]
public void PreviousPage_ShouldSetToLastPageIfCurrentPageBecomesLessThanOne()
{
var paginator = new Paginator(5, 20);
paginator.PreviousPage();
Assert.AreEqual(paginator.GetTotalPages(), paginator.CurrentPage);
}
[Test]
public void SetTotalObjects_ShouldResetCurrentPageIfExceedsTotalPages()
{
var paginator = new Paginator(5, 20);
paginator.NextPage();
paginator.SetTotalObjects(10);
Assert.AreEqual(2, paginator.CurrentPage);
paginator.SetTotalObjects(5);
Assert.AreEqual(1, paginator.CurrentPage);
}
[Test]
public void SetTotalObjects_ShouldUpdateTotalObjects()
{
var paginator = new Paginator(5, 20);
paginator.SetTotalObjects(25);
Assert.AreEqual(25, paginator.TotalObjects);
}
}
}