Browse Source

SONAR-9202 add test to verify, that RegisterRules can deactivate 5000 rules

tags/6.6-RC1
Daniel Schwarz 6 years ago
parent
commit
58c5f2d072

+ 41
- 0
server/sonar-server/src/test/java/org/sonar/server/rule/RegisterRulesTest.java View File

@@ -21,6 +21,7 @@ package org.sonar.server.rule;

import java.util.Date;
import java.util.List;
import java.util.stream.IntStream;
import org.junit.Before;
import org.junit.Test;
import org.sonar.api.config.internal.MapSettings;
@@ -182,6 +183,46 @@ public class RegisterRulesTest {
.isEmpty();
}

@Test
public void mass_insert_then_remove_rule() {
int numberOfRules = 5000;

// register many rules
execute(context -> {
RulesDefinition.NewRepository repo = context.createRepository("fake", "java");
IntStream.range(0, numberOfRules).forEach(i ->
repo.createRule(randomAlphanumeric(5))
.setName(randomAlphanumeric(20))
.setHtmlDescription(randomAlphanumeric(20)));
repo.done();
});

// verify db
assertThat(dbClient.ruleDao().selectAllDefinitions(dbTester.getSession()))
.hasSize(numberOfRules)
.extracting(RuleDefinitionDto::getStatus)
.containsOnly(RuleStatus.READY);

// verify index
assertThat(esTester.countDocuments(RuleIndexDefinition.INDEX_TYPE_RULE)).isEqualTo(numberOfRules);
assertThat(ruleIndex.search(new RuleQuery(), new SearchOptions()).getIds())
.isNotEmpty();

// register no rule
execute(context -> context.createRepository("fake", "java").done());

// verify db
assertThat(dbClient.ruleDao().selectAllDefinitions(dbTester.getSession()))
.hasSize(numberOfRules)
.extracting(RuleDefinitionDto::getStatus)
.containsOnly(RuleStatus.REMOVED);

// verify index (documents are still in the index, but all are removed)
assertThat(esTester.countDocuments(RuleIndexDefinition.INDEX_TYPE_RULE)).isEqualTo(numberOfRules);
assertThat(ruleIndex.search(new RuleQuery(), new SearchOptions()).getIds())
.isEmpty();
}

@Test
public void delete_repositories_that_have_been_uninstalled() {
RuleRepositoryDto repository = new RuleRepositoryDto("findbugs", "java", "Findbugs");

Loading…
Cancel
Save