aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-scanner-engine/src/test
diff options
context:
space:
mode:
authorJacek <jacek.poreda@sonarsource.com>2022-10-21 15:08:31 +0200
committersonartech <sonartech@sonarsource.com>2022-10-24 20:04:04 +0000
commit7f3da255793c2a0ed4b25df593f159e8cb13a19c (patch)
tree772b0bba9df3703857cbbd4d299ca60a4796c57e /sonar-scanner-engine/src/test
parenteb249087f989c12a7e25c72a91a8eb7cd3ef0a9d (diff)
downloadsonarqube-7f3da255793c2a0ed4b25df593f159e8cb13a19c.tar.gz
sonarqube-7f3da255793c2a0ed4b25df593f159e8cb13a19c.zip
SONAR-17331 Log message when Elasticsearch index requires re-indexing
Diffstat (limited to 'sonar-scanner-engine/src/test')
-rw-r--r--sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java
index 625fa4e4c5c..9902b2ed260 100644
--- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java
+++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java
@@ -29,6 +29,7 @@ import org.junit.Test;
import org.sonar.api.batch.rule.LoadedActiveRule;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rule.Severity;
+import org.sonar.api.utils.MessageException;
import org.sonar.scanner.WsTestUtil;
import org.sonar.scanner.bootstrap.DefaultScannerWsClient;
import org.sonar.scanner.scan.branch.BranchConfiguration;
@@ -41,6 +42,7 @@ import org.sonarqube.ws.Rules.SearchResponse;
import org.sonarqube.ws.Rules.SearchResponse.Builder;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
@@ -90,6 +92,15 @@ public class DefaultActiveRulesLoaderTest {
verifyNoMoreInteractions(wsClient);
}
+ @Test
+ public void exception_thrown_when_elasticsearch_index_inconsistent() {
+ WsTestUtil.mockStream(wsClient, urlOfPage(1), prepareCorruptedResponse());
+ assertThatThrownBy(() -> loader.load("c+-test_c+-values-17445"))
+ .isInstanceOf(MessageException.class)
+ .hasMessage("Elasticsearch indices have become inconsistent. Consider re-indexing. " +
+ "Check documentation for more information https://docs.sonarqube.org/latest/setup/troubleshooting");
+ }
+
private String urlOfPage(int page) {
return "/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt,deprecatedKeys&activation=true"
+ ("") + "&qprofile=c%2B-test_c%2B-values-17445&ps=500&p=" + page + "";
@@ -130,4 +141,23 @@ public class DefaultActiveRulesLoaderTest {
rules.setTotal(total);
return new ByteArrayInputStream(rules.build().toByteArray());
}
+
+ private InputStream prepareCorruptedResponse() {
+ Builder rules = SearchResponse.newBuilder();
+ Actives.Builder actives = Actives.newBuilder();
+
+ IntStream.rangeClosed(1, 3)
+ .mapToObj(i -> RuleKey.of("java", "S" + i))
+ .forEach(key -> {
+
+ Rule.Builder ruleBuilder = Rule.newBuilder();
+ ruleBuilder.setKey(key.toString());
+ rules.addRules(ruleBuilder);
+ });
+
+ rules.setActives(actives);
+ rules.setPs(3);
+ rules.setTotal(3);
+ return new ByteArrayInputStream(rules.build().toByteArray());
+ }
}