]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6259 Do not assume that project exists at the begin of the compute engine 323/head
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 22 May 2015 13:09:39 +0000 (15:09 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 25 May 2015 07:08:47 +0000 (09:08 +0200)
39 files changed:
server/sonar-server-benchmarks/src/test/java/org/sonar/server/benchmark/PersistFileSourcesStepTest.java
server/sonar-server/src/main/java/org/sonar/server/batch/ProjectRepositoryLoader.java
server/sonar-server/src/main/java/org/sonar/server/computation/ComputationContext.java
server/sonar-server/src/main/java/org/sonar/server/computation/ComputationService.java
server/sonar-server/src/main/java/org/sonar/server/computation/ReportQueue.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/FeedComponentsCacheStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistComponentsStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistTestsStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/SendIssueNotificationsStep.java
server/sonar-server/src/main/java/org/sonar/server/issue/IssueBulkChangeService.java
server/sonar-server/src/main/java/org/sonar/server/issue/IssueService.java
server/sonar-server/src/main/java/org/sonar/server/issue/notification/IssueChangeNotification.java
server/sonar-server/src/main/java/org/sonar/server/issue/notification/NewIssuesNotification.java
server/sonar-server/src/main/java/org/sonar/server/properties/ProjectSettingsFactory.java
server/sonar-server/src/test/java/org/sonar/server/computation/ComputationContextTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/ComputationServiceTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/ReportQueueTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/FeedComponentsCacheStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/IndexComponentsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/IndexSourceLinesStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/IndexTestsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/ParseReportStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistComponentsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistDuplicationsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistEventsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistFileSourcesStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistMeasuresStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistNumberOfDaysSinceLastCommitStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistProjectLinksStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistTestsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PurgeDatastoresStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/SendIssueNotificationsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/notification/IssueChangeNotificationTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/notification/IssueChangesEmailTemplateTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/notification/NewIssuesNotificationTest.java
server/sonar-server/src/test/java/org/sonar/server/properties/ProjectSettingsFactoryTest.java
server/sonar-server/src/test/resources/org/sonar/server/computation/ComputationServiceTest/shared.xml
sonar-core/src/main/java/org/sonar/core/properties/PropertiesDao.java
sonar-core/src/test/java/org/sonar/core/properties/PropertiesDaoTest.java

index 02e71a9eff2c09cac1d85952ab8b779eaf5e2efe..c18ee881aed8c32216385a2078e99180b4a2ab59 100644 (file)
@@ -33,7 +33,6 @@ import org.sonar.batch.protocol.output.BatchReport;
 import org.sonar.batch.protocol.output.BatchReportReader;
 import org.sonar.batch.protocol.output.BatchReportWriter;
 import org.sonar.core.persistence.DbTester;
-import org.sonar.server.component.ComponentTesting;
 import org.sonar.server.computation.ComputationContext;
 import org.sonar.server.computation.component.DbComponentsRefCache;
 import org.sonar.server.computation.component.DbComponentsRefCache.DbComponent;
@@ -80,7 +79,7 @@ public class PersistFileSourcesStepTest {
     long start = System.currentTimeMillis();
 
     PersistFileSourcesStep step = new PersistFileSourcesStep(dbClient, System2.INSTANCE, dbComponentsRefCache);
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), "PROJECT_KEY"));
 
     long end = System.currentTimeMillis();
     long duration = end - start;
index a1f19bc37b8f5e7e09b7d792b192f3b37854e534..bd699806a7e2157c7dfe9acee5299c82344958f9 100644 (file)
@@ -24,10 +24,10 @@ import com.google.common.base.Function;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Multimap;
-import org.sonar.api.server.ServerSide;
 import org.sonar.api.resources.Language;
 import org.sonar.api.resources.Languages;
 import org.sonar.api.rule.RuleKey;
+import org.sonar.api.server.ServerSide;
 import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
 import org.sonar.api.web.UserRole;
@@ -153,7 +153,7 @@ public class ProjectRepositoryLoader {
 
     Map<String, String> parentProperties = newHashMap();
     for (ComponentDto parent : parents) {
-      parentProperties.putAll(getPropertiesMap(dbClient.propertiesDao().selectProjectProperties(parent.key(), session), hasScanPerm));
+      parentProperties.putAll(getPropertiesMap(dbClient.propertiesDao().selectProjectProperties(session, parent.key()), hasScanPerm));
     }
     return parentProperties;
   }
index 9df00c9c6a52c350e919c59ba3bd5c76f6604130..28ad3baea3a6b046386b035c44a325e8f12f5381 100644 (file)
@@ -23,21 +23,21 @@ package org.sonar.server.computation;
 import org.sonar.api.config.Settings;
 import org.sonar.batch.protocol.output.BatchReport;
 import org.sonar.batch.protocol.output.BatchReportReader;
-import org.sonar.core.component.ComponentDto;
 
 import static com.google.common.base.Preconditions.checkState;
 
 public class ComputationContext {
 
   private final BatchReportReader reportReader;
-  private final ComponentDto project;
+  // Project key (including branch if any)
+  private final String projectKey;
   // cache of metadata as it's frequently accessed
   private final BatchReport.Metadata reportMetadata;
   private Settings projectSettings;
 
-  public ComputationContext(BatchReportReader reportReader, ComponentDto project) {
+  public ComputationContext(BatchReportReader reportReader, String projectKey) {
     this.reportReader = reportReader;
-    this.project = project;
+    this.projectKey = projectKey;
     this.reportMetadata = reportReader.readMetadata();
   }
 
@@ -45,8 +45,8 @@ public class ComputationContext {
     return reportMetadata;
   }
 
-  public ComponentDto getProject() {
-    return project;
+  public String getProjectKey() {
+    return projectKey;
   }
 
   public BatchReportReader getReportReader() {
index 3fa3e2c7ac6e8b321a41a9dd1e137ffb930d13a9..6d19500eed0350122a8f11f98a1e6091a2bac096 100644 (file)
@@ -31,7 +31,6 @@ import org.sonar.api.utils.log.Loggers;
 import org.sonar.api.utils.log.Profiler;
 import org.sonar.batch.protocol.output.BatchReportReader;
 import org.sonar.core.component.ComponentDto;
-import org.sonar.core.component.SnapshotDto;
 import org.sonar.core.computation.db.AnalysisReportDto;
 import org.sonar.core.persistence.DbSession;
 import org.sonar.core.persistence.MyBatis;
@@ -42,14 +41,13 @@ import org.sonar.server.computation.step.ComputationSteps;
 import org.sonar.server.db.DbClient;
 import org.sonar.server.properties.ProjectSettingsFactory;
 
-import javax.annotation.Nullable;
+import javax.annotation.CheckForNull;
 
 import java.io.File;
 import java.io.IOException;
 
 import static org.sonar.api.utils.DateUtils.formatDateTimeNullSafe;
 import static org.sonar.api.utils.DateUtils.longToDate;
-import static org.sonar.core.computation.db.AnalysisReportDto.Status.CANCELLED;
 import static org.sonar.core.computation.db.AnalysisReportDto.Status.FAILED;
 import static org.sonar.core.computation.db.AnalysisReportDto.Status.SUCCESS;
 
@@ -76,20 +74,15 @@ public class ComputationService {
   }
 
   public void process(ReportQueue.Item item) {
+    String projectKey = item.dto.getProjectKey();
     Profiler profiler = Profiler.create(LOG).startDebug(String.format(
-      "Analysis of project %s (report %d)", item.dto.getProjectKey(), item.dto.getId()));
-
-    ComponentDto project = null;
+      "Analysis of project %s (report %d)", projectKey, item.dto.getId()));
 
     try {
-      project = loadProject(item);
       File reportDir = extractReportInDir(item);
       BatchReportReader reader = new BatchReportReader(reportDir);
-      if (isSnapshotMissing(item, reader.readMetadata().getSnapshotId())) {
-        return;
-      }
-      ComputationContext context = new ComputationContext(reader, project);
-      context.setProjectSettings(projectSettingsFactory.newProjectSettings(project.getId()));
+      ComputationContext context = new ComputationContext(reader, projectKey);
+      context.setProjectSettings(projectSettingsFactory.newProjectSettings(projectKey));
       for (ComputationStep step : steps.orderedSteps()) {
         Profiler stepProfiler = Profiler.createIfDebug(LOG).startDebug(step.getDescription());
         step.execute(context);
@@ -101,7 +94,7 @@ public class ComputationService {
       throw Throwables.propagate(e);
     } finally {
       item.dto.setFinishedAt(system.now());
-      saveActivity(item.dto, project);
+      saveActivity(item.dto);
       profiler.stopInfo();
     }
   }
@@ -122,32 +115,8 @@ public class ComputationService {
     }
   }
 
-  private ComponentDto loadProject(ReportQueue.Item item) {
-    DbSession session = dbClient.openSession(false);
-    try {
-      return dbClient.componentDao().selectByKey(session, item.dto.getProjectKey());
-    } finally {
-      MyBatis.closeQuietly(session);
-    }
-  }
-
-  private boolean isSnapshotMissing(ReportQueue.Item item, long snapshotId) {
-    DbSession session = dbClient.openSession(false);
-    try {
-      SnapshotDto snapshot = dbClient.snapshotDao().getNullableByKey(session, snapshotId);
-      if (snapshot == null) {
-        item.dto.setStatus(CANCELLED);
-        LOG.info("Processing of report #{} is canceled because it was submitted while another report of the same project was already being processed.", item.dto.getId());
-        LOG.debug("The snapshot ID #{} provided by the report #{} does not exist anymore.", snapshotId, item.dto.getId());
-      }
-      return snapshot == null;
-    } finally {
-      MyBatis.closeQuietly(session);
-    }
-
-  }
-
-  private void saveActivity(AnalysisReportDto report, @Nullable ComponentDto project) {
+  private void saveActivity(AnalysisReportDto report) {
+    ComponentDto project = loadProject(report.getProjectKey());
     Activity activity = new Activity();
     activity.setType(Activity.Type.ANALYSIS_REPORT);
     activity.setAction("LOG_ANALYSIS_REPORT");
@@ -165,4 +134,14 @@ public class ComputationService {
     }
     activityService.save(activity);
   }
+
+  @CheckForNull
+  private ComponentDto loadProject(String projectKey) {
+    DbSession session = dbClient.openSession(false);
+    try {
+      return dbClient.componentDao().selectNullableByKey(session, projectKey);
+    } finally {
+      MyBatis.closeQuietly(session);
+    }
+  }
 }
index 5dbdfe8fef57266923f29008e6188fc5b285f96a..9397abdf82290fb12eb3dcab03d2d4d5e89fd851 100644 (file)
@@ -57,8 +57,6 @@ public class ReportQueue {
 
     DbSession session = dbClient.openSession(false);
     try {
-      checkThatProjectExistsInDatabase(projectKey, session);
-
       saveReportOnDisk(reportData, file);
       AnalysisReportDto dto = saveReportMetadataInDatabase(projectKey, projectName, uuid, session);
 
@@ -90,10 +88,6 @@ public class ReportQueue {
     FileUtils.copyInputStreamToFile(reportData, file);
   }
 
-  private void checkThatProjectExistsInDatabase(String projectKey, DbSession session) {
-    dbClient.componentDao().selectByKey(session, projectKey);
-  }
-
   public void remove(Item item) {
     DbSession session = dbClient.openSession(false);
     try {
index 7fdbc3f21cf5affaf05fa9ea9584974d309aa6dd..ed88d38932a4bad166a834ff181a8e603e448087 100644 (file)
@@ -53,7 +53,7 @@ public class FeedComponentsCacheStep implements ComputationStep {
   public void execute(ComputationContext context) {
     DbSession session = dbClient.openSession(false);
     try {
-      List<ComponentDto> components = dbClient.componentDao().selectComponentsFromProjectKey(session, context.getProject().key());
+      List<ComponentDto> components = dbClient.componentDao().selectComponentsFromProjectKey(session, context.getProjectKey());
       Map<String, ComponentDto> componentDtosByKey = componentDtosByKey(components);
       int rootComponentRef = context.getReportMetadata().getRootComponentRef();
       recursivelyProcessComponent(context, rootComponentRef, context.getReportReader().readComponent(rootComponentRef), componentDtosByKey);
index 0c02731c497ba89a39d08d941f2a792744abfea0..47e3c3125a4535cf8b3c7948e2aa536861020f94 100644 (file)
@@ -58,7 +58,7 @@ public class PersistComponentsStep implements ComputationStep {
   public void execute(ComputationContext context) {
     DbSession session = dbClient.openSession(false);
     try {
-      List<ComponentDto> components = dbClient.componentDao().selectComponentsFromProjectKey(session, context.getProject().key());
+      List<ComponentDto> components = dbClient.componentDao().selectComponentsFromProjectKey(session, context.getProjectKey());
       Map<String, ComponentDto> componentDtosByKey = componentDtosByKey(components);
       int rootComponentRef = context.getReportMetadata().getRootComponentRef();
       ComponentContext componentContext = new ComponentContext(context, session, componentDtosByKey);
index d594d1da33ea5d14959bb3de21083b1f989a0bc3..7dcbc82c07dba2f29480e451aaad4f17d4c91a9d 100644 (file)
@@ -78,7 +78,7 @@ public class PersistTestsStep implements ComputationStep {
       recursivelyProcessComponent(context, rootComponentRef);
       session.commit();
       if (context.hasUnprocessedCoverageDetails) {
-        LOG.warn("Some coverage tests are not taken into account during analysis of project '{}'", computationContext.getProject().getKey());
+        LOG.warn("Some coverage tests are not taken into account during analysis of project '{}'", computationContext.getProjectKey());
       }
     } finally {
       MyBatis.closeQuietly(session);
index 614c5373a4f621fffe95ea2ceceda68c7fd8ad8e..3586229fce8a625928e08c9e8cfa900f09c2bc3c 100644 (file)
@@ -21,8 +21,9 @@ package org.sonar.server.computation.step;
 
 import com.google.common.collect.ImmutableSet;
 import org.sonar.api.issue.internal.DefaultIssue;
-import org.sonar.core.component.ComponentDto;
 import org.sonar.server.computation.ComputationContext;
+import org.sonar.server.computation.component.DbComponentsRefCache;
+import org.sonar.server.computation.component.DbComponentsRefCache.DbComponent;
 import org.sonar.server.computation.issue.IssueCache;
 import org.sonar.server.computation.issue.RuleCache;
 import org.sonar.server.issue.notification.IssueChangeNotification;
@@ -50,26 +51,31 @@ public class SendIssueNotificationsStep implements ComputationStep {
 
   private final IssueCache issueCache;
   private final RuleCache rules;
+  private final DbComponentsRefCache dbComponentsRefCache;
   private final NotificationService service;
   private NewIssuesNotificationFactory newIssuesNotificationFactory;
 
-  public SendIssueNotificationsStep(IssueCache issueCache, RuleCache rules, NotificationService service, NewIssuesNotificationFactory newIssuesNotificationFactory) {
+  public SendIssueNotificationsStep(IssueCache issueCache, RuleCache rules, DbComponentsRefCache dbComponentsRefCache, NotificationService service,
+    NewIssuesNotificationFactory newIssuesNotificationFactory) {
     this.issueCache = issueCache;
     this.rules = rules;
+    this.dbComponentsRefCache = dbComponentsRefCache;
     this.service = service;
     this.newIssuesNotificationFactory = newIssuesNotificationFactory;
   }
 
   @Override
   public void execute(ComputationContext context) {
-    if (service.hasProjectSubscribersForTypes(context.getProject().uuid(), NOTIF_TYPES)) {
-      doExecute(context);
+    DbComponent project = dbComponentsRefCache.getByRef(context.getReportMetadata().getRootComponentRef());
+    if (service.hasProjectSubscribersForTypes(project.getUuid(), NOTIF_TYPES)) {
+      doExecute(context, project);
     }
   }
 
-  private void doExecute(ComputationContext context) {
+  private void doExecute(ComputationContext context, DbComponent project) {
     NewIssuesStatistics newIssuesStats = new NewIssuesStatistics();
     CloseableIterator<DefaultIssue> issues = issueCache.traverse();
+    String projectName = context.getReportReader().readComponent(context.getReportMetadata().getRootComponentRef()).getName();
     try {
       while (issues.hasNext()) {
         DefaultIssue issue = issues.next();
@@ -79,7 +85,7 @@ public class SendIssueNotificationsStep implements ComputationStep {
           IssueChangeNotification changeNotification = new IssueChangeNotification();
           changeNotification.setRuleName(rules.ruleName(issue.ruleKey()));
           changeNotification.setIssue(issue);
-          changeNotification.setProject(context.getProject());
+          changeNotification.setProject(project.getKey(), projectName);
           service.deliver(changeNotification);
         }
       }
@@ -87,18 +93,17 @@ public class SendIssueNotificationsStep implements ComputationStep {
     } finally {
       issues.close();
     }
-    sendNewIssuesStatistics(context, newIssuesStats);
+    sendNewIssuesStatistics(context, newIssuesStats, project, projectName);
   }
 
-  private void sendNewIssuesStatistics(ComputationContext context, NewIssuesStatistics statistics) {
+  private void sendNewIssuesStatistics(ComputationContext context, NewIssuesStatistics statistics, DbComponent project, String projectName) {
     if (statistics.hasIssues()) {
       NewIssuesStatistics.Stats globalStatistics = statistics.globalStatistics();
-      ComponentDto project = context.getProject();
       NewIssuesNotification notification = newIssuesNotificationFactory
         .newNewIssuesNotication()
-        .setProject(project)
+        .setProject(project.getKey(), project.getUuid(), projectName)
         .setAnalysisDate(new Date(context.getReportMetadata().getAnalysisDate()))
-        .setStatistics(project, globalStatistics)
+        .setStatistics(projectName, globalStatistics)
         .setDebt(globalStatistics.debt());
       service.deliver(notification);
 
@@ -110,9 +115,9 @@ public class SendIssueNotificationsStep implements ComputationStep {
           .newMyNewIssuesNotification()
           .setAssignee(assignee);
         myNewIssuesNotification
-          .setProject(project)
+          .setProject(project.getKey(), project.getUuid(), projectName)
           .setAnalysisDate(new Date(context.getReportMetadata().getAnalysisDate()))
-          .setStatistics(project, assigneeStatistics)
+          .setStatistics(projectName, assigneeStatistics)
           .setDebt(assigneeStatistics.debt());
 
         service.deliver(myNewIssuesNotification);
index 7c6b68cba554f044c4772ab9e4689b4a63fcc402..768a274f59c48f1bc5ba936d51bf75f8c54953bb 100644 (file)
@@ -116,7 +116,7 @@ public class IssueBulkChangeService {
               .setIssue((DefaultIssue) issue)
               .setChangeAuthorLogin(issueChangeContext.login())
               .setRuleName(rule != null ? rule.getName() : null)
-              .setProject(repository.project(projectKey))
+              .setProject(projectKey, repository.project(projectKey).name())
               .setComponent(repository.component(issue.componentKey())));
           }
         }
index dae69ccf3f4fbcc9f14a064403ce08fbcce30fb2..b407ec4b6357667bf6497b0f60603a48ffe350df 100644 (file)
@@ -22,7 +22,6 @@ package org.sonar.server.issue;
 import com.google.common.base.Objects;
 import com.google.common.base.Strings;
 import org.apache.commons.lang.StringUtils;
-import org.sonar.api.server.ServerSide;
 import org.sonar.api.issue.ActionPlan;
 import org.sonar.api.issue.Issue;
 import org.sonar.api.issue.internal.DefaultIssue;
@@ -32,6 +31,7 @@ import org.sonar.api.rule.RuleKey;
 import org.sonar.api.rule.Severity;
 import org.sonar.api.rules.Rule;
 import org.sonar.api.rules.RuleFinder;
+import org.sonar.api.server.ServerSide;
 import org.sonar.api.user.User;
 import org.sonar.api.user.UserFinder;
 import org.sonar.api.web.UserRole;
@@ -297,11 +297,12 @@ public class IssueService {
     }
     issueStorage.save(session, issue);
     Rule rule = getNullableRuleByKey(issue.ruleKey());
+    ComponentDto project = dbClient.componentDao().selectByKey(session, projectKey);
     notificationService.scheduleForSending(new IssueChangeNotification()
       .setIssue(issue)
       .setChangeAuthorLogin(context.login())
       .setRuleName(rule != null ? rule.getName() : null)
-      .setProject(dbClient.componentDao().selectByKey(session, projectKey))
+      .setProject(project.getKey(), project.name())
       .setComponent(dbClient.componentDao().selectNullableByKey(session, issue.componentKey()))
       .setComment(comment));
   }
index 0e5cd899c91e6a10cb3409342fc3c1f451cff536..15b0d435f66a0f6e8acd9521a30b4895984dd9b3 100644 (file)
@@ -63,6 +63,12 @@ public class IssueChangeNotification extends Notification {
     return this;
   }
 
+  public IssueChangeNotification setProject(String projectKey, String projectName) {
+    setFieldValue("projectName", projectName);
+    setFieldValue("projectKey", projectKey);
+    return this;
+  }
+
   public IssueChangeNotification setComponent(Component component) {
     setFieldValue("componentName", component.longName());
     return this;
index b89e9696da407526bd1e1043e5e3c3fa49b1cdfb..66fa9b8a5e3c61f4523bf61547ca6a374d1f029a 100644 (file)
 package org.sonar.server.issue.notification;
 
 import com.google.common.collect.Multiset;
-import org.sonar.api.component.Component;
 import org.sonar.api.notifications.Notification;
 import org.sonar.api.rule.RuleKey;
 import org.sonar.api.rule.Severity;
 import org.sonar.api.utils.DateUtils;
 import org.sonar.api.utils.Duration;
 import org.sonar.api.utils.Durations;
-import org.sonar.core.component.ComponentDto;
 import org.sonar.core.persistence.DbSession;
 import org.sonar.core.persistence.MyBatis;
 import org.sonar.server.db.DbClient;
@@ -77,15 +75,15 @@ public class NewIssuesNotification extends Notification {
     return this;
   }
 
-  public NewIssuesNotification setProject(ComponentDto project) {
-    setFieldValue(FIELD_PROJECT_NAME, project.longName());
-    setFieldValue(FIELD_PROJECT_KEY, project.key());
-    setFieldValue(FIELD_PROJECT_UUID, project.uuid());
+  public NewIssuesNotification setProject(String projectKey, String projectUuid, String projectName) {
+    setFieldValue(FIELD_PROJECT_NAME, projectName);
+    setFieldValue(FIELD_PROJECT_KEY, projectKey);
+    setFieldValue(FIELD_PROJECT_UUID, projectUuid);
     return this;
   }
 
-  public NewIssuesNotification setStatistics(Component project, NewIssuesStatistics.Stats stats) {
-    setDefaultMessage(stats.countForMetric(SEVERITY) + " new issues on " + project.longName() + ".\n");
+  public NewIssuesNotification setStatistics(String projectName, NewIssuesStatistics.Stats stats) {
+    setDefaultMessage(stats.countForMetric(SEVERITY) + " new issues on " + projectName + ".\n");
 
     setSeverityStatistics(stats);
     setAssigneesStatistics(stats);
index 7a5fc5862deaef8970ee236d94e96407ea3635e8..eed0e496cf0a2fa12d4fa530888a07730dad343d 100644 (file)
@@ -22,8 +22,8 @@ package org.sonar.server.properties;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Maps;
-import org.sonar.api.server.ServerSide;
 import org.sonar.api.config.Settings;
+import org.sonar.api.server.ServerSide;
 import org.sonar.core.properties.PropertiesDao;
 import org.sonar.core.properties.PropertyDto;
 
@@ -41,8 +41,8 @@ public class ProjectSettingsFactory {
     this.settings = settings;
   }
 
-  public Settings newProjectSettings(long projectId) {
-    List<PropertyDto> propertyList = dao.selectProjectProperties(projectId);
+  public Settings newProjectSettings(String projectKey) {
+    List<PropertyDto> propertyList = dao.selectProjectProperties(projectKey);
 
     return new ProjectSettings(settings, getPropertyMap(propertyList));
   }
index 82fe204eb8a18dc756eb491090467b321f672432..e005666d04674dad9199f9513dac528b54249d2d 100644 (file)
@@ -23,17 +23,16 @@ package org.sonar.server.computation;
 import org.junit.Test;
 import org.sonar.api.config.Settings;
 import org.sonar.batch.protocol.output.BatchReportReader;
-import org.sonar.core.component.ComponentDto;
 
 import static org.mockito.Mockito.mock;
 
 public class ComputationContextTest {
 
-  ComputationContext sut = new ComputationContext(mock(BatchReportReader.class), mock(ComponentDto.class));
+  ComputationContext sut = new ComputationContext(mock(BatchReportReader.class), "ProjectKey");
 
   @Test(expected = IllegalStateException.class)
   public void setProjectSettings() {
     sut.setProjectSettings(mock(Settings.class));
     sut.setProjectSettings(mock(Settings.class));
   }
-}
\ No newline at end of file
+}
index 7a32079aae069facd7791a000e884b9acca8fa03..6cb90d13cce6674cc576eff6c69a33c01b4e1306 100644 (file)
@@ -25,7 +25,11 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
 import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
 import org.sonar.api.utils.System2;
 import org.sonar.api.utils.ZipUtils;
 import org.sonar.api.utils.internal.JUnitTempFolder;
@@ -57,15 +61,21 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+@RunWith(MockitoJUnitRunner.class)
 public class ComputationServiceTest {
 
-  private static final long ANY_SNAPSHOT_ID = 54987654231L;
   @ClassRule
   public static DbTester dbTester = new DbTester();
+
   @Rule
   public JUnitTempFolder tempFolder = new JUnitTempFolder();
+
   @Rule
   public LogTester logTester = new LogTester();
+
+  @Captor
+  ArgumentCaptor<Activity> activityArgumentCaptor;
+
   ComputationStep projectStep1 = mockStep();
   ComputationStep projectStep2 = mockStep();
   ComputationSteps steps = mock(ComputationSteps.class);
@@ -76,18 +86,45 @@ public class ComputationServiceTest {
 
   @Before
   public void setUp() {
+    dbTester.truncateTables();
     DbClient dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), new ComponentDao(), new SnapshotDao(system));
     sut = new ComputationService(dbClient, steps, activityService, settingsFactory, tempFolder, system);
+  }
 
-    // db contains project with key "P1"
-    dbTester.prepareDbUnit(getClass(), "shared.xml");
+  @Test
+  public void process_new_project() throws Exception {
+    logTester.setLevel(LoggerLevel.INFO);
+
+    when(steps.orderedSteps()).thenReturn(Arrays.asList(projectStep1, projectStep2));
+    AnalysisReportDto dto = newDefaultReport();
+    File zip = generateZip();
+
+    sut.process(new ReportQueue.Item(dto, zip));
+
+    // report is integrated -> status is set to SUCCESS
+    assertThat(dto.getStatus()).isEqualTo(Status.SUCCESS);
+    assertThat(dto.getFinishedAt()).isNotNull();
+
+    // one info log at the end
+    assertThat(logTester.logs(LoggerLevel.INFO)).hasSize(1);
+    assertThat(logTester.logs(LoggerLevel.INFO).get(0)).startsWith("Analysis of project P1 (report 1) (done) | time=");
+
+    // execute only the steps supporting the project qualifier
+    verify(projectStep1).execute(any(ComputationContext.class));
+    verify(projectStep2).execute(any(ComputationContext.class));
+    verify(activityService).save(activityArgumentCaptor.capture());
+
+    assertThat(activityArgumentCaptor.getValue().getType()).isEqualTo(Activity.Type.ANALYSIS_REPORT);
+    assertThat(activityArgumentCaptor.getValue().getAction()).isEqualTo("LOG_ANALYSIS_REPORT");
+    assertThat(activityArgumentCaptor.getValue().getData()).containsEntry("projectKey", "P1");
   }
 
   @Test
-  public void process_project() throws Exception {
+  public void process_existing_project() throws Exception {
+    dbTester.prepareDbUnit(getClass(), "shared.xml");
+
     logTester.setLevel(LoggerLevel.INFO);
 
-    // view step is not supposed to be executed
     when(steps.orderedSteps()).thenReturn(Arrays.asList(projectStep1, projectStep2));
     AnalysisReportDto dto = newDefaultReport();
     File zip = generateZip();
@@ -105,7 +142,13 @@ public class ComputationServiceTest {
     // execute only the steps supporting the project qualifier
     verify(projectStep1).execute(any(ComputationContext.class));
     verify(projectStep2).execute(any(ComputationContext.class));
-    verify(activityService).save(any(Activity.class));
+    verify(activityService).save(activityArgumentCaptor.capture());
+
+    assertThat(activityArgumentCaptor.getValue().getType()).isEqualTo(Activity.Type.ANALYSIS_REPORT);
+    assertThat(activityArgumentCaptor.getValue().getAction()).isEqualTo("LOG_ANALYSIS_REPORT");
+    assertThat(activityArgumentCaptor.getValue().getData()).containsEntry("projectKey", "P1");
+    assertThat(activityArgumentCaptor.getValue().getData()).containsEntry("projectName", "Project 1");
+    assertThat(activityArgumentCaptor.getValue().getData().get("projectUuid")).isEqualTo("ABCD");
   }
 
   private AnalysisReportDto newDefaultReport() {
@@ -157,20 +200,6 @@ public class ComputationServiceTest {
     }
   }
 
-  @Test
-  public void analysis_cancelled_when_snapshot_not_found() throws Exception {
-    AnalysisReportDto report = newDefaultReport();
-    File zip = generateZip(ANY_SNAPSHOT_ID);
-    logTester.setLevel(LoggerLevel.DEBUG);
-
-    sut.process(new ReportQueue.Item(report, zip));
-
-    assertThat(report.getStatus()).isEqualTo(Status.CANCELLED);
-    assertThat(logTester.logs()).contains(
-      String.format("Processing of report #%s is canceled because it was submitted while another report of the same project was already being processed.", report.getId()));
-    assertThat(logTester.logs()).contains(String.format("The snapshot ID #%s provided by the report #%s does not exist anymore.", ANY_SNAPSHOT_ID, report.getId()));
-  }
-
   private ComputationStep mockStep() {
     ComputationStep step = mock(ComputationStep.class);
     when(step.getDescription()).thenReturn(RandomStringUtils.randomAscii(5));
index 36de2139087f3a8ca8ce075533d15473502127f3..2fcfac3ea868fc0ac5c100f8f7549ee52ab29d89 100644 (file)
@@ -34,7 +34,6 @@ import org.sonar.core.computation.db.AnalysisReportDto;
 import org.sonar.core.persistence.DbSession;
 import org.sonar.core.persistence.DbTester;
 import org.sonar.process.ProcessProperties;
-import org.sonar.server.component.ComponentTesting;
 import org.sonar.server.component.db.ComponentDao;
 import org.sonar.server.computation.db.AnalysisReportDao;
 import org.sonar.server.db.DbClient;
@@ -76,13 +75,8 @@ public class ReportQueueTest {
     when(system.now()).thenReturn(NOW);
 
     dbClient = new DbClient(db.database(), db.myBatis(), new ComponentDao(), new AnalysisReportDao(system));
-    sut = new ReportQueue(dbClient, settings);
-
     session = dbClient.openSession(false);
-      dbClient.componentDao().insert(session, ComponentTesting.newProjectDto().setKey("P1"));
-      dbClient.componentDao().insert(session, ComponentTesting.newProjectDto().setKey("P2"));
-      dbClient.componentDao().insert(session, ComponentTesting.newProjectDto().setKey("P3"));
-      session.commit();
+    sut = new ReportQueue(dbClient, settings);
   }
 
   @After
@@ -186,11 +180,6 @@ public class ReportQueueTest {
     sut.clear();
   }
 
-  @Test(expected = IllegalStateException.class)
-  public void add_on_non_existent_project() {
-    sut.add("UNKNOWN_PROJECT_KEY", "Unknown project", generateData());
-  }
-
   @Test
   public void reset_to_pending_status() {
     // 2 pending
@@ -204,6 +193,7 @@ public class ReportQueueTest {
 
     sut.resetToPendingStatus();
     assertThat(sut.all()).extracting("status").containsOnly(PENDING).hasSize(2);
+
   }
 
   private InputStream generateData() {
index 157fb668893add5cb94417d7d60469ed954bf715..97f8300a8ed9f8d1666d94d9003ca45c90b80bb7 100644 (file)
@@ -32,7 +32,6 @@ import org.sonar.batch.protocol.output.BatchReportReader;
 import org.sonar.batch.protocol.output.BatchReportWriter;
 import org.sonar.core.persistence.DbSession;
 import org.sonar.core.persistence.DbTester;
-import org.sonar.server.component.ComponentTesting;
 import org.sonar.server.component.db.ComponentDao;
 import org.sonar.server.computation.ComputationContext;
 import org.sonar.server.computation.component.ComputeComponentsRefCache;
@@ -46,6 +45,8 @@ import static org.assertj.core.api.Assertions.assertThat;
 @Category(DbTests.class)
 public class FeedComponentsCacheStepTest extends BaseStepTest {
 
+  private static final String PROJECT_KEY = "PROJECT_KEY";
+
   @ClassRule
   public static DbTester dbTester = new DbTester();
 
@@ -90,7 +91,7 @@ public class FeedComponentsCacheStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .addChildRef(2)
       .build());
     writer.writeComponent(BatchReport.Component.newBuilder()
@@ -111,9 +112,9 @@ public class FeedComponentsCacheStepTest extends BaseStepTest {
       .setPath("src/main/java/dir/Foo.java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto()));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
-    assertThat(computeComponentsRefCache.getByRef(1).getKey()).isEqualTo("PROJECT_KEY");
+    assertThat(computeComponentsRefCache.getByRef(1).getKey()).isEqualTo(PROJECT_KEY);
     assertThat(computeComponentsRefCache.getByRef(1).getUuid()).isNotNull();
 
     assertThat(computeComponentsRefCache.getByRef(2).getKey()).isEqualTo("MODULE_KEY");
@@ -137,7 +138,7 @@ public class FeedComponentsCacheStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setName("Project")
       .addChildRef(2)
       .build());
@@ -167,7 +168,7 @@ public class FeedComponentsCacheStepTest extends BaseStepTest {
       .setPath("src/main/java/dir/Foo.java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto()));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(computeComponentsRefCache.getByRef(4).getKey()).isEqualTo("SUB_MODULE_KEY:src/main/java/dir");
     assertThat(computeComponentsRefCache.getByRef(5).getKey()).isEqualTo("SUB_MODULE_KEY:src/main/java/dir/Foo.java");
@@ -185,7 +186,7 @@ public class FeedComponentsCacheStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setName("Project")
       .addChildRef(2)
       .build());
@@ -208,7 +209,7 @@ public class FeedComponentsCacheStepTest extends BaseStepTest {
       .setPath("src/main/java/dir/Foo.java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto()));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(computeComponentsRefCache.getByRef(1).getKey()).isEqualTo("PROJECT_KEY:origin/master");
     assertThat(computeComponentsRefCache.getByRef(2).getKey()).isEqualTo("MODULE_KEY:origin/master");
index e97c6b000c5c3c424594ab29816b8254f7d0bcf6..be67e9bdd8552d6b592355328c381feb07df1f35 100644 (file)
@@ -41,6 +41,8 @@ import static org.mockito.Mockito.when;
 
 public class IndexComponentsStepTest extends BaseStepTest {
 
+  private static final String PROJECT_KEY = "PROJECT_KEY";
+
   @Rule
   public TemporaryFolder temp = new TemporaryFolder();
 
@@ -50,7 +52,7 @@ public class IndexComponentsStepTest extends BaseStepTest {
 
   @Test
   public void call_indexProject_of_dao() throws IOException {
-    dbComponentsRefCache.addComponent(1, new DbComponent(123L, "PROJECT_KEY", "PROJECT_UUID"));
+    dbComponentsRefCache.addComponent(1, new DbComponent(123L, PROJECT_KEY, "PROJECT_UUID"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
@@ -60,7 +62,7 @@ public class IndexComponentsStepTest extends BaseStepTest {
 
     ComponentDto project = mock(ComponentDto.class);
     when(project.getId()).thenReturn(123L);
-    ComputationContext context = new ComputationContext(new BatchReportReader(reportDir), project);
+    ComputationContext context = new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY);
 
     sut.execute(context);
 
index bac8d1fa5fbdf936d7b4a7078b9a9d4ac9259d62..82376d9146edcde151428c11e4ef47cf781bb88a 100644 (file)
@@ -30,7 +30,6 @@ import org.sonar.batch.protocol.output.BatchReport;
 import org.sonar.batch.protocol.output.BatchReportReader;
 import org.sonar.batch.protocol.output.BatchReportWriter;
 import org.sonar.core.persistence.DbTester;
-import org.sonar.server.component.ComponentTesting;
 import org.sonar.server.computation.ComputationContext;
 import org.sonar.server.computation.component.DbComponentsRefCache;
 import org.sonar.server.db.DbClient;
@@ -49,6 +48,8 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 public class IndexSourceLinesStepTest extends BaseStepTest {
 
+  private static final String PROJECT_KEY = "PROJECT_KEY";
+
   @Rule
   public TemporaryFolder temp = new TemporaryFolder();
 
@@ -77,7 +78,7 @@ public class IndexSourceLinesStepTest extends BaseStepTest {
 
   @Test
   public void index_source() throws Exception {
-    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, PROJECT_KEY, "ABCD"));
 
     dbTester.prepareDbUnit(getClass(), "index_source.xml");
     Connection connection = dbTester.openConnection();
@@ -90,7 +91,7 @@ public class IndexSourceLinesStepTest extends BaseStepTest {
       .setRootComponentRef(1)
       .build());
 
-    step().execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto("ABCD")));
+    step().execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     List<SearchHit> docs = esTester.getDocuments(SourceLineIndexDefinition.INDEX, SourceLineIndexDefinition.TYPE);
     assertThat(docs).hasSize(1);
index 1c3cff61d1c41c5977345084cb5304b079cd2233..070682a9c5b4604278c5668db6d3a0d8ab6b7baf 100644 (file)
@@ -31,7 +31,6 @@ import org.sonar.batch.protocol.output.BatchReport;
 import org.sonar.batch.protocol.output.BatchReportReader;
 import org.sonar.batch.protocol.output.BatchReportWriter;
 import org.sonar.core.persistence.DbTester;
-import org.sonar.server.component.ComponentTesting;
 import org.sonar.server.computation.ComputationContext;
 import org.sonar.server.computation.component.DbComponentsRefCache;
 import org.sonar.server.db.DbClient;
@@ -92,7 +91,7 @@ public class IndexTestsStepTest extends BaseStepTest {
       .setRootComponentRef(1)
       .build());
 
-    step().execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto("ABCD")));
+    step().execute(new ComputationContext(new BatchReportReader(reportDir), "PROJECT_KEY"));
 
     List<SearchHit> docs = esTester.getDocuments(TestIndexDefinition.INDEX, TestIndexDefinition.TYPE);
     assertThat(docs).hasSize(1);
index 21a14102565b616c40a374ea5c186adc74038eec..25279ebebdec06405e52eaf24e4ab4de8e99277c 100644 (file)
@@ -27,7 +27,6 @@ import org.sonar.batch.protocol.Constants;
 import org.sonar.batch.protocol.output.BatchReport;
 import org.sonar.batch.protocol.output.BatchReportReader;
 import org.sonar.batch.protocol.output.BatchReportWriter;
-import org.sonar.core.component.ComponentDto;
 import org.sonar.core.persistence.DbTester;
 import org.sonar.server.computation.ComputationContext;
 import org.sonar.server.computation.component.ComputeComponentsRefCache;
@@ -45,6 +44,8 @@ import static org.mockito.Mockito.verify;
 
 public class ParseReportStepTest extends BaseStepTest {
 
+  private static final String PROJECT_KEY = "PROJECT_KEY";
+
   private static final List<BatchReport.Issue> ISSUES_ON_DELETED_COMPONENT = Arrays.asList(BatchReport.Issue.newBuilder()
     .setUuid("DELETED_ISSUE_UUID")
     .build());
@@ -62,23 +63,23 @@ public class ParseReportStepTest extends BaseStepTest {
 
   @Test
   public void extract_report_from_db_and_browse_components() throws Exception {
-    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY", "PROJECT_UUID"));
+    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent(PROJECT_KEY, "PROJECT_UUID"));
     computeComponentsRefCache.addComponent(2, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY:file1", "FILE1_UUID"));
     computeComponentsRefCache.addComponent(3, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY:file2", "FILE2_UUID"));
 
     File reportDir = generateReport();
 
-    ComputationContext context = new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class));
+    ComputationContext context = new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY);
     sut.execute(context);
 
     assertThat(context.getReportMetadata().getRootComponentRef()).isEqualTo(1);
     assertThat(context.getReportMetadata().getDeletedComponentsCount()).isEqualTo(1);
 
     // verify that all components are processed (currently only for issues)
-    verify(issueComputation).processComponentIssues(context, Collections.<BatchReport.Issue>emptyList(), "PROJECT_UUID", 1, "PROJECT_KEY", "PROJECT_UUID");
-    verify(issueComputation).processComponentIssues(context, Collections.<BatchReport.Issue>emptyList(), "FILE1_UUID", 2, "PROJECT_KEY", "PROJECT_UUID");
-    verify(issueComputation).processComponentIssues(context, Collections.<BatchReport.Issue>emptyList(), "FILE2_UUID", 3, "PROJECT_KEY", "PROJECT_UUID");
-    verify(issueComputation).processComponentIssues(context, ISSUES_ON_DELETED_COMPONENT, "DELETED_UUID", null, "PROJECT_KEY", "PROJECT_UUID");
+    verify(issueComputation).processComponentIssues(context, Collections.<BatchReport.Issue>emptyList(), "PROJECT_UUID", 1, PROJECT_KEY, "PROJECT_UUID");
+    verify(issueComputation).processComponentIssues(context, Collections.<BatchReport.Issue>emptyList(), "FILE1_UUID", 2, PROJECT_KEY, "PROJECT_UUID");
+    verify(issueComputation).processComponentIssues(context, Collections.<BatchReport.Issue>emptyList(), "FILE2_UUID", 3, PROJECT_KEY, "PROJECT_UUID");
+    verify(issueComputation).processComponentIssues(context, ISSUES_ON_DELETED_COMPONENT, "DELETED_UUID", null, PROJECT_KEY, "PROJECT_UUID");
     verify(issueComputation).afterReportProcessing();
   }
 
@@ -88,7 +89,7 @@ public class ParseReportStepTest extends BaseStepTest {
     BatchReportWriter writer = new BatchReportWriter(dir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .setAnalysisDate(150000000L)
       .setDeletedComponentsCount(1)
       .build());
index 30407236a7ada3146a2997419e34387d467c2dac..65edea6265ae4dbd3ed840e06ef323d907f13921 100644 (file)
@@ -49,6 +49,8 @@ import static org.assertj.core.api.Assertions.assertThat;
 @Category(DbTests.class)
 public class PersistComponentsStepTest extends BaseStepTest {
 
+  private static final String PROJECT_KEY = "PROJECT_KEY";
+
   @ClassRule
   public static DbTester dbTester = new DbTester();
 
@@ -91,7 +93,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
 
   @Test
   public void persist_components() throws Exception {
-    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY", "ABCD"));
+    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent(PROJECT_KEY, "ABCD"));
     computeComponentsRefCache.addComponent(2, new ComputeComponentsRefCache.ComputeComponent("MODULE_KEY", "BCDE"));
     computeComponentsRefCache.addComponent(3, new ComputeComponentsRefCache.ComputeComponent("MODULE_KEY:src/main/java/dir", "CDEF"));
     computeComponentsRefCache.addComponent(4, new ComputeComponentsRefCache.ComputeComponent("MODULE_KEY:src/main/java/dir/Foo.java", "DEFG"));
@@ -105,7 +107,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setName("Project")
       .setDescription("Project description")
       .addChildRef(2)
@@ -131,11 +133,11 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setLanguage("java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto()));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(4);
 
-    ComponentDto project = dbClient.componentDao().selectNullableByKey(session, "PROJECT_KEY");
+    ComponentDto project = dbClient.componentDao().selectNullableByKey(session, PROJECT_KEY);
     assertThat(project).isNotNull();
     assertThat(project.name()).isEqualTo("Project");
     assertThat(project.description()).isEqualTo("Project description");
@@ -192,7 +194,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
 
   @Test
   public void persist_file_directly_attached_on_root_directory() throws Exception {
-    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY", "ABCD"));
+    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent(PROJECT_KEY, "ABCD"));
     computeComponentsRefCache.addComponent(2, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY:/", "CDEF"));
     computeComponentsRefCache.addComponent(3, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY:pom.xml", "DEFG"));
 
@@ -205,7 +207,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setName("Project")
       .addChildRef(2)
       .build());
@@ -221,7 +223,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setPath("pom.xml")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto()));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     ComponentDto directory = dbClient.componentDao().selectNullableByKey(session, "PROJECT_KEY:/");
     assertThat(directory).isNotNull();
@@ -236,7 +238,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
 
   @Test
   public void persist_unit_test() throws Exception {
-    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY", "ABCD"));
+    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent(PROJECT_KEY, "ABCD"));
     computeComponentsRefCache.addComponent(2, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY:src/test/java/dir", "CDEF"));
     computeComponentsRefCache.addComponent(3, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY:src/test/java/dir/FooTest.java", "DEFG"));
 
@@ -249,7 +251,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setName("Project")
       .addChildRef(2)
       .build());
@@ -266,7 +268,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setIsTest(true)
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto()));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     ComponentDto file = dbClient.componentDao().selectNullableByKey(session, "PROJECT_KEY:src/test/java/dir/FooTest.java");
     assertThat(file).isNotNull();
@@ -278,13 +280,13 @@ public class PersistComponentsStepTest extends BaseStepTest {
 
   @Test
   public void persist_only_new_components() throws Exception {
-    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY", "ABCD"));
+    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent(PROJECT_KEY, "ABCD"));
     computeComponentsRefCache.addComponent(2, new ComputeComponentsRefCache.ComputeComponent("MODULE_KEY", "BCDE"));
     computeComponentsRefCache.addComponent(3, new ComputeComponentsRefCache.ComputeComponent("MODULE_KEY:src/main/java/dir", "CDEF"));
     computeComponentsRefCache.addComponent(4, new ComputeComponentsRefCache.ComputeComponent("MODULE_KEY:src/main/java/dir/Foo.java", "DEFG"));
 
     // Project amd module already exists
-    ComponentDto project = ComponentTesting.newProjectDto("ABCD").setKey("PROJECT_KEY").setName("Project");
+    ComponentDto project = ComponentTesting.newProjectDto("ABCD").setKey(PROJECT_KEY).setName("Project");
     dbClient.componentDao().insert(session, project);
     ComponentDto module = ComponentTesting.newModuleDto("BCDE", project).setKey("MODULE_KEY").setName("Module");
     dbClient.componentDao().insert(session, module);
@@ -299,7 +301,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setName("Project")
       .addChildRef(2)
       .build());
@@ -322,11 +324,11 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setPath("src/main/java/dir/Foo.java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), project));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(4);
 
-    ComponentDto projectReloaded = dbClient.componentDao().selectNullableByKey(session, "PROJECT_KEY");
+    ComponentDto projectReloaded = dbClient.componentDao().selectNullableByKey(session, PROJECT_KEY);
     assertThat(projectReloaded.getId()).isEqualTo(project.getId());
     assertThat(projectReloaded.uuid()).isEqualTo(project.uuid());
 
@@ -370,7 +372,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setName("Project")
       .addChildRef(2)
       .build());
@@ -401,11 +403,11 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setPath("src/main/java/dir")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto()));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(5);
 
-    ComponentDto project = dbClient.componentDao().selectNullableByKey(session, "PROJECT_KEY");
+    ComponentDto project = dbClient.componentDao().selectNullableByKey(session, PROJECT_KEY);
     assertThat(project).isNotNull();
     assertThat(project.parentProjectId()).isNull();
 
@@ -428,12 +430,12 @@ public class PersistComponentsStepTest extends BaseStepTest {
 
   @Test
   public void nothing_to_persist() throws Exception {
-    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY", "ABCD"));
+    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent(PROJECT_KEY, "ABCD"));
     computeComponentsRefCache.addComponent(2, new ComputeComponentsRefCache.ComputeComponent("MODULE_KEY", "BCDE"));
     computeComponentsRefCache.addComponent(3, new ComputeComponentsRefCache.ComputeComponent("MODULE_KEY:src/main/java/dir", "CDEF"));
     computeComponentsRefCache.addComponent(4, new ComputeComponentsRefCache.ComputeComponent("MODULE_KEY:src/main/java/dir/Foo.java", "DEFG"));
 
-    ComponentDto project = ComponentTesting.newProjectDto("ABCD").setKey("PROJECT_KEY").setName("Project");
+    ComponentDto project = ComponentTesting.newProjectDto("ABCD").setKey(PROJECT_KEY).setName("Project");
     dbClient.componentDao().insert(session, project);
     ComponentDto module = ComponentTesting.newModuleDto("BCDE", project).setKey("MODULE_KEY").setName("Module");
     dbClient.componentDao().insert(session, module);
@@ -451,10 +453,10 @@ public class PersistComponentsStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
-      .setName("Project")
-      .addChildRef(2)
-      .build());
+      .setKey(PROJECT_KEY)
+        .setName("Project")
+        .addChildRef(2)
+        .build());
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(2)
       .setType(Constants.ComponentType.MODULE)
@@ -474,15 +476,15 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setPath("src/main/java/dir/Foo.java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), project));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(4);
-    assertThat(dbClient.componentDao().selectNullableByKey(session, "PROJECT_KEY").getId()).isEqualTo(project.getId());
+    assertThat(dbClient.componentDao().selectNullableByKey(session, PROJECT_KEY).getId()).isEqualTo(project.getId());
     assertThat(dbClient.componentDao().selectNullableByKey(session, "MODULE_KEY").getId()).isEqualTo(module.getId());
     assertThat(dbClient.componentDao().selectNullableByKey(session, "MODULE_KEY:src/main/java/dir").getId()).isEqualTo(directory.getId());
     assertThat(dbClient.componentDao().selectNullableByKey(session, "MODULE_KEY:src/main/java/dir/Foo.java").getId()).isEqualTo(file.getId());
 
-    ComponentDto projectReloaded = dbClient.componentDao().selectNullableByKey(session, "PROJECT_KEY");
+    ComponentDto projectReloaded = dbClient.componentDao().selectNullableByKey(session, PROJECT_KEY);
     assertThat(projectReloaded.getId()).isEqualTo(project.getId());
     assertThat(projectReloaded.uuid()).isEqualTo(project.uuid());
     assertThat(projectReloaded.moduleUuid()).isEqualTo(project.moduleUuid());
@@ -521,10 +523,10 @@ public class PersistComponentsStepTest extends BaseStepTest {
 
   @Test
   public void update_name_and_description() throws Exception {
-    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY", "ABCD"));
+    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent(PROJECT_KEY, "ABCD"));
     computeComponentsRefCache.addComponent(2, new ComputeComponentsRefCache.ComputeComponent("MODULE_KEY", "BCDE"));
 
-    ComponentDto project = ComponentTesting.newProjectDto("ABCD").setKey("PROJECT_KEY").setName("Project");
+    ComponentDto project = ComponentTesting.newProjectDto("ABCD").setKey(PROJECT_KEY).setName("Project");
     dbClient.componentDao().insert(session, project);
     ComponentDto module = ComponentTesting.newModuleDto("BCDE", project).setKey("MODULE_KEY").setName("Module");
     dbClient.componentDao().insert(session, module);
@@ -539,7 +541,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setName("New project name")
       .setDescription("New project description")
       .addChildRef(2)
@@ -552,9 +554,9 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setDescription("New module description")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), project));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
-    ComponentDto projectReloaded = dbClient.componentDao().selectNullableByKey(session, "PROJECT_KEY");
+    ComponentDto projectReloaded = dbClient.componentDao().selectNullableByKey(session, PROJECT_KEY);
     assertThat(projectReloaded.name()).isEqualTo("New project name");
     assertThat(projectReloaded.description()).isEqualTo("New project description");
 
@@ -565,13 +567,13 @@ public class PersistComponentsStepTest extends BaseStepTest {
 
   @Test
   public void update_module_uuid_when_moving_a_module() throws Exception {
-    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent("PROJECT_KEY", "ABCD"));
+    computeComponentsRefCache.addComponent(1, new ComputeComponentsRefCache.ComputeComponent(PROJECT_KEY, "ABCD"));
     computeComponentsRefCache.addComponent(2, new ComputeComponentsRefCache.ComputeComponent("MODULE_A", "EDCB"));
     computeComponentsRefCache.addComponent(3, new ComputeComponentsRefCache.ComputeComponent("MODULE_B", "BCDE"));
     computeComponentsRefCache.addComponent(4, new ComputeComponentsRefCache.ComputeComponent("MODULE_B:src/main/java/dir", "CDEF"));
     computeComponentsRefCache.addComponent(5, new ComputeComponentsRefCache.ComputeComponent("MODULE_B:src/main/java/dir/Foo.java", "DEFG"));
 
-    ComponentDto project = ComponentTesting.newProjectDto("ABCD").setKey("PROJECT_KEY").setName("Project");
+    ComponentDto project = ComponentTesting.newProjectDto("ABCD").setKey(PROJECT_KEY).setName("Project");
     dbClient.componentDao().insert(session, project);
     ComponentDto moduleA = ComponentTesting.newModuleDto("EDCB", project).setKey("MODULE_A").setName("Module A");
     ComponentDto moduleB = ComponentTesting.newModuleDto("BCDE", project).setKey("MODULE_B").setName("Module B");
@@ -590,7 +592,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setName("Project")
       .addChildRef(2)
       .build());
@@ -621,7 +623,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setPath("src/main/java/dir/Foo.java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), project));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(5);
 
index d83a3f1f8662f1d4560ba00a3e149569817f7642..9137b515fa614b509ba44f1077fec2cf7fe2d517 100644 (file)
@@ -36,7 +36,6 @@ import org.sonar.batch.protocol.output.BatchReportWriter;
 import org.sonar.core.measure.db.MetricDto;
 import org.sonar.core.persistence.DbSession;
 import org.sonar.core.persistence.DbTester;
-import org.sonar.server.component.ComponentTesting;
 import org.sonar.server.computation.ComputationContext;
 import org.sonar.server.computation.component.DbComponentsRefCache;
 import org.sonar.server.computation.component.DbComponentsRefCache.DbComponent;
@@ -54,6 +53,8 @@ import static org.assertj.core.api.Assertions.assertThat;
 @Category(DbTests.class)
 public class PersistDuplicationsStepTest extends BaseStepTest {
 
+  private static final String PROJECT_KEY = "PROJECT_KEY";
+
   @Rule
   public TemporaryFolder temp = new TemporaryFolder();
 
@@ -97,7 +98,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
     saveDuplicationMetric();
     initReportWithProjectAndFile();
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto("PROJECT")));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(0);
   }
@@ -123,7 +124,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
       .build();
     writer.writeComponentDuplications(2, newArrayList(duplication));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto("PROJECT")));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
 
@@ -135,7 +136,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
 
   @Test
   public void persist_duplications_on_same_file_linked_on_a_module() throws Exception {
-    dbComponentsRefCache.addComponent(1, new DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponent(1L, PROJECT_KEY, "ABCD"));
     dbComponentsRefCache.addComponent(2, new DbComponent(2L, "MODULE_KEY", "BCDE"));
     dbComponentsRefCache.addComponent(3, new DbComponent(3L, "MODULE_KEY:file", "CDEF"));
 
@@ -150,7 +151,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setSnapshotId(10L)
       .addChildRef(2)
       .build());
@@ -183,7 +184,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
       .build();
     writer.writeComponentDuplications(3, newArrayList(duplication));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto("PROJECT")));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
 
@@ -194,7 +195,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
 
   @Test
   public void persist_duplications_on_same_file_linked_on_a_folder() {
-    dbComponentsRefCache.addComponent(1, new DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponent(1L, PROJECT_KEY, "ABCD"));
     dbComponentsRefCache.addComponent(2, new DbComponent(2L, "PROJECT_KEY:dir", "BCDE"));
     dbComponentsRefCache.addComponent(3, new DbComponent(3L, "PROJECT_KEY:file", "CDEF"));
 
@@ -209,7 +210,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setSnapshotId(10L)
       .addChildRef(2)
       .build());
@@ -242,7 +243,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
       .build();
     writer.writeComponentDuplications(3, newArrayList(duplication));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto("PROJECT")));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
 
@@ -253,7 +254,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
 
   @Test
   public void persist_duplications_on_same_file_linked_on_sub_folder() {
-    dbComponentsRefCache.addComponent(1, new DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponent(1L, PROJECT_KEY, "ABCD"));
     dbComponentsRefCache.addComponent(2, new DbComponent(2L, "PROJECT_KEY:dir", "BCDE"));
     dbComponentsRefCache.addComponent(3, new DbComponent(3L, "PROJECT_KEY:dir", "CDEF"));
     dbComponentsRefCache.addComponent(10, new DbComponent(10L, "PROJECT_KEY:file", "DEFG"));
@@ -268,7 +269,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setSnapshotId(10L)
       .addChildRef(2)
       .build());
@@ -308,7 +309,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
       .build();
     writer.writeComponentDuplications(10, newArrayList(duplication));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto("PROJECT")));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
 
@@ -344,7 +345,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
       .build();
     writer.writeComponentDuplications(2, newArrayList(duplication));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto("PROJECT")));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
 
@@ -373,7 +374,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
       .build();
     writer.writeComponentDuplications(2, newArrayList(duplication));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto("PROJECT")));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
 
@@ -383,7 +384,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
   }
 
   private BatchReportWriter initReportWithProjectAndFile() {
-    dbComponentsRefCache.addComponent(1, new DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponent(1L, PROJECT_KEY, "ABCD"));
     dbComponentsRefCache.addComponent(2, new DbComponent(2L, "PROJECT_KEY:file", "BCDE"));
 
     BatchReportWriter writer = new BatchReportWriter(reportDir);
@@ -394,7 +395,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("PROJECT_KEY")
+      .setKey(PROJECT_KEY)
       .setSnapshotId(10L)
       .addChildRef(2)
       .build());
index 316b2a131c918969ae4fc81b298a97564b17517f..de8be139f824f99c317ebffcff9aeba8b61fdf95 100644 (file)
@@ -32,7 +32,6 @@ import org.sonar.batch.protocol.Constants;
 import org.sonar.batch.protocol.output.BatchReport;
 import org.sonar.batch.protocol.output.BatchReportReader;
 import org.sonar.batch.protocol.output.BatchReportWriter;
-import org.sonar.core.component.ComponentDto;
 import org.sonar.core.persistence.DbSession;
 import org.sonar.core.persistence.DbTester;
 import org.sonar.server.computation.ComputationContext;
@@ -50,6 +49,8 @@ import static org.mockito.Mockito.when;
 @Category(DbTests.class)
 public class PersistEventsStepTest extends BaseStepTest {
 
+  private static final String PROJECT_KEY = "PROJECT_KEY";
+  
   @Rule
   public TemporaryFolder temp = new TemporaryFolder();
 
@@ -93,13 +94,13 @@ public class PersistEventsStepTest extends BaseStepTest {
   public void nothing_to_do_when_no_events_in_report() throws Exception {
     dbTester.prepareDbUnit(getClass(), "nothing_to_do_when_no_events_in_report.xml");
 
-    dbComponentsRefCache.addComponent(1, new DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponent(1L, PROJECT_KEY, "ABCD"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .setAnalysisDate(150000000L)
       .build());
 
@@ -108,7 +109,7 @@ public class PersistEventsStepTest extends BaseStepTest {
       .setType(Constants.ComponentType.PROJECT)
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     dbTester.assertDbUnit(getClass(), "nothing_to_do_when_no_events_in_report.xml", "events");
   }
@@ -117,13 +118,13 @@ public class PersistEventsStepTest extends BaseStepTest {
   public void persist_report_events() throws Exception {
     dbTester.prepareDbUnit(getClass(), "empty.xml");
 
-    dbComponentsRefCache.addComponent(1, new DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponent(1L, PROJECT_KEY, "ABCD"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .setAnalysisDate(150000000L)
       .build());
 
@@ -145,7 +146,7 @@ public class PersistEventsStepTest extends BaseStepTest {
       )
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     dbTester.assertDbUnit(getClass(), "add_events-result.xml", "events");
   }
@@ -154,14 +155,14 @@ public class PersistEventsStepTest extends BaseStepTest {
   public void persist_report_events_with_component_children() throws Exception {
     dbTester.prepareDbUnit(getClass(), "empty.xml");
 
-    dbComponentsRefCache.addComponent(1, new DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponent(1L, PROJECT_KEY, "ABCD"));
     dbComponentsRefCache.addComponent(2, new DbComponent(2L, "MODULE_KEY", "BCDE"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .setAnalysisDate(150000000L)
       .build());
 
@@ -188,7 +189,7 @@ public class PersistEventsStepTest extends BaseStepTest {
           .build()
       ).build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     dbTester.assertDbUnit(getClass(), "persist_report_events_with_component_children-result.xml", "events");
   }
@@ -197,13 +198,13 @@ public class PersistEventsStepTest extends BaseStepTest {
   public void create_version_event() throws Exception {
     dbTester.prepareDbUnit(getClass(), "empty.xml");
 
-    dbComponentsRefCache.addComponent(1, new DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponent(1L, PROJECT_KEY, "ABCD"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .setAnalysisDate(150000000L)
       .build());
 
@@ -214,7 +215,7 @@ public class PersistEventsStepTest extends BaseStepTest {
       .setVersion("1.0")
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     dbTester.assertDbUnit(getClass(), "add_version_event-result.xml", "events");
   }
@@ -223,13 +224,13 @@ public class PersistEventsStepTest extends BaseStepTest {
   public void keep_one_event_by_version() throws Exception {
     dbTester.prepareDbUnit(getClass(), "keep_one_event_by_version.xml");
 
-    dbComponentsRefCache.addComponent(1, new DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponent(1L, PROJECT_KEY, "ABCD"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .setAnalysisDate(150000000L)
       .build());
 
@@ -240,7 +241,7 @@ public class PersistEventsStepTest extends BaseStepTest {
       .setVersion("1.5-SNAPSHOT")
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     dbTester.assertDbUnit(getClass(), "keep_one_event_by_version-result.xml", "events");
   }
index 866541368a5f540c2b0a832fa33461f92d1b6413..fde151e5987830b5bfab3afea2ec16d83f83700f 100644 (file)
@@ -39,7 +39,6 @@ import org.sonar.core.persistence.DbSession;
 import org.sonar.core.persistence.DbTester;
 import org.sonar.core.source.db.FileSourceDto;
 import org.sonar.core.source.db.FileSourceDto.Type;
-import org.sonar.server.component.ComponentTesting;
 import org.sonar.server.computation.ComputationContext;
 import org.sonar.server.computation.component.DbComponentsRefCache;
 import org.sonar.server.db.DbClient;
@@ -63,6 +62,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
   private static final int FILE_REF = 3;
 
   private static final String PROJECT_UUID = "PROJECT";
+  private static final String PROJECT_KEY = "PROJECT_KEY";
   private static final String FILE_UUID = "FILE";
 
   @Rule
@@ -113,7 +113,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
   public void persist_sources() throws Exception {
     initBasicReport(2);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -135,14 +135,14 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
 
   @Test
   public void persist_last_line() throws Exception {
-    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, "PROJECT_KEY", PROJECT_UUID));
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, PROJECT_KEY, PROJECT_UUID));
     dbComponentsRefCache.addComponent(FILE_REF, new DbComponentsRefCache.DbComponent(2L, "PROJECT_KEY:file", FILE_UUID));
 
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     FileUtils.writeLines(writer.getFileStructure().fileFor(FileStructure.Domain.SOURCE, FILE_REF), Lists.newArrayList("line1", "line2"));
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .build());
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
@@ -156,7 +156,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
       .setLines(3)
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -170,7 +170,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
   public void persist_source_hashes() throws Exception {
     initBasicReport(2);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource("FILE");
@@ -192,7 +192,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
       .setOverallCoveredConditions(4)
       .build()));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -225,7 +225,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
       .addChangesetIndexByLine(0)
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -251,7 +251,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
       .build()
       ));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -277,7 +277,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
         ).build()
       ));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -309,7 +309,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
         .build()
       ));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -347,7 +347,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
     // Sources from the report
     initBasicReport(1);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -381,7 +381,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
 
     initBasicReport(1);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -412,7 +412,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
 
     initBasicReport(1);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -437,7 +437,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
     ));
 
     try {
-      sut.execute(new ComputationContext(new BatchReportReader(reportDir), ComponentTesting.newProjectDto(PROJECT_UUID)));
+      sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
       failBecauseExceptionWasNotThrown(IllegalStateException.class);
     } catch (IllegalStateException e){
       assertThat(e).hasMessage("Cannot persist sources of src/Foo.java").hasCauseInstanceOf(IllegalArgumentException.class);
@@ -445,14 +445,14 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
   }
 
   private BatchReportWriter initBasicReport(int numberOfLines) throws IOException {
-    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, "PROJECT_KEY", PROJECT_UUID));
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, PROJECT_KEY, PROJECT_UUID));
     dbComponentsRefCache.addComponent(2, new DbComponentsRefCache.DbComponent(2L, "MODULE_KEY", "MODULE"));
     dbComponentsRefCache.addComponent(FILE_REF, new DbComponentsRefCache.DbComponent(3L, "MODULE_KEY:src/Foo.java", FILE_UUID));
 
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .build());
 
     writer.writeComponent(BatchReport.Component.newBuilder()
index 4d7689282656056ff58c948747f991c6ce910804..f158fd33b36e6f68e8136f3e9ee26be3404f7f6f 100644 (file)
@@ -62,11 +62,11 @@ import java.util.List;
 import java.util.Map;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
 
 @Category(DbTests.class)
 public class PersistMeasuresStepTest extends BaseStepTest {
 
+  private static final String PROJECT_KEY = "PROJECT_KEY";
   private static final String METRIC_KEY = "metric-key";
   private static final RuleKey RULE_KEY = RuleKey.of("repo", "rule-key");
 
@@ -176,7 +176,7 @@ public class PersistMeasuresStepTest extends BaseStepTest {
         .setCharactericId(123456)
         .build()));
 
-    sut.execute(new ComputationContext(new BatchReportReader(dir), mock(ComponentDto.class)));
+    sut.execute(new ComputationContext(new BatchReportReader(dir), PROJECT_KEY));
     session.commit();
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(2);
index ebde86c957068acf90276f3f75b3ec165683e28c..3d65c32b8d92c3a2146df16316af0e6c92c74f4e 100644 (file)
@@ -33,7 +33,6 @@ import org.sonar.batch.protocol.output.BatchReportReader;
 import org.sonar.batch.protocol.output.BatchReportWriter;
 import org.sonar.core.measure.db.MetricDto;
 import org.sonar.core.persistence.DbTester;
-import org.sonar.server.component.ComponentTesting;
 import org.sonar.server.computation.ComputationContext;
 import org.sonar.server.computation.component.DbComponentsRefCache;
 import org.sonar.server.computation.measure.MetricCache;
@@ -95,7 +94,7 @@ public class PersistNumberOfDaysSinceLastCommitStepTest extends BaseStepTest {
         )
         .build()
       );
-    ComputationContext context = new ComputationContext(new BatchReportReader(dir), ComponentTesting.newProjectDto("project-uuid"));
+    ComputationContext context = new ComputationContext(new BatchReportReader(dir), "PROJECT_KEY");
 
     sut.execute(context);
 
@@ -107,7 +106,7 @@ public class PersistNumberOfDaysSinceLastCommitStepTest extends BaseStepTest {
     Date sixDaysAgo = DateUtils.addDays(new Date(), -6);
     when(sourceLineIndex.lastCommitDateOnProject("project-uuid")).thenReturn(sixDaysAgo);
     initReportWithProjectAndFile();
-    ComputationContext context = new ComputationContext(new BatchReportReader(dir), ComponentTesting.newProjectDto("project-uuid"));
+    ComputationContext context = new ComputationContext(new BatchReportReader(dir), "PROJECT_KEY");
 
     sut.execute(context);
 
@@ -117,7 +116,7 @@ public class PersistNumberOfDaysSinceLastCommitStepTest extends BaseStepTest {
   @Test
   public void no_scm_information_in_report_and_index() {
     initReportWithProjectAndFile();
-    ComputationContext context = new ComputationContext(new BatchReportReader(dir), ComponentTesting.newProjectDto("project-uuid"));
+    ComputationContext context = new ComputationContext(new BatchReportReader(dir),"PROJECT_KEY");
 
     sut.execute(context);
 
@@ -125,8 +124,8 @@ public class PersistNumberOfDaysSinceLastCommitStepTest extends BaseStepTest {
   }
 
   private BatchReportWriter initReportWithProjectAndFile() {
-    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, "project-key", "project-uuid"));
-    dbComponentsRefCache.addComponent(2, new DbComponentsRefCache.DbComponent(2L, "project-key:file", "file-uuid"));
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, "PROJECT_KEY", "project-uuid"));
+    dbComponentsRefCache.addComponent(2, new DbComponentsRefCache.DbComponent(2L, "PROJECT_KEY:file", "file-uuid"));
 
     BatchReportWriter writer = new BatchReportWriter(dir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
@@ -137,7 +136,7 @@ public class PersistNumberOfDaysSinceLastCommitStepTest extends BaseStepTest {
     writer.writeComponent(BatchReport.Component.newBuilder()
       .setRef(1)
       .setType(Constants.ComponentType.PROJECT)
-      .setKey("project-key")
+      .setKey("PROJECT_KEY")
       .setSnapshotId(10L)
       .addChildRef(2)
       .build());
index 256b008343c0c54e2ad8acbb28269d7a7fb4d702..97e9d23b147d11525dbcd6edb643863aafb6be29 100644 (file)
@@ -32,7 +32,6 @@ import org.sonar.batch.protocol.Constants;
 import org.sonar.batch.protocol.output.BatchReport;
 import org.sonar.batch.protocol.output.BatchReportReader;
 import org.sonar.batch.protocol.output.BatchReportWriter;
-import org.sonar.core.component.ComponentDto;
 import org.sonar.core.persistence.DbSession;
 import org.sonar.core.persistence.DbTester;
 import org.sonar.server.component.db.ComponentLinkDao;
@@ -52,6 +51,8 @@ import static org.mockito.Mockito.when;
 @Category(DbTests.class)
 public class PersistProjectLinksStepTest extends BaseStepTest {
 
+  private static final String PROJECT_KEY = "PROJECT_KEY";
+
   @Rule
   public TemporaryFolder temp = new TemporaryFolder();
 
@@ -99,7 +100,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
   public void add_links_on_project_and_module() throws Exception {
     dbTester.prepareDbUnit(getClass(), "empty.xml");
 
-    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, PROJECT_KEY, "ABCD"));
     dbComponentsRefCache.addComponent(2, new DbComponentsRefCache.DbComponent(2L, "MODULE_KEY", "BCDE"));
 
     File reportDir = temp.newFolder();
@@ -107,7 +108,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .setAnalysisDate(150000000L)
       .build());
 
@@ -127,7 +128,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.SCM).setHref("https://github.com/SonarSource/sonar/server").build())
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     dbTester.assertDbUnit(getClass(), "add_links_on_project_and_module-result.xml", "project_links");
   }
@@ -136,13 +137,13 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
   public void nothing_to_do_when_link_already_exists() throws Exception {
     dbTester.prepareDbUnit(getClass(), "nothing_to_do_when_link_already_exists.xml");
 
-    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, PROJECT_KEY, "ABCD"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .build());
 
     writer.writeComponent(BatchReport.Component.newBuilder()
@@ -151,7 +152,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.HOME).setHref("http://www.sonarqube.org").build())
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     dbTester.assertDbUnit(getClass(), "nothing_to_do_when_link_already_exists.xml", "project_links");
   }
@@ -160,13 +161,13 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
   public void do_not_add_links_on_file() throws Exception {
     dbTester.prepareDbUnit(getClass(), "empty.xml");
 
-    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, PROJECT_KEY, "ABCD"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .build());
 
     writer.writeComponent(BatchReport.Component.newBuilder()
@@ -175,7 +176,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.HOME).setHref("http://www.sonarqube.org").build())
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("project_links")).isEqualTo(0);
   }
@@ -184,13 +185,13 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
   public void update_link() throws Exception {
     dbTester.prepareDbUnit(getClass(), "update_link.xml");
 
-    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, PROJECT_KEY, "ABCD"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .build());
 
     writer.writeComponent(BatchReport.Component.newBuilder()
@@ -199,7 +200,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.HOME).setHref("http://www.sonarqube.org").build())
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     dbTester.assertDbUnit(getClass(), "update_link-result.xml", "project_links");
   }
@@ -208,13 +209,13 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
   public void delete_link() throws Exception {
     dbTester.prepareDbUnit(getClass(), "delete_link.xml");
 
-    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, PROJECT_KEY, "ABCD"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .build());
 
     writer.writeComponent(BatchReport.Component.newBuilder()
@@ -222,7 +223,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .setType(Constants.ComponentType.PROJECT)
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbTester.countRowsOfTable("project_links")).isEqualTo(0);
   }
@@ -231,13 +232,13 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
   public void not_delete_custom_link() throws Exception {
     dbTester.prepareDbUnit(getClass(), "not_delete_custom_link.xml");
 
-    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, PROJECT_KEY, "ABCD"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .build());
 
     writer.writeComponent(BatchReport.Component.newBuilder()
@@ -245,7 +246,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .setType(Constants.ComponentType.PROJECT)
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     dbTester.assertDbUnit(getClass(), "not_delete_custom_link.xml", "project_links");
   }
@@ -254,13 +255,13 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
   public void fail_when_trying_to_add_same_link_type_multiple_times() throws Exception {
     dbTester.prepareDbUnit(getClass(), "empty.xml");
 
-    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, "PROJECT_KEY", "ABCD"));
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, PROJECT_KEY, "ABCD"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .build());
 
     writer.writeComponent(BatchReport.Component.newBuilder()
@@ -271,7 +272,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .build());
 
     try {
-      step.execute(new ComputationContext(new BatchReportReader(reportDir), mock(ComponentDto.class)));
+      step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
       failBecauseExceptionWasNotThrown(IllegalArgumentException.class);
     } catch (IllegalArgumentException e) {
       assertThat(e).hasMessage("Link of type 'homepage' has already been declared on component 'ABCD'");
index 642ed46756af2df55cef358035cb764d40f7b145..6cf77c1a94def6cdaacaed2b27873a43ce63a029 100644 (file)
@@ -53,10 +53,10 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.tuple;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
-import static org.sonar.server.component.ComponentTesting.newProjectDto;
 
 public class PersistTestsStepTest extends BaseStepTest {
   private static final String PROJECT_UUID = "PROJECT";
+  private static final String PROJECT_KEY = "PROJECT_KEY";
   private static final int TEST_FILE_REF_1 = 3;
   private static final int TEST_FILE_REF_2 = 4;
   private static final int MAIN_FILE_REF_1 = 5;
@@ -117,7 +117,7 @@ public class PersistTestsStepTest extends BaseStepTest {
 
   @Test
   public void no_test_in_database_and_batch_report() {
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), newProjectDto()));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1)).isNull();
     assertThat(log.logs()).isEmpty();
@@ -135,7 +135,7 @@ public class PersistTestsStepTest extends BaseStepTest {
       );
     writer.writeCoverageDetails(TEST_FILE_REF_1, coverageDetails);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(db.countRowsOfTable("file_sources")).isEqualTo(1);
 
@@ -159,7 +159,7 @@ public class PersistTestsStepTest extends BaseStepTest {
     writer.writeTests(TEST_FILE_REF_1, Arrays.asList(newTest(1)));
     writer.writeCoverageDetails(TEST_FILE_REF_1, Arrays.asList(newCoverageDetail(1, MAIN_FILE_REF_1)));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1);
     assertThat(dto.getCreatedAt()).isEqualTo(now);
@@ -186,7 +186,7 @@ public class PersistTestsStepTest extends BaseStepTest {
     List<BatchReport.Test> batchTests = Arrays.asList(newTest(1));
     writer.writeTests(TEST_FILE_REF_1, batchTests);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1);
     assertThat(dto.getFileUuid()).isEqualTo(TEST_FILE_UUID_1);
@@ -205,10 +205,10 @@ public class PersistTestsStepTest extends BaseStepTest {
     writer.writeCoverageDetails(TEST_FILE_REF_1, coverageDetails);
     writer.writeCoverageDetails(TEST_FILE_REF_2, coverageDetails);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     assertThat(log.logs(LoggerLevel.WARN)).hasSize(1);
-    assertThat(log.logs(LoggerLevel.WARN).get(0)).isEqualTo("Some coverage tests are not taken into account during analysis of project 'KEY_PROJECT'");
+    assertThat(log.logs(LoggerLevel.WARN).get(0)).isEqualTo("Some coverage tests are not taken into account during analysis of project 'PROJECT_KEY'");
     assertThat(log.logs(LoggerLevel.TRACE)).hasSize(2);
     assertThat(log.logs(LoggerLevel.TRACE).get(0)).isEqualTo("The following test coverages for file 'TEST-PATH-1' have not been taken into account: name#2");
     assertThat(log.logs(LoggerLevel.TRACE).get(1)).startsWith("The following test coverages for file 'TEST-PATH-2' have not been taken into account: ");
@@ -223,7 +223,7 @@ public class PersistTestsStepTest extends BaseStepTest {
       newCoverageDetailWithLines(1, MAIN_FILE_REF_1, 1, 3),
       newCoverageDetailWithLines(1, MAIN_FILE_REF_1, 2, 4)));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1);
     List<Integer> coveredLines = dto.getTestData().get(0).getCoveredFile(0).getCoveredLineList();
@@ -257,7 +257,7 @@ public class PersistTestsStepTest extends BaseStepTest {
     writer.writeCoverageDetails(TEST_FILE_REF_1, Arrays.asList(newCoverageDetail));
 
     // ACT
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), newProjectDto(PROJECT_UUID)));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     // ASSERT
     FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1);
@@ -313,7 +313,7 @@ public class PersistTestsStepTest extends BaseStepTest {
     BatchReportWriter writer = new BatchReportWriter(reportDir);
     writer.writeMetadata(BatchReport.Metadata.newBuilder()
       .setRootComponentRef(1)
-      .setProjectKey("PROJECT_KEY")
+      .setProjectKey(PROJECT_KEY)
       .build());
 
     writer.writeComponent(BatchReport.Component.newBuilder()
index 0a9bd7fd09508a72eeebc74ef7c1293e3d343fb1..04f6015cb35344d7e1dc2c9bdde46e1028e0392c 100644 (file)
@@ -47,6 +47,8 @@ import static org.mockito.Mockito.verify;
 
 public class PurgeDatastoresStepTest extends BaseStepTest {
 
+  private static final String PROJECT_KEY = "PROJECT_KEY";
+
   ProjectCleaner projectCleaner = mock(ProjectCleaner.class);
   DbComponentsRefCache dbComponentsRefCache = new DbComponentsRefCache();
   PurgeDatastoresStep sut = new PurgeDatastoresStep(mock(DbClient.class, Mockito.RETURNS_DEEP_STUBS), projectCleaner, dbComponentsRefCache);
@@ -56,7 +58,7 @@ public class PurgeDatastoresStepTest extends BaseStepTest {
 
   @Test
   public void call_purge_method_of_the_purge_task() throws IOException {
-    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(123L, "PROJECT_KEY", "UUID-1234"));
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(123L, PROJECT_KEY, "UUID-1234"));
 
     File reportDir = temp.newFolder();
     BatchReportWriter writer = new BatchReportWriter(reportDir);
@@ -65,7 +67,7 @@ public class PurgeDatastoresStepTest extends BaseStepTest {
       .build());
 
     ComponentDto project = mock(ComponentDto.class);
-    ComputationContext context = new ComputationContext(new BatchReportReader(reportDir), project);
+    ComputationContext context = new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY);
 
     sut.execute(context);
 
index f1894052e2dbb17c0040b15c88f2bd1afbcdf8bb..4b8ca753b754075bd4036ae7fcec48295dc42331 100644 (file)
@@ -28,8 +28,12 @@ import org.sonar.api.issue.internal.DefaultIssue;
 import org.sonar.api.notifications.Notification;
 import org.sonar.api.rule.Severity;
 import org.sonar.api.utils.System2;
+import org.sonar.batch.protocol.Constants;
 import org.sonar.batch.protocol.output.BatchReport;
+import org.sonar.batch.protocol.output.BatchReportReader;
+import org.sonar.batch.protocol.output.BatchReportWriter;
 import org.sonar.server.computation.ComputationContext;
+import org.sonar.server.computation.component.DbComponentsRefCache;
 import org.sonar.server.computation.issue.IssueCache;
 import org.sonar.server.computation.issue.RuleCache;
 import org.sonar.server.issue.notification.IssueChangeNotification;
@@ -37,32 +41,59 @@ import org.sonar.server.issue.notification.NewIssuesNotification;
 import org.sonar.server.issue.notification.NewIssuesNotificationFactory;
 import org.sonar.server.notifications.NotificationService;
 
-import static org.mockito.Mockito.*;
+import java.io.File;
+import java.io.IOException;
+
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 public class SendIssueNotificationsStepTest extends BaseStepTest {
 
+  private static final String PROJECT_UUID = "PROJECT_UUID";
+  private static final String PROJECT_KEY = "PROJECT_KEY";
+
   @Rule
   public TemporaryFolder temp = new TemporaryFolder();
 
   RuleCache ruleCache = mock(RuleCache.class);
   NotificationService notifService = mock(NotificationService.class);
-  ComputationContext context = mock(ComputationContext.class, Mockito.RETURNS_DEEP_STUBS);
   IssueCache issueCache;
+  DbComponentsRefCache dbComponentsRefCache;
   NewIssuesNotificationFactory newIssuesNotificationFactory = mock(NewIssuesNotificationFactory.class, Mockito.RETURNS_DEEP_STUBS);
   SendIssueNotificationsStep sut;
 
+  File reportDir;
+
   @Before
   public void setUp() throws Exception {
     issueCache = new IssueCache(temp.newFile(), System2.INSTANCE);
-    sut = new SendIssueNotificationsStep(issueCache, ruleCache, notifService, newIssuesNotificationFactory);
+    dbComponentsRefCache = new DbComponentsRefCache();
+    sut = new SendIssueNotificationsStep(issueCache, ruleCache, dbComponentsRefCache, notifService, newIssuesNotificationFactory);
+
+    dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(1L, PROJECT_KEY, PROJECT_UUID));
+
+    reportDir = temp.newFolder();
+    BatchReportWriter writer = new BatchReportWriter(reportDir);
+    writer.writeMetadata(BatchReport.Metadata.newBuilder()
+      .setRootComponentRef(1)
+      .build());
+    writer.writeComponent(BatchReport.Component.newBuilder()
+      .setRef(1)
+      .setType(Constants.ComponentType.PROJECT)
+      .setKey(PROJECT_KEY)
+      .setName("Project name")
+      .build());
   }
 
   @Test
-  public void do_not_send_notifications_if_no_subscribers() {
-    when(context.getProject().uuid()).thenReturn("PROJECT_UUID");
-    when(notifService.hasProjectSubscribersForTypes("PROJECT_UUID", SendIssueNotificationsStep.NOTIF_TYPES)).thenReturn(false);
+  public void do_not_send_notifications_if_no_subscribers() throws IOException {
+    when(notifService.hasProjectSubscribersForTypes(PROJECT_UUID, SendIssueNotificationsStep.NOTIF_TYPES)).thenReturn(false);
 
-    sut.execute(context);
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     verify(notifService, never()).deliver(any(Notification.class));
   }
@@ -72,11 +103,9 @@ public class SendIssueNotificationsStepTest extends BaseStepTest {
     issueCache.newAppender().append(new DefaultIssue()
         .setSeverity(Severity.BLOCKER)).close();
 
-    when(context.getProject().uuid()).thenReturn("PROJECT_UUID");
-    when(context.getReportMetadata()).thenReturn(BatchReport.Metadata.newBuilder().build());
-    when(notifService.hasProjectSubscribersForTypes("PROJECT_UUID", SendIssueNotificationsStep.NOTIF_TYPES)).thenReturn(true);
+    when(notifService.hasProjectSubscribersForTypes(PROJECT_UUID, SendIssueNotificationsStep.NOTIF_TYPES)).thenReturn(true);
 
-    sut.execute(context);
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
 
     verify(notifService).deliver(any(NewIssuesNotification.class));
     verify(notifService, atLeastOnce()).deliver(any(IssueChangeNotification.class));
index f31935d577b9d2e33dc857ee522c197f2f3bcbc6..acd550864724e5247e04c98e301e2bbcd248927f 100644 (file)
@@ -89,7 +89,7 @@ public class IssueChangeNotificationTest {
 
   @Test
   public void set_project() {
-    IssueChangeNotification result = notification.setProject(new ComponentDto().setKey("MyService").setLongName("My Service"));
+    IssueChangeNotification result = notification.setProject("MyService", "My Service");
     assertThat(result.getFieldValue("projectKey")).isEqualTo("MyService");
     assertThat(result.getFieldValue("projectName")).isEqualTo("My Service");
   }
index 0c0d3ede87fc2e3ef742cbaaeee389ae14a73b49..09e01a6d270f0f9df081465945c9ff0e628c6fae 100644 (file)
@@ -30,7 +30,6 @@ import org.sonar.api.config.EmailSettings;
 import org.sonar.api.notifications.Notification;
 import org.sonar.api.user.User;
 import org.sonar.api.user.UserFinder;
-import org.sonar.core.component.ComponentDto;
 import org.sonar.plugins.emailnotifications.api.EmailMessage;
 
 import java.nio.charset.StandardCharsets;
@@ -169,7 +168,7 @@ public class IssueChangesEmailTemplateTest {
 
     Notification notification = new IssueChangeNotification()
       .setChangeAuthorLogin("simon")
-      .setProject(new ComponentDto().setLongName("Struts").setKey("org.apache:struts"));
+      .setProject("Struts", "org.apache:struts");
 
     EmailMessage message = template.format(notification);
     assertThat(message.getFrom()).isEqualTo("Simon");
index d596011d889422791bb4adf1f817790917544706..63c35a2bdeb7238811143d6509c0f98024facf8e 100644 (file)
@@ -30,9 +30,7 @@ import org.sonar.api.rule.Severity;
 import org.sonar.api.utils.DateUtils;
 import org.sonar.api.utils.Duration;
 import org.sonar.api.utils.Durations;
-import org.sonar.core.component.ComponentDto;
 import org.sonar.core.persistence.DbSession;
-import org.sonar.server.component.ComponentTesting;
 import org.sonar.server.db.DbClient;
 import org.sonar.server.rule.Rule;
 import org.sonar.server.rule.index.RuleDoc;
@@ -66,12 +64,7 @@ public class NewIssuesNotificationTest {
 
   @Test
   public void set_project() {
-    ComponentDto component = ComponentTesting.newProjectDto()
-      .setLongName("project-long-name")
-      .setUuid("project-uuid")
-      .setKey("project-key");
-
-    sut.setProject(component);
+    sut.setProject("project-key", "project-uuid", "project-long-name");
 
     assertThat(sut.getFieldValue(NewIssuesEmailTemplate.FIELD_PROJECT_NAME)).isEqualTo("project-long-name");
     assertThat(sut.getFieldValue(NewIssuesEmailTemplate.FIELD_PROJECT_UUID)).isEqualTo("project-uuid");
@@ -89,8 +82,6 @@ public class NewIssuesNotificationTest {
 
   @Test
   public void set_statistics() {
-    ComponentDto component = ComponentTesting.newProjectDto()
-      .setLongName("project-long-name");
     addIssueNTimes(newIssue1(), 5);
     addIssueNTimes(newIssue2(), 3);
     when(dbClient.componentDao().selectByUuid(any(DbSession.class), eq("file-uuid")).name()).thenReturn("file-name");
@@ -98,7 +89,7 @@ public class NewIssuesNotificationTest {
     when(ruleIndex.getByKey(RuleKey.of("SonarQube", "rule-the-world"))).thenReturn(newRule("Rule the World", "Java"));
     when(ruleIndex.getByKey(RuleKey.of("SonarQube", "rule-the-universe"))).thenReturn(newRule("Rule the Universe", "Clojure"));
 
-    sut.setStatistics(component, stats);
+    sut.setStatistics("project-long-name", stats);
 
     assertThat(sut.getFieldValue(SEVERITY + ".INFO.count")).isEqualTo("5");
     assertThat(sut.getFieldValue(SEVERITY + ".BLOCKER.count")).isEqualTo("3");
index 367d92d895b31312befd97368e77c5b80514ad8a..bdaacdd3a02e75c582a7fa969957fef1828ddbdd 100644 (file)
@@ -36,20 +36,18 @@ import static org.mockito.Mockito.mock;
 public class ProjectSettingsFactoryTest {
 
   private ProjectSettingsFactory sut;
-  private Settings settings;
-  private PropertiesDao dao;
 
   @Before
   public void before() {
-    this.settings = mock(Settings.class);
-    this.dao = mock(PropertiesDao.class);
+    Settings settings = mock(Settings.class);
+    PropertiesDao dao = mock(PropertiesDao.class);
 
     this.sut = new ProjectSettingsFactory(settings, dao);
   }
 
   @Test
   public void newProjectSettings_returns_a_ProjectSettings() {
-    Settings projectSettings = sut.newProjectSettings(1L);
+    Settings projectSettings = sut.newProjectSettings("PROJECT_KEY");
 
     assertThat(projectSettings).isInstanceOf(ProjectSettings.class);
   }
index bdf91f3f145410d795da250f5b7da3617ade1d0b..885f3d251d7e52c415d4acee128b1a5db5870271 100644 (file)
@@ -1,5 +1,5 @@
 <dataset>
-  <projects id="10" kee="P1" qualifier="TRK"/>
+  <projects id="10" kee="P1" qualifier="TRK" uuid="ABCD" name="Project 1"/>
   <snapshots
       id="110" project_id="10" parent_snapshot_id="[null]" root_project_id="10" root_snapshot_id="[null]"
       purge_status="[null]" period1_mode="[null]" period1_param="[null]" period1_date="[null]"
index 1a50baf6e6cb8393dfb052cd8aace38172fe8308..4f37b6405d77ed2a6991231027d68de408588a93 100644 (file)
@@ -26,8 +26,8 @@ import org.apache.commons.dbutils.DbUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.ibatis.session.SqlSession;
 import org.sonar.api.batch.BatchSide;
-import org.sonar.api.server.ServerSide;
 import org.sonar.api.resources.Scopes;
+import org.sonar.api.server.ServerSide;
 import org.sonar.core.persistence.DaoComponent;
 import org.sonar.core.persistence.DaoUtils;
 import org.sonar.core.persistence.DbSession;
@@ -133,27 +133,14 @@ public class PropertiesDao implements DaoComponent {
     }
   }
 
-  public List<PropertyDto> selectProjectProperties(String resourceKey, SqlSession session) {
-    return session.getMapper(PropertiesMapper.class).selectProjectProperties(resourceKey);
-  }
-
-  public List<PropertyDto> selectProjectProperties(long resourceId) {
-    SqlSession session = mybatis.openSession(false);
-    try {
-      return selectProjectProperties(resourceId, session);
-    } finally {
-      MyBatis.closeQuietly(session);
-    }
-  }
-
-  public List<PropertyDto> selectProjectProperties(long resourceId, SqlSession session) {
-    return session.getMapper(PropertiesMapper.class).selectProjectPropertiesByResourceId(resourceId);
+  public List<PropertyDto> selectProjectProperties(DbSession session, String projectKey) {
+    return session.getMapper(PropertiesMapper.class).selectProjectProperties(projectKey);
   }
 
   public List<PropertyDto> selectProjectProperties(String resourceKey) {
-    SqlSession session = mybatis.openSession(false);
+    DbSession session = mybatis.openSession(false);
     try {
-      return selectProjectProperties(resourceKey, session);
+      return selectProjectProperties(session, resourceKey);
     } finally {
       MyBatis.closeQuietly(session);
     }
index 908003b855e258109bc967c51d70932c5234ce4f..7095646484d0110e741aaa4d4d1de209bcd29797 100644 (file)
@@ -163,17 +163,6 @@ public class PropertiesDaoTest extends AbstractDaoTestCase {
     assertThat(first.getValue(), is("one"));
   }
 
-  @Test
-  public void selectProjectPropertiesByResourceId() {
-    setupData("selectProjectPropertiesByResourceId");
-
-    List<PropertyDto> properties = dao.selectProjectProperties(10L);
-
-    assertThat(properties.size(), is(2));
-    assertThat(properties).extracting("key").containsOnly("struts.one", "user.two");
-    assertThat(properties).extracting("value").containsOnly("one", "two");
-  }
-
   @Test
   public void select_module_properties_tree() {
     setupData("select_module_properties_tree");