Fixed crash executing ""
This commit is contained in:
parent
e9a930c3b5
commit
fbf3546f18
2 changed files with 20 additions and 3 deletions
|
@ -39,9 +39,13 @@ public class CommandDispatcher<S> {
|
|||
root.addChild(command.build());
|
||||
}
|
||||
|
||||
public int execute(String command, S source) throws CommandException {
|
||||
CommandContext<S> context = parse(command, source).build();
|
||||
return context.getCommand().run(context);
|
||||
public int execute(String input, S source) throws CommandException {
|
||||
CommandContext<S> context = parse(input, source).build();
|
||||
Command<S> command = context.getCommand();
|
||||
if (command == null) {
|
||||
throw ERROR_UNKNOWN_COMMAND.create();
|
||||
}
|
||||
return command.run(context);
|
||||
}
|
||||
|
||||
public CommandContextBuilder<S> parse(String command, S source) throws CommandException {
|
||||
|
|
|
@ -117,6 +117,19 @@ public class CommandDispatcherTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testExecuteEmptyCommand() throws Exception {
|
||||
subject.register(literal(""));
|
||||
|
||||
try {
|
||||
subject.execute("", source);
|
||||
fail();
|
||||
} catch (CommandException ex) {
|
||||
assertThat(ex.getType(), is(CommandDispatcher.ERROR_UNKNOWN_COMMAND));
|
||||
assertThat(ex.getData(), is(Collections.<String, Object>emptyMap()));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testExecuteUnknownSubcommand() throws Exception {
|
||||
subject.register(literal("foo").executes(command));
|
||||
|
|
Loading…
Reference in a new issue