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(); }
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); }