public void TestModeledAction()
{
bool invoked = false;
CommandLineArgumentsDefinition definition = new CommandLineArgumentsDefinition();
var action = new CommandLineAction((d) =>
{
Assert.AreEqual("go", d.SpecifiedAction.DefaultAlias);
Assert.AreEqual("Hawaii", d.SpecifiedAction.Arguments[0].RevivedValue);
invoked = true;
});
action.Aliases.Add("go");
action.Description = "A simple action";
definition.Actions.Add(action);
var actionString = action.ToString(); // Make sure it doesn't throw
var destination = new CommandLineArgument(typeof(string),"destination");
destination.Metadata.Add(new ArgRequired());
destination.Description = "The place to go to";
action.Arguments.Add(destination);
Args.InvokeAction(definition, "go", "-destination", "Hawaii");
Assert.IsTrue(invoked);
var usage = ArgUsage.GetUsage(definition, "test");
Assert.IsTrue(usage.Contains("A simple action"));
Assert.IsTrue(usage.Contains("The place to go to"));
}