/**
* PermissionsEx
* Copyright (C) zml and PermissionsEx contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ninja.leaping.permissionsex.util.command;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
/**
* Created by zml on 04.04.15.
*/
public class CommandSpecTest {
@Rule
public ExpectedException expected = ExpectedException.none();
@Test
public void testNoArgsFunctional() {
CommandSpec.builder()
.setAliases("something")
.setExecutor(new CommandExecutor() {
@Override
public <TextType> void execute(Commander<TextType> src, CommandContext args) throws CommandException {
// Run
}
})
.build()
.process(new TestCommander(), "");
}
@Test
public void testExecutorRequired() {
expected.expect(IllegalArgumentException.class);
expected.expectMessage("An executor is required");
CommandSpec.builder()
.setAliases("something")
.build();
}
@Test
public void testAliasesRequired() {
expected.expect(IllegalArgumentException.class);
expected.expectMessage("A command may not have no aliases");
CommandSpec.builder()
.setExecutor(new CommandExecutor() {
@Override
public <TextType> void execute(Commander<TextType> src, CommandContext args) throws CommandException {
}
})
.build();
}
}