public void Single_Test()
        {
            var target = SyntheticArguments.Single("test");

            target.GetAllArguments().Count().Should().Be(1);
            target.Shift().AsString().Should().Be("test");
        }
        public void Get_Index_AlreadyConsumed()
        {
            var target = SyntheticArguments.Single("test");

            target.Get(0).Should().NotBeOfType <MissingArgument>();
            target.Get(0).MarkConsumed();
            target.Get(0).Should().BeOfType <MissingArgument>();
        }
Пример #3
0
        public Command Format(IArguments args)
        {
            var argsList = _args
                           .SelectMany(a => a.Access(args))
                           .Where(a => a != null)
                           .ToList();
            var commandArguments = new SyntheticArguments(argsList);

            return(Command.Create(_verb, commandArguments));
        }
Пример #4
0
        public void GetInstance_echo()
        {
            var target     = new NinjectHandlerSource(null, null);
            var handlers   = new HandlerSourceCollection(new[] { target }, new AliasMap());
            var state      = new EngineState(true, new EngineEventCatalog(), new EngineSettings());
            var dispatcher = new CommandDispatcher(CommandParser.GetDefault(), handlers, new InstanceEnvironmentCollection(null), state, new ConsoleOutput());
            var result     = target.GetInstance(Command.Create("echo", SyntheticArguments.Empty()), dispatcher);

            result.Should().BeOfType <EchoHandler>();
        }
        public void GetAll_Named_Empty()
        {
            var target = new SyntheticArguments(new[]
            {
                new NamedArgument("a", "1"),
                new NamedArgument("a", "2")
            });
            var result = target.GetAll("XXX").ToList();

            result.Count.Should().Be(0);
        }
        public void Shift_Test()
        {
            var target = new SyntheticArguments(new[]
            {
                new PositionalArgument("a"),
                new PositionalArgument("b")
            });

            target.Shift().Value.Should().Be("a");
            target.Shift().Value.Should().Be("b");
            target.Shift().Should().BeOfType <MissingArgument>();
        }
        public void VerifyAllAreConsumed_NotConsumed()
        {
            var target = new SyntheticArguments(new IArgument[]
            {
                new PositionalArgument("test1"),
                new NamedArgument("b", "test2"),
                new FlagArgument("c")
            });
            Action act = () => target.VerifyAllAreConsumed();

            act.Should().Throw <CommandArgumentException>();
        }
Пример #8
0
        public void Environment_Test()
        {
            var target       = new NinjectHandlerSource(null, null);
            var handlers     = new HandlerSourceCollection(new[] { target }, new AliasMap());
            var environments = new InstanceEnvironmentCollection(new TestEnvironment("test"));
            var state        = new EngineState(true, new EngineEventCatalog(), new EngineSettings());
            var dispatcher   = new CommandDispatcher(CommandParser.GetDefault(), handlers, environments, state, new ConsoleOutput());
            var result       = target.GetInstance(Command.Create("test-environment", SyntheticArguments.Empty()), dispatcher) as EnvironmentInjectionTestHandler;

            result.Should().NotBeNull();
            result.Environment.Should().NotBeNull();
            result.Environment.Should().BeOfType <TestEnvironment>();
        }
        public void From_Dictionary()
        {
            var target = SyntheticArguments.From(
                new Dictionary <string, string>
            {
                { "a", "1" },
                { "b", "2" }
            }
                );

            target.Get("a").AsString().Should().Be("1");
            target.Get("b").AsString().Should().Be("2");
        }
        public void GetAll_Named_Test()
        {
            var target = new SyntheticArguments(new[]
            {
                new NamedArgument("a", "1"),
                new NamedArgument("a", "2")
            });
            var result = target.GetAll("a").Cast <INamedArgument>().ToList();

            result.Count.Should().Be(2);
            result[0].Value.Should().Be("1");
            result[1].Value.Should().Be("2");
        }
        public void MapTo_Test()
        {
            var target = new SyntheticArguments(new IArgument[]
            {
                new PositionalArgument("test1"),
                new NamedArgument("b", "test2"),
                new FlagArgument("c")
            });
            var result = target.MapTo <TestArgs1>();

            result.A.Should().Be("test1");
            result.B.Should().Be("test2");
            result.C.Should().BeTrue();
            result.D.Should().BeFalse();
        }
        public void VerifyAllAreConsumed_Consumed()
        {
            var target = new SyntheticArguments(new IArgument[]
            {
                new PositionalArgument("test1"),
                new NamedArgument("b", "test2"),
                new FlagArgument("c")
            });

            target.Consume(0);
            target.Consume("b");
            target.ConsumeFlag("c");
            Action act = () => target.VerifyAllAreConsumed();

            act.Should().NotThrow();
        }
        public void Get_Named_Consumed()
        {
            var target = new SyntheticArguments(new[]
            {
                new NamedArgument("a", "1"),
                new NamedArgument("a", "2")
            });
            var result = target.Get("a");

            result.Value.Should().Be("1");
            result.MarkConsumed();

            result = target.Get("a");
            result.Value.Should().Be("2");
            result.MarkConsumed();

            result = target.Get("a");
            result.Should().BeOfType <MissingArgument>();
        }
        public void Get_Index_TooHigh()
        {
            var target = SyntheticArguments.Empty();

            target.Get(0).Should().BeOfType <MissingArgument>();
        }
        public void Empty_Test()
        {
            var target = SyntheticArguments.Empty();

            target.GetAllArguments().Count().Should().Be(0);
        }