public void HasInclude_RelativePaths() { // Arrange var target = TestRuleSetHelper.CreateTestRuleSet(@"c:\aaa\Solution\SomeFolder\fullFilePath.ruleset"); var relativeInclude = @"Solution\SomeFolder\fullFilePath.ruleset".ToLowerInvariant(); // Catch casing errors var sourceWithRelativeInclude = TestRuleSetHelper.CreateTestRuleSetWithIncludes(@"c:\aaa\fullFilePath.ruleset", relativeInclude, "otherInclude.ruleset"); // Alternative directory separator, different relative path format var relativeInclude2 = @"./Solution/SomeFolder/fullFilePath.ruleset"; var sourceWithRelativeInclude2 = TestRuleSetHelper.CreateTestRuleSetWithIncludes(@"c:\aaa\fullFilePath.ruleset", "c://XXX/Solution/SomeFolder/another.ruleset", relativeInclude2); // Case 1: Relative include // Act var hasInclude = RuleSetIncludeChecker.HasInclude(sourceWithRelativeInclude, target); // Assert hasInclude.Should().BeTrue(); // Case 2: Relative include, alternative path separators // Act hasInclude = RuleSetIncludeChecker.HasInclude(sourceWithRelativeInclude2, target); // Assert hasInclude.Should().BeTrue(); }
public void HasInclude_ArgChecks() { var rs = new RuleSet("Name", @"c:\path.ruleset"); Exceptions.Expect <ArgumentNullException>(() => RuleSetIncludeChecker.HasInclude(null, rs)); Exceptions.Expect <ArgumentNullException>(() => RuleSetIncludeChecker.HasInclude(rs, null)); }
public void HasInclude_NoIncludes() { // Arrange var ruleSet = TestRuleSetHelper.CreateTestRuleSet(@"c:\Solution\SomeFolder\fullFilePath.ruleset"); var unreferencedRuleset = TestRuleSetHelper.CreateTestRuleSet(@"c:\unreferenced.ruleset"); // Act No includes at all var include = RuleSetIncludeChecker.HasInclude(ruleSet, unreferencedRuleset); // Assert include.Should().BeFalse(); }
public void HasInclude_NoIncludesFromSourceToTarget() { // Arrange var target = TestRuleSetHelper.CreateTestRuleSet(@"c:\Solution\SomeFolder\fullFilePath.ruleset"); var sourceWithInclude = TestRuleSetHelper.CreateTestRuleSetWithIncludes(@"c:\fullFilePath.ruleset", "include1", "c:\\foo\\include2", "fullFilePath.ruleset"); // Act - No includes from source to target var include = RuleSetIncludeChecker.HasInclude(sourceWithInclude, target); // Assert include.Should().BeFalse(); }
public void HasInclude_RelativePaths_Complex2() { // Arrange var target = TestRuleSetHelper.CreateTestRuleSet(@"c:\Solution\SomeFolder\fullFilePath.ruleset"); var relativeInclude = @"./.\..\..\Dummy1\Dummy2\..\.././Solution\SomeFolder\fullFilePath.ruleset"; var sourceWithRelativeInclude = TestRuleSetHelper.CreateTestRuleSetWithIncludes(@"c:\aaa\bbb\fullFilePath.ruleset", relativeInclude); // Act var hasInclude = RuleSetIncludeChecker.HasInclude(sourceWithRelativeInclude, target); // Assert hasInclude.Should().BeTrue(); }
public void HasInclude_SourceIsTarget_ReturnsTrue() { // Covers the case where the ruleset is included directly in the project, rather // than indirectly as a RuleSetInclude in another ruleset. // Arrange var source = TestRuleSetHelper.CreateTestRuleSet(@"c:\Solution\SomeFolder\fullFilePath.ruleset"); var target = TestRuleSetHelper.CreateTestRuleSet(@"C:/SOLUTION\./SomeFolder\fullFilePath.ruleset"); // Act var include = RuleSetIncludeChecker.HasInclude(source, target); // Assert include.Should().BeTrue(); }
public void HasInclude_AbsolutePaths() { // Arrange var target = TestRuleSetHelper.CreateTestRuleSet(@"c:\Solution\SomeFolder\fullFilePath.ruleset"); var absoluteInclude = target.FilePath.ToUpperInvariant(); // Catch casing errors var sourceWithAbsoluteInclude = TestRuleSetHelper.CreateTestRuleSetWithIncludes(@"c:\fullFilePath.ruleset", ".\\include1.ruleset", absoluteInclude, "c:\\dummy\\include2.ruleset"); // Act var hasInclude = RuleSetIncludeChecker.HasInclude(sourceWithAbsoluteInclude, target); // Assert hasInclude.Should().BeTrue(); }
public void HasInclude_RelativePaths_Complex() { // Regression test for https://github.com/SonarSource/sonarlint-visualstudio/issues/658 // "SonarLint for Visual Studio 2017 plugin does not respect shared imports " // Arrange var target = TestRuleSetHelper.CreateTestRuleSet(@"c:\Solution\SomeFolder\fullFilePath.ruleset"); var relativeInclude = @".\..\..\Solution\SomeFolder\fullFilePath.ruleset"; var sourceWithRelativeInclude = TestRuleSetHelper.CreateTestRuleSetWithIncludes(@"c:\aaa\bbb\fullFilePath.ruleset", relativeInclude); // Act var hasInclude = RuleSetIncludeChecker.HasInclude(sourceWithRelativeInclude, target); // Assert hasInclude.Should().BeTrue(); }