feat: initialisation complète de la bibliothèque betterMcGuis (Fluent DSL, ItemBuilder, PaginatedGui, TabbedGui, AnimatedGui, Patterns ASCII, Moteur d'événements, Sécurité anti-glitch et documentation)
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
package fr.luc.bettermcguis;
|
||||
|
||||
import fr.luc.bettermcguis.api.GuiItem;
|
||||
import fr.luc.bettermcguis.api.GuiType;
|
||||
import fr.luc.bettermcguis.api.slot.SlotRange;
|
||||
import fr.luc.bettermcguis.type.PaginatedGui;
|
||||
import org.bukkit.Material;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
public class PaginatedGuiTest {
|
||||
|
||||
@Test
|
||||
@DisplayName("PaginatedGui doit calculer correctement le nombre total de pages")
|
||||
void testPaginationMath() {
|
||||
PaginatedGui gui = new PaginatedGui("Paginated Test", GuiType.CHEST_3_ROWS);
|
||||
gui.setItemSlots(SlotRange.of(10, 16)); // 7 slots par page
|
||||
|
||||
assertEquals(7, gui.getPageSize());
|
||||
assertEquals(1, gui.getTotalPages()); // 0 items -> 1 page vide
|
||||
|
||||
for (int i = 0; i < 20; i++) {
|
||||
gui.addPageItem(GuiItem.of(Material.GOLD_INGOT));
|
||||
}
|
||||
|
||||
// 20 items / 7 par page -> 3 pages (7 + 7 + 6)
|
||||
assertEquals(3, gui.getTotalPages());
|
||||
assertEquals(1, gui.getCurrentPage());
|
||||
assertTrue(gui.hasNextPage());
|
||||
assertFalse(gui.hasPreviousPage());
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("PaginatedGui doit naviguer entre les pages et déclencher l'événement")
|
||||
void testPageNavigationAndEvents() {
|
||||
PaginatedGui gui = new PaginatedGui("Paginated Test", GuiType.CHEST_3_ROWS);
|
||||
gui.setItemSlots(SlotRange.of(10, 16));
|
||||
|
||||
for (int i = 0; i < 20; i++) {
|
||||
gui.addPageItem(GuiItem.of(Material.EMERALD));
|
||||
}
|
||||
|
||||
AtomicInteger eventFired = new AtomicInteger(0);
|
||||
gui.onPageChange(evt -> {
|
||||
eventFired.incrementAndGet();
|
||||
assertEquals(1, evt.getOldPage());
|
||||
assertEquals(2, evt.getNewPage());
|
||||
});
|
||||
|
||||
assertTrue(gui.nextPage());
|
||||
assertEquals(2, gui.getCurrentPage());
|
||||
assertEquals(1, eventFired.get());
|
||||
|
||||
assertTrue(gui.hasPreviousPage());
|
||||
assertTrue(gui.hasNextPage());
|
||||
|
||||
assertTrue(gui.nextPage());
|
||||
assertEquals(3, gui.getCurrentPage());
|
||||
assertFalse(gui.hasNextPage()); // Fin du catalogue
|
||||
|
||||
// Impossible d'avancer plus loin
|
||||
assertFalse(gui.nextPage());
|
||||
assertEquals(3, gui.getCurrentPage());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user