diff --git a/src/ReferenceCop.Tests/Detectors/AssemblyNameViolationDetectorTests.cs b/src/ReferenceCop.Tests/Detectors/AssemblyNameViolationDetectorTests.cs index b6dca52..218a81d 100644 --- a/src/ReferenceCop.Tests/Detectors/AssemblyNameViolationDetectorTests.cs +++ b/src/ReferenceCop.Tests/Detectors/AssemblyNameViolationDetectorTests.cs @@ -12,6 +12,37 @@ [TestClass] public class AssemblyNameViolationDetectorTests { + [TestMethod] + public void GetViolationsFrom_WhenMultipleRulesDefined_LoadsAndDetectsAllRules() + { + // Arrange. + const string assembly1 = "System.Xml"; + const string assembly2 = "System.Text"; + const string assembly3 = "System.Data"; + var config = new ReferenceCopConfigBuilder() + .WithAssemblyNameRule(assembly1) + .WithAssemblyNameRule(assembly2) + .WithAssemblyNameRule(assembly3) + .Build(); + var detector = new AssemblyNameViolationDetector(new ExactMatchComparer(), config); + var references = new[] + { + ReferenceEvaluationContextFactory.Create(new AssemblyIdentity(assembly1)), + ReferenceEvaluationContextFactory.Create(new AssemblyIdentity(assembly2)), + ReferenceEvaluationContextFactory.Create(new AssemblyIdentity(assembly3)), + ReferenceEvaluationContextFactory.Create(new AssemblyIdentity("System.IO")), + }; + + // Act + var violations = detector.GetViolationsFrom(references).ToList(); + + // Assert + violations.Should().HaveCount(3, "because all three rules should be loaded and detected"); + violations.Should().Contain(v => v.ReferenceName == assembly1); + violations.Should().Contain(v => v.ReferenceName == assembly2); + violations.Should().Contain(v => v.ReferenceName == assembly3); + } + [TestMethod] public void GetViolationsFrom_WhenNoRules_ReturnsEmpty() { diff --git a/src/ReferenceCop/Detectors/AssemblyNameViolationDetector.cs b/src/ReferenceCop/Detectors/AssemblyNameViolationDetector.cs index 0643eb2..14b58d8 100644 --- a/src/ReferenceCop/Detectors/AssemblyNameViolationDetector.cs +++ b/src/ReferenceCop/Detectors/AssemblyNameViolationDetector.cs @@ -51,7 +51,6 @@ private void LoadRulesFrom(ReferenceCopConfig config) try { this.rules.Add(rule.Pattern, rule); - break; } catch (ArgumentException) {