2022-01-22 04:02:35 +01:00
|
|
|
package net.minestom.server.instance;
|
|
|
|
|
|
|
|
import net.minestom.server.api.Env;
|
|
|
|
import net.minestom.server.api.EnvTest;
|
|
|
|
import net.minestom.server.instance.block.Block;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
2022-04-12 23:50:45 +02:00
|
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
2022-01-22 04:02:35 +01:00
|
|
|
|
|
|
|
@EnvTest
|
|
|
|
public class InstanceBlockIntegrationTest {
|
|
|
|
|
|
|
|
@Test
|
2022-04-12 23:50:45 +02:00
|
|
|
public void basic(Env env) {
|
2022-02-10 16:48:59 +01:00
|
|
|
var instance = env.createFlatInstance();
|
2022-04-12 23:50:45 +02:00
|
|
|
assertThrows(NullPointerException.class, () -> instance.getBlock(0, 0, 0),
|
|
|
|
"No exception throw when getting a block in an unloaded chunk");
|
2022-02-10 16:48:59 +01:00
|
|
|
|
2022-04-12 23:50:45 +02:00
|
|
|
instance.loadChunk(0, 0).join();
|
|
|
|
assertEquals(Block.AIR, instance.getBlock(0, 50, 0));
|
2022-02-10 16:48:59 +01:00
|
|
|
|
2022-04-12 23:50:45 +02:00
|
|
|
instance.setBlock(0, 50, 0, Block.GRASS);
|
|
|
|
assertEquals(Block.GRASS, instance.getBlock(0, 50, 0));
|
2022-02-10 16:48:59 +01:00
|
|
|
|
2022-04-12 23:50:45 +02:00
|
|
|
instance.setBlock(0, 50, 0, Block.STONE);
|
|
|
|
assertEquals(Block.STONE, instance.getBlock(0, 50, 0));
|
2022-02-10 16:48:59 +01:00
|
|
|
|
2022-04-12 23:50:45 +02:00
|
|
|
assertThrows(NullPointerException.class, () -> instance.getBlock(16, 0, 0),
|
|
|
|
"No exception throw when getting a block in an unloaded chunk");
|
|
|
|
instance.loadChunk(1, 0).join();
|
|
|
|
assertEquals(Block.AIR, instance.getBlock(16, 50, 0));
|
2022-01-22 04:02:35 +01:00
|
|
|
}
|
2022-04-12 23:55:17 +02:00
|
|
|
|
|
|
|
@Test
|
|
|
|
public void unloadCache(Env env) {
|
|
|
|
var instance = env.createFlatInstance();
|
|
|
|
instance.loadChunk(0, 0).join();
|
|
|
|
|
|
|
|
instance.setBlock(0, 50, 0, Block.GRASS);
|
|
|
|
assertEquals(Block.GRASS, instance.getBlock(0, 50, 0));
|
|
|
|
|
|
|
|
instance.unloadChunk(0, 0);
|
|
|
|
assertThrows(NullPointerException.class, () -> instance.getBlock(0, 0, 0),
|
|
|
|
"No exception throw when getting a block in an unloaded chunk");
|
|
|
|
|
|
|
|
instance.loadChunk(0, 0).join();
|
|
|
|
assertEquals(Block.AIR, instance.getBlock(0, 50, 0));
|
|
|
|
}
|
2022-01-22 04:02:35 +01:00
|
|
|
}
|