public void TestREPLReset() { SetupCleanup.ClearAttributeCache(); var provider = TestConsoleProvider.SimulateConsoleInput("-b{enter}-s a{enter}quit"); var def = new CommandLineArgumentsDefinition(typeof(TestArgsWithREPL)); var boolArg = def.FindMatchingArgument("b"); Assert.IsNotNull(boolArg); bool first = true; bool validatedBoth = false; var interceptor = new AfterInvokeInterceptor((context) => { if (first) { first = false; Assert.IsTrue((bool)boolArg.RevivedValue); } else { Assert.IsNull(boolArg.RevivedValue); validatedBoth = true; } }); def.Metadata.Add(interceptor); var finalResult = Args.InvokeMain(def, "$"); Assert.IsTrue(validatedBoth); Assert.IsFalse((finalResult.Value as TestArgsWithREPL).BoolParam); }
public void TestOverrideDefaultReviver() { var intReviver = ArgRevivers.GetReviver(typeof(int)); try { ArgRevivers.SetReviver <int>((k, v) => { return(-1); }); var def = new CommandLineArgumentsDefinition(); def.Arguments.Add(new CommandLineArgument(typeof(int), "theInt")); Args.Parse(def, "-theInt", "100"); Assert.AreEqual(-1, def.FindMatchingArgument("theInt").RevivedValue); } finally { ArgRevivers.SetReviver(typeof(int), intReviver); } // make sure the old reviver is working again var newDef = new CommandLineArgumentsDefinition(); newDef.Arguments.Add(new CommandLineArgument(typeof(int), "theInt")); Args.Parse(newDef, "-theInt", "100"); Assert.AreEqual(100, newDef.FindMatchingArgument("theInt").RevivedValue); }
protected override void OnObjectReceived(object o) { CommandLineArgumentsDefinition def = new CommandLineArgumentsDefinition(typeof(FilterAction)); def.FindMatchingArgument("FilterTarget").RevivedValueOverride = o; Args.InvokeMain(def, CmdLineArgs.ToArray()); }
protected override void OnObjectReceived(object o) { CommandLineArgumentsDefinition def = new CommandLineArgumentsDefinition(typeof(FilterAction)); var arg = def.FindMatchingArgument("FilterTarget"); def.Metadata.Add(new ArgumentOverrideHook(arg, o)); Args.InvokeMain(def, CmdLineArgs.ToArray()); }
public void TestNullableIsEnum() { var def = new CommandLineArgumentsDefinition(typeof(NullableArgs)); Assert.IsTrue(def.FindMatchingArgument("OptionalDayOfWeek").IsEnum); }