Minestom/src/test/java/net/minestom/server/advancements/AdvancementIntegrationTest....

84 lines
2.7 KiB
Java

package net.minestom.server.advancements;
import net.kyori.adventure.text.Component;
import net.minestom.testing.Env;
import net.minestom.testing.EnvTest;
import net.minestom.server.coordinate.Pos;
import net.minestom.server.item.Material;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
@EnvTest
public class AdvancementIntegrationTest {
@Test
public void addAndRemoveViewer(Env env) {
var instance = env.createFlatInstance();
var player = env.createPlayer(instance, new Pos(0, 42, 0));
AdvancementRoot root = new AdvancementRoot(
Component.text("title"),
Component.text("description"),
Material.DIAMOND,
FrameType.TASK,
0,
0,
"minecraft:textures/block/stone.png"
);
AdvancementTab tab = env.process().advancement().createTab("minestom:minestom_tab", root);
// Add viewer
tab.addViewer(player);
assertEquals(1, tab.getViewers().size());
assertTrue(tab.getViewers().contains(player));
assertNotNull(AdvancementTab.getTabs(player));
assertEquals(1, AdvancementTab.getTabs(player).size());
assertTrue(AdvancementTab.getTabs(player).contains(tab));
// Remove viewer
tab.removeViewer(player);
assertEquals(0, tab.getViewers().size());
assertNull(AdvancementTab.getTabs(player));
}
@Test
public void removeViewerOnDisconnect(Env env) {
var instance = env.createFlatInstance();
var player = env.createPlayer(instance, new Pos(0, 42, 0));
AdvancementRoot root1 = new AdvancementRoot(
Component.text("title"),
Component.text("description"),
Material.DIAMOND,
FrameType.TASK,
0,
0,
"minecraft:textures/block/stone.png"
);
AdvancementRoot root2 = new AdvancementRoot(
Component.text("title2"),
Component.text("description"),
Material.DIAMOND,
FrameType.TASK,
0,
0,
"minecraft:textures/block/stone.png"
);
AdvancementTab tab1 = env.process().advancement().createTab("minestom:minestom_tab1", root1);
AdvancementTab tab2 = env.process().advancement().createTab("minestom:minestom_tab2", root2);
tab1.addViewer(player);
tab2.addViewer(player);
player.remove(); // Disconnect
assertEquals(0, tab1.getViewers().size());
assertEquals(0, tab2.getViewers().size());
assertNull(AdvancementTab.getTabs(player));
}
}