mirror of https://github.com/Minestom/Minestom.git
45 lines
1.6 KiB
Java
45 lines
1.6 KiB
Java
package net.minestom.server.entity;
|
|
|
|
import net.minestom.server.api.Env;
|
|
import net.minestom.server.api.EnvTest;
|
|
import net.minestom.server.coordinate.Pos;
|
|
import org.junit.jupiter.api.Assertions;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.time.Duration;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
|
@EnvTest
|
|
public class EntityInstanceIntegrationTest {
|
|
|
|
@Test
|
|
public void entityJoin(Env env) {
|
|
var instance = env.createFlatInstance();
|
|
var entity = new Entity(EntityTypes.ZOMBIE);
|
|
entity.setInstance(instance, new Pos(0, 42, 0)).join();
|
|
assertEquals(instance, entity.getInstance());
|
|
assertEquals(new Pos(0, 42, 0), entity.getPosition());
|
|
}
|
|
|
|
@Test
|
|
public void playerJoin(Env env) {
|
|
var instance = env.createFlatInstance();
|
|
var player = env.createPlayer(instance, new Pos(0, 42, 0));
|
|
assertEquals(instance, player.getInstance());
|
|
assertEquals(new Pos(0, 42, 0), player.getPosition());
|
|
}
|
|
|
|
@Test
|
|
public void playerSwitch(Env env) {
|
|
var instance = env.createFlatInstance();
|
|
var instance2 = env.createFlatInstance();
|
|
var connection = env.createConnection();
|
|
var player = connection.connect(instance, new Pos(0, 42, 0)).join();
|
|
assertEquals(instance, player.getInstance());
|
|
// #join may cause the thread to hang as scheduled for the next tick when initially in a pool
|
|
Assertions.assertTimeout(Duration.ofSeconds(2), () -> player.setInstance(instance2).join());
|
|
assertEquals(instance2, player.getInstance());
|
|
}
|
|
}
|