private static PatternNode ParseAndValidate(string pattern)
        {
            var parser     = new PatternParser();
            var errorsSink = new PatternCompilerErrorsSink();

            parser.TryParse(pattern, errorsSink, out var parsedPattern).Should().BeTrue();
            errorsSink.Errors.Should().HaveCount(0);
            errorsSink.HasErrors.Should().BeFalse();
            parsedPattern.Should().NotBeNull();
            return(parsedPattern !);
        }
        private void Validate(string pattern)
        {
            var parser     = new PatternParser();
            var errorsSink = new PatternCompilerErrorsSink();

            parser.TryParse(pattern, errorsSink, out var parsedPattern).Should().BeTrue();
            parsedPattern.Should().NotBeNull();
            errorsSink.HasErrors.Should().BeFalse();

            validator.Validate(parsedPattern !, errorsSink).Should().BeTrue();
            errorsSink.HasErrors.Should().BeFalse();
        }
        private void Validate(string pattern, string errorContainsText)
        {
            var parser     = new PatternParser();
            var errorsSink = new PatternCompilerErrorsSink();

            parser.TryParse(pattern, errorsSink, out var parsedPattern).Should().BeTrue();
            parsedPattern.Should().NotBeNull();
            errorsSink.HasErrors.Should().BeFalse();

            validator.Validate(parsedPattern !, errorsSink).Should().BeFalse();
            errorsSink.HasErrors.Should().BeTrue();
            errorsSink.Errors.Any(e => e.Message.ContainsOrdinalIgnoreCase(errorContainsText)).Should().BeTrue();
        }
示例#4
0
 public bool Validate(
     PatternNode pattern,
     PatternCompilerErrorsSink errorsSink)
 {
     try
     {
         Validate <NoConsecutiveSegmentStartValidator>(pattern);
         Validate <NoConsecutiveWildcardValidator>(pattern);
         Validate <OneVariablePerSegmentValidator>(pattern);
         Validate <NoVariableFollowedByWildcardValidator>(pattern);
         Validate <VariableNameValidator>(pattern);
         return(true);
     }
     catch (PatternException pe)
     {
         errorsSink.AddError(pe.Message);
         return(false);
     }
 }
        private static void ParseAndValidate(
            string pattern,
            int count,
            string messageContains,
            int?location = null)
        {
            var parser     = new PatternParser();
            var errorsSink = new PatternCompilerErrorsSink();

            parser.TryParse(pattern, errorsSink, out var parsedPattern).Should().BeFalse();

            parsedPattern.Should().BeNull();
            errorsSink.HasErrors.Should().BeTrue();
            errorsSink.Errors.Should().HaveCount(count);
            var error = errorsSink.Errors[0];

            error.Location.Should().Be(location);
            error.Message.Should().Contain(messageContains);
        }