コード例 #1
0
        public void Work_With_Letters()
        {
            // arrange
            var    builder = DefaultBuilder.CreateDefaultBuilder();
            var    root    = builder.Context.ParserRepository.Get("util");
            string value   = null;
            var    sut     = new SeparatedSwitch(root, 'v', "value", (o, s) => { value = s; })
            {
                Separator = ":"
            };
            var info = new IterationInfo("-v:a".Split(' '));

            // act
            // assert
            var canConsumeResult = sut.CanConsume("", info);

            canConsumeResult.ConsumingParameter.Should().BeSameAs(sut);
            canConsumeResult.NumConsumed.Should().Be(1);
            canConsumeResult.ParseExceptions.Should().BeEmpty();
            canConsumeResult.Info.Index.Should().Be(1);

            var consumeResult = sut.Consume("", new ConsumptionRequest(info));

            consumeResult.ConsumingParameter.Should().BeSameAs(sut);
            consumeResult.NumConsumed.Should().Be(1);
            consumeResult.ParseExceptions.Should().BeEmpty();
            consumeResult.Info.Index.Should().Be(1);
        }
コード例 #2
0
        public void Consume_Everything_After_The_Separator_As_A_Single_Value0()
        {
            // arrange
            var    builder = DefaultBuilder.CreateDefaultBuilder();
            var    root    = builder.Context.ParserRepository.Get("util");
            string value   = null;
            var    sut     = new SeparatedSwitch(root, 'v', "value", (o, s) => { value = s; });

            // act
            var info = new IterationInfo("-v=a".Split(' '));
            var res  = sut.Consume("", new ConsumptionRequest(info));

            // assert
            res.ConsumingParameter.Should().BeSameAs(sut);
            value.Should().Be("a");
        }