public void RuleSetUpdater_RemoveAllIncludesUnderRoot() { // Arrange const string slnRoot = @"X:\SolutionDir\"; string projectRoot = Path.Combine(slnRoot, @"Project\"); string sonarRoot = Path.Combine(slnRoot, @"Sonar\"); string commonRoot = Path.Combine(slnRoot, @"Common\"); const string sonarRs1FileName = "Sonar1.ruleset"; const string sonarRs2FileName = "Sonar2.ruleset"; const string projectRsBaseFileName = "ProjectBase.ruleset"; const string commonRs1FileName = "SolutionCommon1.ruleset"; const string commonRs2FileName = "SolutionCommon2.ruleset"; var sonarRs1 = TestRuleSetHelper.CreateTestRuleSet(sonarRoot, sonarRs1FileName); var sonarRs2 = TestRuleSetHelper.CreateTestRuleSet(sonarRoot, sonarRs2FileName); var projectBaseRs = TestRuleSetHelper.CreateTestRuleSet(projectRoot, projectRsBaseFileName); var commonRs1 = TestRuleSetHelper.CreateTestRuleSet(commonRoot, commonRs1FileName); var commonRs2 = TestRuleSetHelper.CreateTestRuleSet(commonRoot, commonRs2FileName); var inputRuleSet = TestRuleSetHelper.CreateTestRuleSet(projectRoot, "test.ruleset"); AddRuleSetInclusion(inputRuleSet, projectBaseRs, useRelativePath: true); AddRuleSetInclusion(inputRuleSet, commonRs1, useRelativePath: true); AddRuleSetInclusion(inputRuleSet, commonRs2, useRelativePath: false); AddRuleSetInclusion(inputRuleSet, sonarRs1, useRelativePath: true); AddRuleSetInclusion(inputRuleSet, sonarRs2, useRelativePath: false); var expectedRuleSet = TestRuleSetHelper.CreateTestRuleSet(projectRoot, "test.ruleset"); AddRuleSetInclusion(expectedRuleSet, projectBaseRs, useRelativePath: true); AddRuleSetInclusion(expectedRuleSet, commonRs1, useRelativePath: true); AddRuleSetInclusion(expectedRuleSet, commonRs2, useRelativePath: false); // Act RuleSetUpdater.RemoveAllIncludesUnderRoot(inputRuleSet, sonarRoot); // Assert RuleSetAssert.AreEqual(expectedRuleSet, inputRuleSet); }