public void RuleSetHelper_FindInclude_ArgChecks() { RuleSet rs = new RuleSet("Name", @"c:\path.ruleset"); Exceptions.Expect <ArgumentNullException>(() => RuleSetHelper.FindInclude(null, rs)); Exceptions.Expect <ArgumentNullException>(() => RuleSetHelper.FindInclude(rs, null)); }
public void RuleSetHelper_FindInclude() { // Arrange RuleSet target = TestRuleSetHelper.CreateTestRuleSet(@"c:\Solution\SomeFolder\fullFilePath.ruleset"); RuleSet sourceWithRelativeInclude = TestRuleSetHelper.CreateTestRuleSet(@"c:\fullFilePath.ruleset"); string relativeInclude = @"Solution\SomeFolder\fullFilePath.ruleset".ToLowerInvariant(); // Catch casing errors sourceWithRelativeInclude.RuleSetIncludes.Add(new RuleSetInclude(relativeInclude, RuleAction.Error)); RuleSet sourceWithAbsoluteInclude = TestRuleSetHelper.CreateTestRuleSet(@"c:\fullFilePath.ruleset"); string absoluteInclude = target.FilePath.ToUpperInvariant(); // Catch casing errors sourceWithAbsoluteInclude.RuleSetIncludes.Add(new RuleSetInclude(absoluteInclude, RuleAction.Warning)); RuleSetInclude include; // Case 1: Relative include // Act include = RuleSetHelper.FindInclude(sourceWithRelativeInclude, target); // Assert StringComparer.OrdinalIgnoreCase.Equals(include.FilePath, relativeInclude).Should().BeTrue($"Unexpected include {include.FilePath} instead of {relativeInclude}"); // Case 2: Absolute include // Act include = RuleSetHelper.FindInclude(sourceWithAbsoluteInclude, target); // Assert StringComparer.OrdinalIgnoreCase.Equals(include.FilePath, absoluteInclude).Should().BeTrue($"Unexpected include {include.FilePath} instead of {absoluteInclude}"); // Case 3: No includes at all // Act include = RuleSetHelper.FindInclude(target, target); // Assert include.Should().BeNull("No includes at all"); // Case 4: No includes from source to target // Act include = RuleSetHelper.FindInclude(sourceWithRelativeInclude, sourceWithAbsoluteInclude); // Assert include.Should().BeNull("No includes from source to target"); }