Skip to content

Commit 8e07ad3

Browse files
committed
Fix root command node not present in command-stack
1 parent 4b8bd23 commit 8e07ad3

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

bluecommands-core/src/main/java/de/bluecolored/bluecommands/Command.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public ParseResult<C, T> parse(C context, String input) {
6363
}
6464

6565
public ParseResult<C, T> parse(C context, InputReader input) {
66-
ParseData<C, T> stack = new ParseData<>(context, input);
66+
ParseData<C, T> stack = new ParseData<>(context, input, this);
6767
parse(stack);
6868
return stack.getResult();
6969
}

bluecommands-core/src/main/java/de/bluecolored/bluecommands/ParseData.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,12 @@ public class ParseData<C, T> {
3333
private final ParseResult<C, T> result;
3434
private final LinkedList<ParseSegment<C, T>> segments;
3535

36-
public ParseData(C context, InputReader input) {
36+
public ParseData(C context, InputReader input, Command<C, T> initialSegment) {
3737
this.context = context;
3838
this.input = input;
3939
this.result = new ParseResult<>(context, input.getInput());
4040
this.segments = new LinkedList<>();
41+
pushSegment(initialSegment);
4142
}
4243

4344
public C getContext() {

bluecommands-core/src/test/java/de/bluecolored/bluecommands/BlueCommandsTest.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,24 +61,29 @@ public void testBasicCommand() {
6161
expected.put("some", null);
6262
expected.put("arguments", "arg2");
6363
assertEquals(expected, match.getArguments());
64-
assertEquals(4, match.getCommandStack().size());
64+
assertEquals(5, match.getCommandStack().size());
6565

66-
var stack1 = match.getCommandStack().get(0);
66+
var stack0 = match.getCommandStack().get(0);
67+
assertEquals(0, stack0.getPosition());
68+
assertInstanceOf(de.bluecolored.bluecommands.Command.class, stack0.getCommand());
69+
assertNull(stack0.getValue());
70+
71+
var stack1 = match.getCommandStack().get(1);
6772
assertEquals(0, stack1.getPosition());
6873
assertInstanceOf(LiteralCommand.class, stack1.getCommand());
6974
assertNull(stack1.getValue());
7075

71-
var stack2 = match.getCommandStack().get(1);
76+
var stack2 = match.getCommandStack().get(2);
7277
assertEquals(5, stack2.getPosition());
7378
assertInstanceOf(ArgumentCommand.class, stack2.getCommand());
7479
assertEquals("arg1", stack2.getValue());
7580

76-
var stack3 = match.getCommandStack().get(2);
81+
var stack3 = match.getCommandStack().get(3);
7782
assertEquals(10, stack3.getPosition());
7883
assertInstanceOf(ArgumentCommand.class, stack3.getCommand());
7984
assertNull(stack3.getValue());
8085

81-
var stack4 = match.getCommandStack().get(3);
86+
var stack4 = match.getCommandStack().get(4);
8287
assertEquals(10, stack4.getPosition());
8388
assertInstanceOf(ArgumentCommand.class, stack4.getCommand());
8489
assertEquals("arg2", stack4.getValue());

0 commit comments

Comments
 (0)