private void ProjectSystemFilter_IsAccepted_SupportedNotExcludedProject_IsKnownTestProject(string projectExtension) { // Arrange var testSubject = this.CreateTestSubject(); var project = new ProjectMock("knownproject" + projectExtension); project.SetBuildProperty(Constants.SonarQubeExcludeBuildPropertyKey, "false"); // Should evaluate test projects even if false project.SetCSProjectKind(); // Case 1: Test not test project kind, test project exclude not set project.SetBuildProperty(Constants.SonarQubeTestProjectBuildPropertyKey, ""); // Should not continue with evaluation if has boolean value // Act bool result = testSubject.IsAccepted(project); // Assert result.Should().BeTrue("Project not a known test project"); // Case 2: Test project kind, test project exclude not set project.SetTestProject(); // Act result = testSubject.IsAccepted(project); // Assert result.Should().BeFalse("Project of known test project type should NOT be accepted"); // Case 3: SonarQubeTestProjectBuildPropertyKey == false, should take precedence over project kind condition project.SetBuildProperty(Constants.SonarQubeTestProjectBuildPropertyKey, "false"); project.ClearProjectKind(); // Act result = testSubject.IsAccepted(project); // Assert result.Should().BeTrue("Should be accepted since test project is explicitly not-excluded"); // Case 4: SonarQubeTestProjectBuildPropertyKey == true, should take precedence over project kind condition project.SetBuildProperty(Constants.SonarQubeTestProjectBuildPropertyKey, "true"); project.ClearProjectKind(); // Act result = testSubject.IsAccepted(project); // Assert result.Should().BeFalse("Should not be accepted since test project is excluded"); }
public void ProjectSystemFilter_IsAccepted_SupportedNotExcludedProject_IsKnownTestProject() { // Setup var testSubject = this.CreateTestSubject(); var project = new ProjectMock("knownproject.csproj"); project.SetBuildProperty(Constants.SonarQubeExcludeBuildPropertyKey, "false"); // Should evaluate test projects even if false project.SetCSProjectKind(); // Case 1: Test not test project kind, test project exclude not set project.SetBuildProperty(Constants.SonarQubeTestProjectBuildPropertyKey, ""); // Should not continue with evaluation if has boolean value // Act bool result = testSubject.IsAccepted(project); // Verify Assert.IsTrue(result, "Project not a known test project"); // Case 2: Test project kind, test project exclude not set project.SetTestProject(); // Act result = testSubject.IsAccepted(project); // Verify Assert.IsFalse(result, "Project of known test project type should NOT be accepted"); // Case 3: SonarQubeTestProjectBuildPropertyKey == false, should take precedence over project kind condition project.SetBuildProperty(Constants.SonarQubeTestProjectBuildPropertyKey, "false"); project.ClearProjectKind(); // Act result = testSubject.IsAccepted(project); // Verify Assert.IsTrue(result, "Should be accepted since test project is explicitly not-excluded"); // Case 4: SonarQubeTestProjectBuildPropertyKey == true, should take precedence over project kind condition project.SetBuildProperty(Constants.SonarQubeTestProjectBuildPropertyKey, "true"); project.ClearProjectKind(); // Act result = testSubject.IsAccepted(project); // Verify Assert.IsFalse(result, "Should not be accepted since test project is excluded"); }