Ejemplo n.º 1
0
        public void ReturnsLastApplicableMatcher()
        {
            var expected = new RelativePathMatcher(new Regex("^some/arbitrary/path/.*$"), FilterRule.Include);

            Assume.That(expected.Matches(SomeArbitraryPath), Is.True);

            var matchers = new [] {
Ejemplo n.º 2
0
        public RelativePathMatcher Read(MatchElement filter)
        {
            var matcherCount = 0;
            var matcher      = new RelativePathMatcher(filter.Rule);

            if (filter.Regex != null)
            {
                matcherCount++;
                matcher = TryReadRegex(filter);
            }
            if (filter.Glob != null)
            {
                matcherCount++;
                matcher = TryReadGlob(filter);
            }
            if (filter.Extension != null)
            {
                matcherCount++;
                matcher = TryReadExtension(filter);
            }
            if (matcherCount > 1)
            {
                errors.Record(new MultipleMatchersSpecified()).SetLocation(filter.ElementInformation);
            }
            return(matcher);
        }
Ejemplo n.º 3
0
 public ExcludedByFilterEvent(LocalRoot localRoot, RelativePath relativePath, RelativePathMatcher matcher) : base(localRoot, relativePath)
 {
     if (matcher.Rule != FilterRule.Exclude)
     {
         throw new ArgumentException("Matcher is not an exclude rule.");
     }
     this.matcher = matcher;
 }
        public ConfigurationRuleViolation AddFilter(LocalRoot owner, RelativePathMatcher filterRule)
        {
            if (!nodes.Contains(owner))
            {
                throw new InvalidOperationException($"Owner is not yet declared: {owner}");
            }

            if (!filters.TryGetValue(owner, out var list))
            {
                list = new List <RelativePathMatcher>();
                filters.Add(owner, list);
            }
            list.Add(filterRule);
            return(null);
        }