mirror of
https://github.com/Minestom/Minestom.git
synced 2025-02-08 08:21:50 +01:00
Test loop arg with multiple groups
Signed-off-by: TheMode <themode@outlook.fr>
This commit is contained in:
parent
0989c220f6
commit
3a7dc50e7b
@ -3,6 +3,8 @@ package net.minestom.server.command;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
import net.minestom.server.command.builder.CommandContext;
|
||||
import net.minestom.server.command.builder.arguments.Argument;
|
||||
import net.minestom.server.instance.block.Block;
|
||||
import net.minestom.server.item.Enchantment;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.lang.String;
|
||||
@ -109,6 +111,43 @@ public class CommandSyntaxSingleTest {
|
||||
assertSyntax(groupLoop, "1 2 3 4 5", ExpectedExecution.DEFAULT);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void singleLoopDoubleGroup() {
|
||||
List<Argument<?>> groupLoop = List.of(
|
||||
Loop("loop",
|
||||
Group("group", BlockState("block"), Enchantment("enchant")),
|
||||
Group("group2", Enchantment("enchant"), BlockState("block"))
|
||||
)
|
||||
);
|
||||
// block enchant
|
||||
{
|
||||
var input = "minecraft:stone minecraft:sharpness";
|
||||
var context = new CommandContext(input);
|
||||
context.setArg("block", Block.STONE, "minecraft:stone");
|
||||
context.setArg("enchant", Enchantment.SHARPNESS, "minecraft:sharpness");
|
||||
assertSyntax(groupLoop, input, ExpectedExecution.SYNTAX, Map.of("loop", List.of(context)));
|
||||
}
|
||||
// enchant block block enchant
|
||||
{
|
||||
var context1 = new CommandContext("minecraft:sharpness minecraft:stone");
|
||||
var context2 = new CommandContext("minecraft:grass minecraft:efficiency");
|
||||
|
||||
context1.setArg("enchant", Enchantment.SHARPNESS, "minecraft:sharpness");
|
||||
context1.setArg("block", Block.STONE, "minecraft:stone");
|
||||
|
||||
context2.setArg("block", Block.GRASS, "minecraft:grass");
|
||||
context2.setArg("enchant", Enchantment.EFFICIENCY, "minecraft:efficiency");
|
||||
|
||||
var input = context1.getInput() + " " + context2.getInput();
|
||||
assertSyntax(groupLoop, input, ExpectedExecution.SYNTAX, Map.of("loop", List.of(context1, context2)));
|
||||
}
|
||||
// Incomplete loop
|
||||
assertSyntax(groupLoop, "minecraft:sharpness", ExpectedExecution.DEFAULT);
|
||||
assertSyntax(groupLoop, "minecraft:sharpness minecraft:sharpness", ExpectedExecution.DEFAULT);
|
||||
assertSyntax(groupLoop, "minecraft:stone", ExpectedExecution.DEFAULT);
|
||||
assertSyntax(groupLoop, "minecraft:stone minecraft:stone", ExpectedExecution.DEFAULT);
|
||||
}
|
||||
|
||||
private static void assertSyntax(List<Argument<?>> args, String input, ExpectedExecution expectedExecution, Map<String, Object> expectedValues) {
|
||||
final String commandName = "name";
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user