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