From 348f7e238941c175df2c7e2e4a0031cbf9b28b99 Mon Sep 17 00:00:00 2001 From: Stephane Gamard Date: Tue, 29 Apr 2014 15:54:15 +0200 Subject: [PATCH] SONAR-5237 - Fixed sleeping test & added ActiveRule to RuleIndex --- .../org/sonar/server/rule2/RuleIndex.java | 19 ++++- .../sonar/server/rule2/RuleMediumTest.java | 69 ++++++++++++------- 2 files changed, 60 insertions(+), 28 deletions(-) diff --git a/sonar-server/src/main/java/org/sonar/server/rule2/RuleIndex.java b/sonar-server/src/main/java/org/sonar/server/rule2/RuleIndex.java index 16171b74395..30372871c56 100644 --- a/sonar-server/src/main/java/org/sonar/server/rule2/RuleIndex.java +++ b/sonar-server/src/main/java/org/sonar/server/rule2/RuleIndex.java @@ -19,6 +19,9 @@ */ package org.sonar.server.rule2; +import org.sonar.core.qualityprofile.db.ActiveRuleDto; + +import org.sonar.core.qualityprofile.db.ActiveRuleDao; import org.apache.commons.beanutils.BeanUtils; import org.elasticsearch.common.xcontent.XContentBuilder; import org.slf4j.Logger; @@ -43,8 +46,11 @@ public class RuleIndex extends BaseIndex { private static final Logger LOG = LoggerFactory.getLogger(RuleIndex.class); - public RuleIndex(WorkQueue queue, RuleDao dao, Profiling profiling, ESNode node) { + private ActiveRuleDao activeRuleDao; + + public RuleIndex(WorkQueue queue, RuleDao dao, ActiveRuleDao ActiveRuleDao, Profiling profiling, ESNode node) { super(queue, dao, profiling, node); + this.activeRuleDao = ActiveRuleDao; } @Override @@ -157,10 +163,19 @@ public class RuleIndex extends BaseIndex { Map properties = BeanUtils.describe(rule); for (Entry property : properties.entrySet()) { - LOG.trace("NORMALIZING: {} -> {}",property.getKey(), property.getValue()); + LOG.info("NORMALIZING: {} -> {}",property.getKey(), property.getValue()); document.field(property.getKey(), property.getValue()); } + + for(ActiveRuleDto activeRule:activeRuleDao.selectByRuleId(rule.getId())){ + Map activeRuleProperties = BeanUtils.describe(activeRule); + for (Entry activeRuleProp : activeRuleProperties.entrySet()) { + LOG.info("NORMALIZING: --- {} -> {}",activeRuleProp.getKey(), activeRuleProp.getValue()); + document.field(activeRuleProp.getKey(), activeRuleProp.getValue()); + } + } + return document.endObject(); } catch (IOException e) { LOG.error("Could not normalize {} in {}", key, this.getClass().getSimpleName()); diff --git a/sonar-server/src/test/java/org/sonar/server/rule2/RuleMediumTest.java b/sonar-server/src/test/java/org/sonar/server/rule2/RuleMediumTest.java index 2d3e514b15a..f81399820cb 100644 --- a/sonar-server/src/test/java/org/sonar/server/rule2/RuleMediumTest.java +++ b/sonar-server/src/test/java/org/sonar/server/rule2/RuleMediumTest.java @@ -24,11 +24,15 @@ import org.junit.Test; import org.sonar.api.rule.Severity; import org.sonar.api.utils.DateUtils; import org.sonar.check.Cardinality; +import org.sonar.core.qualityprofile.db.ActiveRuleDao; +import org.sonar.core.qualityprofile.db.ActiveRuleDto; import org.sonar.core.rule.RuleDao; import org.sonar.core.rule.RuleDto; import org.sonar.server.search.Hit; import org.sonar.server.tester.ServerTester; +import java.util.Date; + import static org.fest.assertions.Assertions.assertThat; public class RuleMediumTest { @@ -36,48 +40,61 @@ public class RuleMediumTest { @Rule public ServerTester tester = new ServerTester(); + private ActiveRuleDto getActiveRuleDto(RuleDto dto){ + return new ActiveRuleDto() + .setId(1) + .setNoteCreatedAt(new Date()) + .setNoteData("Note data, and some more note and here too.") + .setRuleId(dto.getId()) + .setProfileId(1) + .setParentId(0) + .setSeverity(3); + } - private RuleDto getRuleDto(){ + private RuleDto getRuleDto() { return new RuleDto() - .setId(1) - .setRuleKey("NewRuleKey") - .setRepositoryKey("plugin") - .setName("new name") - .setDescription("new description") - .setStatus(org.sonar.api.rules.Rule.STATUS_DEPRECATED) - .setConfigKey("NewConfigKey") - .setSeverity(Severity.INFO) - .setCardinality(Cardinality.MULTIPLE) - .setLanguage("dart") - .setParentId(3) - .setSubCharacteristicId(100) - .setDefaultSubCharacteristicId(101) - .setRemediationFunction("linear") - .setDefaultRemediationFunction("linear_offset") - .setRemediationCoefficient("1h") - .setDefaultRemediationCoefficient("5d") - .setRemediationOffset("5min") - .setDefaultRemediationOffset("10h") - .setEffortToFixDescription("squid.S115.effortToFix") - .setCreatedAt(DateUtils.parseDate("2013-12-16")) - .setUpdatedAt(DateUtils.parseDate("2013-12-17")); + .setId(1) + .setRuleKey("NewRuleKey") + .setRepositoryKey("plugin") + .setName("new name") + .setDescription("new description") + .setStatus(org.sonar.api.rules.Rule.STATUS_DEPRECATED) + .setConfigKey("NewConfigKey") + .setSeverity(Severity.INFO) + .setCardinality(Cardinality.MULTIPLE) + .setLanguage("dart") + .setParentId(3) + .setSubCharacteristicId(100) + .setDefaultSubCharacteristicId(101) + .setRemediationFunction("linear") + .setDefaultRemediationFunction("linear_offset") + .setRemediationCoefficient("1h") + .setDefaultRemediationCoefficient("5d") + .setRemediationOffset("5min") + .setDefaultRemediationOffset("10h") + .setEffortToFixDescription("squid.S115.effortToFix") + .setCreatedAt(DateUtils.parseDate("2013-12-16")) + .setUpdatedAt(DateUtils.parseDate("2013-12-17")); } @Test - public void test_dao_queue_es_search_loop(){ + public void test_dao_queue_es_search_loop() { RuleDao dao = tester.get(RuleDao.class); + ActiveRuleDao adao = tester.get(ActiveRuleDao.class); RuleIndex index = tester.get(RuleIndex.class); RuleDto dto = getRuleDto(); dao.insert(dto); + adao.insert(getActiveRuleDto(dto)); + try { - Thread.sleep(1000000); + Thread.sleep(100); } catch (InterruptedException e) { ; } Hit hit = index.getByKey(dto.getKey()); - assertThat(hit.getFields().get("key")).isEqualTo(dto.getRuleKey()); + assertThat(hit.getFields().get("ruleKey")).isEqualTo(dto.getRuleKey()); } } -- 2.39.5