package com.xfestudio.xfeservermanager.api;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import com.xfestudio.xfeservermanager.api.command.CommandNames;
import com.xfestudio.xfeservermanager.api.command.InvocationAst;
import com.xfestudio.xfeservermanager.api.world.WorldStatePayload;
import java.util.List;
import java.util.Map;
import org.junit.jupiter.api.Test;
class NeutralModelTest {
@Test
void commandAliasesAndNamespacesCanonicalize() {
assertEquals("minecraft:teleport", CommandNames.canonicalize("/tp @s 0 0 0"));
assertEquals("minecraft:teleport", CommandNames.canonicalize("minecraft:teleport"));
assertEquals("example:admin", CommandNames.canonicalize("example:admin"));
InvocationAst alias = new InvocationAst("tp @s 0 0 0", "tp", List.of("tp"), Map.of(),
List.of(), List.of(), List.of(), true);
assertEquals(List.of("teleport"), alias.commandPath());
}
@Test
void opaqueWorldPayloadIsDefensivelyCopied() {
byte[] bytes = {1, 2, 3};
WorldStatePayload payload = new WorldStatePayload("example:codec", 1,
"application/octet-stream", bytes, Map.of());
bytes[0] = 9;
byte[] returned = payload.payload();
returned[1] = 9;
assertArrayEquals(new byte[]{1, 2, 3}, payload.payload());
assertThrows(UnsupportedOperationException.class,
() -> payload.metadata().put("mutable", "no"));
}
}
package com.xfestudio.xfeservermanager.api;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import com.xfestudio.xfeservermanager.api.command.CommandNames;
import com.xfestudio.xfeservermanager.api.command.InvocationAst;
import com.xfestudio.xfeservermanager.api.world.WorldStatePayload;
import java.util.List;
import java.util.Map;
import org.junit.jupiter.api.Test;
class NeutralModelTest {
@Test
void commandAliasesAndNamespacesCanonicalize() {
assertEquals("minecraft:teleport", CommandNames.canonicalize("/tp @s 0 0 0"));
assertEquals("minecraft:teleport", CommandNames.canonicalize("minecraft:teleport"));
assertEquals("example:admin", CommandNames.canonicalize("example:admin"));
InvocationAst alias = new InvocationAst("tp @s 0 0 0", "tp", List.of("tp"), Map.of(),
List.of(), List.of(), List.of(), true);
assertEquals(List.of("teleport"), alias.commandPath());
}
@Test
void opaqueWorldPayloadIsDefensivelyCopied() {
byte[] bytes = {1, 2, 3};
WorldStatePayload payload = new WorldStatePayload("example:codec", 1,
"application/octet-stream", bytes, Map.of());
bytes[0] = 9;
byte[] returned = payload.payload();
returned[1] = 9;
assertArrayEquals(new byte[]{1, 2, 3}, payload.payload());
assertThrows(UnsupportedOperationException.class,
() -> payload.metadata().put("mutable", "no"));
}
}