summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorEric Hartmann <hartmann.eric@gmail.com>2017-09-05 10:46:34 +0200
committerEric Hartmann <hartmann.eric@gmail.Com>2017-09-14 18:18:20 +0200
commit9a4c4e50641c73064fef10fa4c2073439bc38651 (patch)
tree8284093da88dd9125e015bdee2ec202a13f9d793 /tests
parentf8d11ce6dea055ea75ab7d325fb1530c0e98612a (diff)
downloadsonarqube-9a4c4e50641c73064fef10fa4c2073439bc38651.tar.gz
sonarqube-9a4c4e50641c73064fef10fa4c2073439bc38651.zip
SONAR-9760 Throw an exception when indexation is failing
Diffstat (limited to 'tests')
-rw-r--r--tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java32
1 files changed, 31 insertions, 1 deletions
diff --git a/tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java b/tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java
index 6d6adeb2030..b522d311f74 100644
--- a/tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java
+++ b/tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java
@@ -22,6 +22,9 @@ package org.sonarqube.tests.analysis;
import com.sonar.orchestrator.Orchestrator;
import com.sonar.orchestrator.build.BuildResult;
import com.sonar.orchestrator.build.SonarScanner;
+import com.sonar.orchestrator.util.NetworkUtils;
+import java.net.InetAddress;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -36,6 +39,7 @@ import org.sonarqube.tests.Tester;
import org.sonarqube.ws.Issues;
import org.sonarqube.ws.Organizations.Organization;
import org.sonarqube.ws.QualityProfiles.CreateWsResponse.QualityProfile;
+import org.sonarqube.ws.WsCe;
import org.sonarqube.ws.WsProjects;
import org.sonarqube.ws.WsUsers.CreateWsResponse.User;
import org.sonarqube.ws.client.component.SuggestionsWsRequest;
@@ -45,6 +49,7 @@ import util.ItUtils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.tuple;
import static org.sonarqube.tests.Byteman.Process.CE;
+import static org.sonarqube.ws.WsCe.TaskStatus.FAILED;
import static util.ItUtils.projectDir;
public class AnalysisEsResilienceTest {
@@ -52,12 +57,14 @@ public class AnalysisEsResilienceTest {
@ClassRule
public static final Orchestrator orchestrator;
private static final Byteman byteman;
+ private static final int esHttpPort = NetworkUtils.getNextAvailablePort(InetAddress.getLoopbackAddress());
static {
byteman = new Byteman(Orchestrator.builderEnv(), CE);
orchestrator = byteman
.getOrchestratorBuilder()
.addPlugin(ItUtils.xooPlugin())
+ .setServerProperty("sonar.search.httpPort", "" + esHttpPort)
.build();
}
@@ -67,6 +74,9 @@ public class AnalysisEsResilienceTest {
@After
public void after() throws Exception {
byteman.deactivateAllRules();
+ for (String index : Arrays.asList("issues", "rules", "users", "components", "views", "tests", "projectmeasures")) {
+ tester.elasticsearch().unlockWrites(index);
+ }
}
@Test
@@ -117,6 +127,27 @@ public class AnalysisEsResilienceTest {
tuple(file3Key, "OPEN"));
}
+ @Test
+ public void compute_engine_task_must_be_red_when_es_is_not_available() throws Exception {
+ Organization organization = tester.organizations().generate();
+ User orgAdministrator = tester.users().generateAdministrator(organization);
+ WsProjects.CreateWsResponse.Project project = tester.projects().generate(organization);
+ String projectKey = project.getKey();
+ String fileKey = projectKey + ":src/main/xoo/sample/Sample.xoo";
+
+ QualityProfile profile = tester.qProfiles().createXooProfile(organization);
+ tester.qProfiles()
+ .activateRule(profile, "xoo:OneIssuePerFile")
+ .assignQProfileToProject(profile, project);
+
+ tester.elasticsearch().lockWrites("issues");
+
+ String analysisKey = executeAnalysis(projectKey, organization, orgAdministrator, "analysis/resilience/resilience-sample-v1");
+ WsCe.TaskResponse task = tester.wsClient().ce().task(analysisKey);
+
+ assertThat(task.getTask().getStatus()).isEqualTo(FAILED);
+ }
+
private List<Issues.Issue> searchIssues(String projectKey) {
SearchWsRequest request = new SearchWsRequest()
.setProjectKeys(Collections.singletonList(projectKey));
@@ -146,5 +177,4 @@ public class AnalysisEsResilienceTest {
"sonar.password", orgAdministrator.getLogin()));
return ItUtils.extractCeTaskId(buildResult);
}
-
}