public void EvalArgless() { var interp = new CommandInterpreter(); int ran = 0; interp.AddCommand("run", new Action(() => ran++)); interp.Eval("run"); Assert.AreEqual(1, ran); }
public void EvalFromAsyncMethodInfo() { var io = new StringWriter(); var interp = new CommandInterpreter(io, io); var obj = new CommandObj(); interp.AddCommand("plus", obj, "AsyncPlus"); interp.Eval("plus 2 2"); Assert.AreEqual("4", io.ToString()); }
public void EvalFromAction() { var io = new StringWriter(); var interp = new CommandInterpreter(io, io); var obj = new CommandObj(); interp.AddCommand("plus", new Action<TextWriter, int, int>(obj.AsyncPlus)); interp.Eval("plus 2 2"); Assert.AreEqual("4", io.ToString()); }
public void EvalAsyncArgless() { var io = new StringWriter(); var interp = new CommandInterpreter(io, io); var obj = new CommandObj(); interp.AddCommand("say", new Action<TextWriter>(obj.AsyncArgless)); interp.Eval("say"); Assert.AreEqual("hi", io.ToString()); }
public void Eval() { var io = new StringWriter(); var interp = new CommandInterpreter(io, io); var args = new CommandArg() { Type = typeof(int) }.And(new CommandArg() { Type = typeof(int) }); interp.AddCommand("plus", args, (o, e, c) => o.WriteLine(c["0"].ConvertTo<int>() + c["1"].ConvertTo<int>())); interp.Eval("plus 2 2"); Assert.AreEqual("4\r\n", io.ToString()); }
public void EvalFromSignature() { var io = new StringWriter(); var interp = new CommandInterpreter(io, io); interp.AddCommand<int, int, int>("plus", (i, j) => i + j); interp.Eval("plus 2 2"); Assert.AreEqual("4\r\n", io.ToString()); }
public void ParseErrors() { var interp = new CommandInterpreter(new StringWriter(), new StringWriter()); interp.AddCommand<int, int, int>("plus", (i, j) => i + j); Assert.Throws<ParseException>(() => interp.Eval("plus 2 abc")); }
public void EvalWithSwitch() { var interp = new CommandInterpreter(new StringWriter(), new StringWriter()); var obj = new CommandObj(); interp.AddCommand("plus", obj, "PlusSwitch"); interp.Eval("plus 2 2"); Assert.AreEqual("5\r\n", interp.Output.ToString()); interp.Output = new StringWriter(); interp.Eval("plus 2 2 -c 2"); Assert.AreEqual("6\r\n", interp.Output.ToString()); }
public void EvalWithStringListArg() { var io = new StringWriter(); var interp = new CommandInterpreter(io, io, new CommandParser(), new CommandObj()); interp.Eval("ListArg 1 2 --c test,more-text"); Assert.AreEqual("(test,more-text)\r\n", io.ToString()); }
public void EvalWithQuotedCommandName() { var io = new StringWriter(); var interp = new CommandInterpreter(io, io, new CommandParser(), new CommandObj()); interp.Eval("\"Plus\" 1 2"); Assert.AreEqual("3\r\n", io.ToString()); }
public void EvalWithNullDefaults() { var io = new StringWriter(); var interp = new CommandInterpreter(io, io); var commandObj = new CommandObj(); interp.AddCommand("join", commandObj, "Join"); interp.Eval("join"); Assert.AreEqual("ab\r\n", io.ToString()); }
public void EvalWithFlag() { var io = new StringWriter(); var interp = new CommandInterpreter(io, io); var obj = new CommandObj(); interp.AddCommand("plus", obj, "PlusFlag"); interp.Eval("plus 2 2"); Assert.AreEqual("4\r\n", io.ToString()); interp.Output = new StringWriter(); interp.Eval("plus 2 2 --invert"); Assert.AreEqual("-4\r\n", interp.Output.ToString()); }