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"); }
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]); }
public void SucceedsWithNoItems() { var parser = new UnorderedParser <string>(UnorderedParsingMode.AnySubset, a, b, c, d); parser.Parses(Tokenize("")) .ParsedValue .ShouldBe(new string[4]); }
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"); } }
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)); } }