public void ProjectBindingOperation_TryUpdateExistingProjectRuleSet_ExistingRuleSetIsNotAtTheProjectLevel() { // Arrange CSharpVBBindingOperation testSubject = this.CreateTestSubject(); string solutionRuleSetPath = @"X:\SolutionDir\Sonar\Sonar1.ruleset"; string projectRuleSetRoot = @"X:\SolutionDir\Project\"; string[] cases = new[] { "../relativeSolutionLevel.ruleset", @"..\..\relativeSolutionLevel.ruleset", @"X:\SolutionDir\Sonar\absolutionSolutionRooted.ruleset", @"c:\OtherPlaceEntirey\rules.ruleset", "MyCustomRuleSet.ruleset" }; foreach (var currentRuleSet in cases) { // Act string pathOutResult; VsRuleSet rsOutput; bool result = testSubject.TryUpdateExistingProjectRuleSet(solutionRuleSetPath, projectRuleSetRoot, currentRuleSet, out pathOutResult, out rsOutput); // Assert string testCase = currentRuleSet ?? "NULL"; pathOutResult.Should().BeNull("Unexpected rule set path was returned: {0}. Case: {1}", pathOutResult, testCase); rsOutput.Should().BeNull("Unexpected rule set was returned. Case: {0}", testCase); result.Should().BeFalse("Not expecting to update a non project rooted rulesets. Case: {0}", testCase); } }
public void ProjectBindingOperation_TryUpdateExistingProjectRuleSet_RuleSetSaved(bool doesAlreadyExist) { // Arrange CSharpVBBindingOperation testSubject = CreateTestSubject(); string solutionRuleSetPath = @"X:\SolutionDir\Sonar\Sonar1.ruleset"; string projectRuleSetRoot = @"X:\SolutionDir\Project\"; string existingRuleSetFullPath = @"X:\SolutionDir\Project\ExistingSharedRuleSet.ruleset"; string existingRuleSetPropValue = PathHelper.CalculateRelativePath(projectRuleSetRoot, existingRuleSetFullPath); var existingRuleSet = TestRuleSetHelper.CreateTestRuleSet(existingRuleSetFullPath); if (doesAlreadyExist) { testSubject.AlreadyUpdatedExistingRuleSetPaths.Add(existingRuleSet.FilePath, existingRuleSet); } this.ruleSetFS.RegisterRuleSet(existingRuleSet); // Act string pathOutResult; VsRuleSet rsOutput; bool result = testSubject.TryUpdateExistingProjectRuleSet(solutionRuleSetPath, projectRuleSetRoot, existingRuleSetPropValue, out pathOutResult, out rsOutput); // Assert result.Should().BeTrue("Expected to return true when trying to update existing rule set"); rsOutput.Should().Be(existingRuleSet, "Same RuleSet instance is expected"); pathOutResult.Should().Be(existingRuleSetFullPath, "Unexpected rule set path was returned"); }