package com.iBaby.commands;
import static org.junit.Assert.*;
import org.bukkit.command.CommandSender;
import org.junit.Test;
import com.iBaby.Command;
/**
* Test for the new command parser
* @author steffengy
*
*/
public class CommandParserTest extends Command {
public CommandParserTest() {
addParam("a"); //0
addParam("b"); //1
addOptionalParam("c"); // 2
addParam("d"); // 2 or 3
addParam("e"); // 3 or 4
addOptionalParam("f"); //4 or 5
addOptionalParam("g"); //5 or 6
addOptionalParam("h"); //6 or 7
addParam("i"); // 7 or 8
requiresPlayer = false;
}
@Test
public void testFullNeeded() {
this.preHandle(getFakeCommandSender(), new String[] { "aValue", "bValue", "dValue", "eValue", "iValue" });
assertTrue(param("a").equals("aValue"));
assertTrue(param("b").equals("bValue"));
assertTrue(param("d").equals("dValue"));
assertTrue(param("e").equals("eValue"));
assertTrue(param("i").equals("iValue"));
}
@Test
public void testFull() {
this.preHandle(getFakeCommandSender(), new String[] { "aValue", "bValue", "cValue", "dValue", "eValue", "fValue", "gValue", "hValue", "iValue" });
assertTrue(param("a").equals("aValue"));
assertTrue(param("b").equals("bValue"));
assertTrue(param("d").equals("dValue"));
assertTrue(param("e").equals("eValue"));
assertTrue(param("c").equals("cValue"));
assertTrue(param("f").equals("fValue"));
assertTrue(param("g").equals("gValue"));
assertTrue(param("h").equals("hValue"));
assertTrue(param("i").equals("iValue"));
}
@Test
public void testFunnyMixture() {
this.preHandle(getFakeCommandSender(), new String[] { "aValue", "bValue", "cValue", "dValue", "eValue", "fValue", "gValue", "iValue" });
assertTrue(param("a").equals("aValue"));
assertTrue(param("b").equals("bValue"));
assertTrue(param("d").equals("dValue"));
assertTrue(param("e").equals("eValue"));
assertTrue(param("c").equals("cValue"));
assertTrue(param("f").equals("fValue"));
assertTrue(param("g").equals("gValue"));
assertTrue(param("i").equals("iValue"));
}
@Test
public void testNotEnoughArguments() {
boolean b = this.preHandle(getFakeCommandSender(), new String[] { "aValue", "bValue", "cValue" });
assertTrue(!b);
}
@Test
public void testToMuchArguments() {
boolean b = this.preHandle(getFakeCommandSender(), new String[] { "aValue", "bValue", "cValue", "aValue", "bValue", "cValue", "dValue", "eValue", "fValue", "gValue", "iValue" });
assertTrue(!b);
}
private CommandSender getFakeCommandSender() {
return new FakeCommandSender();
}
}