]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10261 add description to Project
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Tue, 6 Mar 2018 14:53:56 +0000 (15:53 +0100)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Tue, 13 Mar 2018 08:12:31 +0000 (09:12 +0100)
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/analysis/Project.java
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java
server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/analysis/ProjectTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java

index 3f048dda3bc13be44d989b9995b298d2f6747edc..b683160198f1a6b9077ea5a6968cb44b3fa580ff 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.sonar.server.computation.task.projectanalysis.analysis;
 
+import javax.annotation.Nullable;
 import javax.annotation.concurrent.Immutable;
 
 @Immutable
@@ -27,11 +28,17 @@ public class Project {
   private final String uuid;
   private final String key;
   private final String name;
+  private final String description;
 
   public Project(String uuid, String key, String name) {
+    this(uuid, key, name, null);
+  }
+
+  public Project(String uuid, String key, String name, @Nullable String description) {
     this.uuid = uuid;
     this.key = key;
     this.name = name;
+    this.description = description;
   }
 
   /**
@@ -52,6 +59,10 @@ public class Project {
     return name;
   }
 
+  public String getDescription() {
+    return description;
+  }
+
   @Override
   public boolean equals(Object o) {
     if (this == o) {
@@ -75,8 +86,16 @@ public class Project {
     sb.append("uuid='").append(uuid).append('\'');
     sb.append(", key='").append(key).append('\'');
     sb.append(", name='").append(name).append('\'');
+    sb.append(", description=").append(toString(this.description));
     sb.append('}');
     return sb.toString();
   }
 
+  private static String toString(@Nullable String s) {
+    if (s == null) {
+      return null;
+    }
+    return '\'' + s + '\'';
+  }
+
 }
index a394db74c4a4504bcee7842c0f4c3c501508e590..c74e9d4678995878853b11154871bf6aec7382db 100644 (file)
@@ -112,7 +112,7 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep {
         ceTask.getComponentUuid()));
     }
     ComponentDto dto = toProject(reportProjectKey);
-    analysisMetadata.setProject(new Project(dto.uuid(), dto.getDbKey(), dto.name()));
+    analysisMetadata.setProject(new Project(dto.uuid(), dto.getDbKey(), dto.name(), dto.description()));
     return () -> {
       if (!componentKey.equals(reportProjectKey)) {
         throw MessageException.of(format(
index e034e1caf37fea8f3a9dfa3b1567a96c3143ab7f..c5b64f8ef52da173cae6fe9a428ef19c81f379f3 100644 (file)
@@ -25,29 +25,53 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 public class ProjectTest {
   @Test
-  public void test_bean() {
-    Project project = new Project("U1", "K1", "N1");
+  public void test_bean_without_description() {
+    Project project1 = new Project("U1", "K1", "N1");
+    Project project2 = new Project("U1", "K1", "N1", null);
+
+    assertThat(project1.getUuid()).isEqualTo(project2.getUuid()).isEqualTo("U1");
+    assertThat(project1.getKey()).isEqualTo(project2.getKey()).isEqualTo("K1");
+    assertThat(project1.getName()).isEqualTo(project2.getName()).isEqualTo("N1");
+    assertThat(project1.getDescription()).isEqualTo(project2.getDescription()).isNull();
+
+    assertThat(project1.toString())
+      .isEqualTo(project2.toString())
+      .isEqualTo("Project{uuid='U1', key='K1', name='N1', description=null}");
+  }
+  @Test
+  public void test_bean_with_description() {
+    Project project1 = new Project("U1", "K1", "N1", "D1");
 
-    assertThat(project.getUuid()).isEqualTo("U1");
-    assertThat(project.getKey()).isEqualTo("K1");
-    assertThat(project.getName()).isEqualTo("N1");
+    assertThat(project1.getUuid()).isEqualTo("U1");
+    assertThat(project1.getKey()).isEqualTo("K1");
+    assertThat(project1.getName()).isEqualTo("N1");
+    assertThat(project1.getDescription()).isEqualTo("D1");
 
-    assertThat(project.toString()).isEqualTo("Project{uuid='U1', key='K1', name='N1'}");
+    assertThat(project1.toString())
+      .isEqualTo(project1.toString())
+      .isEqualTo("Project{uuid='U1', key='K1', name='N1', description='D1'}");
   }
 
   @Test
   public void test_equals_and_hashCode() {
     Project project1 = new Project("U1", "K1", "N1");
-    Project project1bis = new Project("U1", "K1", "N1");
-    Project project2 = new Project("U2", "K2", project1.getName() /* same name */);
+    Project project2 = new Project("U1", "K1", "N1", "D1");
 
-    assertThat(project1.equals(project1)).isTrue();
-    assertThat(project1.equals(project1bis)).isTrue();
-    assertThat(project1.equals(project2)).isFalse();
-    assertThat(project1.equals("U1")).isFalse();
+    assertThat(project1).isEqualTo(project1);
+    assertThat(project1).isNotEqualTo(null);
+    assertThat(project1).isNotEqualTo(new Object());
+    assertThat(project1).isEqualTo(new Project("U1", "K1", "N1", null));
+    assertThat(project1).isEqualTo(new Project("U1", "K2", "N1", null));
+    assertThat(project1).isEqualTo(new Project("U1", "K1", "N2", null));
+    assertThat(project1).isEqualTo(project2);
 
     assertThat(project1.hashCode()).isEqualTo(project1.hashCode());
-    assertThat(project1.hashCode()).isEqualTo(project1bis.hashCode());
+    assertThat(project1.hashCode()).isNotEqualTo(null);
+    assertThat(project1.hashCode()).isNotEqualTo(new Object().hashCode());
+    assertThat(project1.hashCode()).isEqualTo(new Project("U1", "K1", "N1", null).hashCode());
+    assertThat(project1.hashCode()).isEqualTo(new Project("U1", "K2", "N1", null).hashCode());
+    assertThat(project1.hashCode()).isEqualTo(new Project("U1", "K1", "N2", null).hashCode());
+    assertThat(project1.hashCode()).isEqualTo(project2.hashCode());
   }
 
 }
index d6f575495c506ee4fdf6d1ec8ed70f1c16638c4a..a123e69b0b1ab640990041b42679f92fe5c0dde1 100644 (file)
@@ -39,6 +39,7 @@ import org.sonar.db.organization.OrganizationDto;
 import org.sonar.scanner.protocol.output.ScannerReport;
 import org.sonar.server.computation.task.projectanalysis.analysis.MutableAnalysisMetadataHolderRule;
 import org.sonar.server.computation.task.projectanalysis.analysis.Organization;
+import org.sonar.server.computation.task.projectanalysis.analysis.Project;
 import org.sonar.server.computation.task.projectanalysis.analysis.ScannerPlugin;
 import org.sonar.server.computation.task.projectanalysis.batch.BatchReportReaderRule;
 import org.sonar.server.computation.task.projectanalysis.component.BranchLoader;
@@ -71,14 +72,15 @@ public class LoadReportAnalysisMetadataHolderStepTest {
   private DbClient dbClient = db.getDbClient();
   private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
   private PluginRepository pluginRepository = mock(PluginRepository.class);
-  private ComputationStep underTest;
   private OrganizationFlags organizationFlags = mock(OrganizationFlags.class);
+  private ComponentDto project;
+  private ComputationStep underTest;
 
   @Before
   public void setUp() {
     CeTask defaultOrgCeTask = createCeTask(PROJECT_KEY, db.getDefaultOrganization().getUuid());
     underTest = createStep(defaultOrgCeTask);
-    db.components().insertPublicProject(db.getDefaultOrganization(), p -> p.setDbKey(PROJECT_KEY));
+    project = db.components().insertPublicProject(db.getDefaultOrganization(), p -> p.setDbKey(PROJECT_KEY));
   }
 
   @Test
@@ -105,6 +107,22 @@ public class LoadReportAnalysisMetadataHolderStepTest {
     assertThat(analysisMetadataHolder.getAnalysisDate()).isEqualTo(ANALYSIS_DATE);
   }
 
+  @Test
+  public void set_project_from_dto() {
+    reportReader.setMetadata(
+      newBatchReportBuilder()
+        .setRootComponentRef(1)
+        .build());
+
+    underTest.execute();
+
+    Project project = analysisMetadataHolder.getProject();
+    assertThat(project.getUuid()).isEqualTo(this.project.uuid());
+    assertThat(project.getKey()).isEqualTo(this.project.getDbKey());
+    assertThat(project.getName()).isEqualTo(this.project.name());
+    assertThat(project.getDescription()).isEqualTo(this.project.description());
+  }
+
   @Test
   public void set_cross_project_duplication_to_true() {
     reportReader.setMetadata(