コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        protected override void OnObjectReceived(object o)
        {
            CommandLineArgumentsDefinition def = new CommandLineArgumentsDefinition(typeof(FilterAction));

            def.FindMatchingArgument("FilterTarget").RevivedValueOverride = o;
            Args.InvokeMain(def, CmdLineArgs.ToArray());
        }
コード例 #4
0
ファイル: Filter.cs プロジェクト: remcoros/PowerArgs
        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());
        }
コード例 #5
0
        public void TestNullableIsEnum()
        {
            var def = new CommandLineArgumentsDefinition(typeof(NullableArgs));

            Assert.IsTrue(def.FindMatchingArgument("OptionalDayOfWeek").IsEnum);
        }
コード例 #6
0
ファイル: Filter.cs プロジェクト: abbottdev/PowerArgs
 protected override void OnObjectReceived(object o)
 {
     CommandLineArgumentsDefinition def = new CommandLineArgumentsDefinition(typeof(FilterAction));
     def.FindMatchingArgument("FilterTarget").RevivedValueOverride = o;
     Args.InvokeMain(def, CmdLineArgs.ToArray());
 }