예제 #1
0
        public void FailsOnUnexpectedItem()
        {
            var parser = new UnorderedParser <string>(UnorderedParsingMode.FullSet, a, b, c);

            parser
            .FailsToParse(Tokenize("abX"))
            .FailureMessages
            .ToString()
            .ShouldBe("c expected");

            parser
            .FailsToParse(Tokenize("abX"))
            .FailureMessages
            .ToString()
            .ShouldBe("c expected");

            parser
            .FailsToParse(Tokenize("aXb"))
            .FailureMessages
            .ToString()
            .ShouldBe("b or c expected");

            parser
            .FailsToParse(Tokenize("Xab"))
            .FailureMessages
            .ToString()
            .ShouldBe("a, b or c expected");
        }
예제 #2
0
        public void SucceedsWithNoKnownItemsSeparated()
        {
            var parser = new UnorderedParser <string>(separator, UnorderedParsingMode.AnySubset, a, b, c, d);

            parser.Parses(Tokenize("X"), false)
            .ParsedValue
            .ShouldBe(new string[4]);
        }
예제 #3
0
        public void SucceedsWithNoItems()
        {
            var parser = new UnorderedParser <string>(UnorderedParsingMode.AnySubset, a, b, c, d);

            parser.Parses(Tokenize(""))
            .ParsedValue
            .ShouldBe(new string[4]);
        }
예제 #4
0
        public void FailsOnMissingItemSeparated()
        {
            var parser = new UnorderedParser <string>(separator, UnorderedParsingMode.FullSet, a, b, c, d);

            foreach (var input in GetPermutationsSeparated("abc"))
            {
                parser.FailsToParse(Tokenize(input))
                .FailureMessages
                .ToString()
                .ShouldBe(", expected");
            }
        }
예제 #5
0
        public void ParsesNonemptySubsetsOfItemsSeparated()
        {
            var parser = new UnorderedParser <string>(separator, UnorderedParsingMode.NonemptySubset, a, b, c);

            foreach (var input in
                     GetPermutationsSeparated("abc")
                     .Concat(GetPermutationsSeparated("ab"))
                     .Concat(GetPermutationsSeparated("bc"))
                     .Concat(GetPermutationsSeparated("ac"))
                     .Concat(GetPermutationsSeparated("a"))
                     .Concat(GetPermutationsSeparated("b"))
                     .Concat(GetPermutationsSeparated("c")))
            {
                parser.Parses(Tokenize(input));
            }
        }