From 4be016e61f4d1e4fed297dd7eb3b3ccb286f0f81 Mon Sep 17 00:00:00 2001 From: Duarte Meneses Date: Tue, 8 Sep 2015 15:24:50 +0200 Subject: SONAR-6817 Issues mode should support analysis of projects not associated --- .../src/test/java/batch/IssuesModeTest.java | 43 +++++++++++++++++----- 1 file changed, 33 insertions(+), 10 deletions(-) (limited to 'it/it-tests') diff --git a/it/it-tests/src/test/java/batch/IssuesModeTest.java b/it/it-tests/src/test/java/batch/IssuesModeTest.java index 651546c0535..5e3c0660b66 100644 --- a/it/it-tests/src/test/java/batch/IssuesModeTest.java +++ b/it/it-tests/src/test/java/batch/IssuesModeTest.java @@ -69,28 +69,45 @@ public class IssuesModeTest { } @Test - public void issuesAnalysisOnNewProject() throws IOException { + public void issues_analysis_on_new_project() throws IOException { restoreProfile("one-issue-per-line.xml"); orchestrator.getServer().provisionProject("sample", "xoo-sample"); orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); SonarRunner runner = configureRunnerIssues("shared/xoo-sample"); - orchestrator.executeBuild(runner); + BuildResult result = orchestrator.executeBuild(runner); + assertThat(ItUtils.countIssuesInJsonReport(result, true)).isEqualTo(17); } - + @Test - public void invalidIncrementalMode() throws IOException { + public void invalid_incremental_mode() throws IOException { restoreProfile("one-issue-per-line.xml"); orchestrator.getServer().provisionProject("sample", "xoo-sample"); orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); SonarRunner runner = configureRunner("shared/xoo-sample"); runner.setProperty("sonar.analysis.mode", "incremental"); - + thrown.expect(BuildFailureException.class); BuildResult res = orchestrator.executeBuild(runner); - + assertThat(res.getLogs()).contains("Invalid analysis mode: incremental. This mode was removed in SonarQube 5.2"); } + @Test + public void non_associated_mode() throws IOException { + restoreProfile("one-issue-per-line.xml"); + setDefaultQualityProfile("xoo", "one-issue-per-line"); + SonarRunner runner = configureRunnerIssues("shared/xoo-sample-non-associated"); + BuildResult result = orchestrator.executeBuild(runner); + + assertThat(result.getLogs()).contains("is not associated"); + assertThat(result.getLogs()).contains("Cache not found, synchronizing data"); + assertThat(ItUtils.countIssuesInJsonReport(result, true)).isEqualTo(17); + + result = orchestrator.executeBuild(runner); + assertThat(ItUtils.countIssuesInJsonReport(result, true)).isEqualTo(17); + assertThat(result.getLogs()).contains("Found cache"); + } + // SONAR-5715 @Test public void test_issues_mode_on_project_with_space_in_filename() throws IOException { @@ -329,16 +346,16 @@ public class IssuesModeTest { boolean expectedError = false; for (Future result : executorService.invokeAll(tasks)) { try { - result.get(); - } catch(ExecutionException e) { - if(e.getCause() instanceof BuildFailureException) { + result.get(); + } catch (ExecutionException e) { + if (e.getCause() instanceof BuildFailureException) { BuildFailureException bfe = (BuildFailureException) e.getCause(); assertThat(bfe.getResult().getLogs()).contains("Another SonarQube analysis is already in progress for this project"); expectedError = true; } } } - if(!expectedError) { + if (!expectedError) { fail("At least one of the threads should have failed"); } } @@ -370,4 +387,10 @@ public class IssuesModeTest { return runner; } + private void setDefaultQualityProfile(String languageKey, String profileName) { + orchestrator.getServer().adminWsClient().post("api/qualityprofiles/set_default", + "language", languageKey, + "profileName", profileName); + } + } -- cgit v1.2.3