public void TestPowerArgsRichCommandLineReaderFindCurrentTokenArgument()
{
bool expect;
try
{
PowerArgsRichCommandLineReader.FindCurrentTokenArgument(null, null, out expect);
}
catch (NullReferenceException ex)
{
Assert.IsTrue(ex.Message.Contains("ambient"));
}
CommandLineArgumentsDefinition def = new CommandLineArgumentsDefinition();
var globalArg = new CommandLineArgument(typeof(int), "TheInt");
def.Arguments.Add(globalArg);
Assert.IsNull(PowerArgsRichCommandLineReader.FindCurrentTokenArgument(null, null, out expect, def));
Assert.IsFalse(expect);
var found = PowerArgsRichCommandLineReader.FindCurrentTokenArgument(null, "-TheInt", out expect, def);
Assert.AreSame(globalArg, found);
Assert.IsTrue(expect);
found = PowerArgsRichCommandLineReader.FindCurrentTokenArgument(null, "/TheInt", out expect, def);
Assert.AreSame(globalArg, found);
Assert.IsTrue(expect);
found = PowerArgsRichCommandLineReader.FindCurrentTokenArgument(null, "TheInt", out expect, def);
Assert.IsNull(found);
Assert.IsFalse(expect);
found = PowerArgsRichCommandLineReader.FindCurrentTokenArgument(null, "-ActionInt", out expect, def);
Assert.IsNull(found);
Assert.IsTrue(expect);
var action = new CommandLineAction((d) => { });
action.Aliases.Add("TheAction");
var actionArg = new CommandLineArgument(typeof(int), "ActionInt");
action.Arguments.Add(actionArg);
def.Actions.Add(action);
found = PowerArgsRichCommandLineReader.FindCurrentTokenArgument(action, "-ActionInt", out expect, def);
Assert.AreSame(actionArg, found);
Assert.IsTrue(expect);
}