*/
package org.sonar.server.computation.task.projectanalysis.analysis;
+import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@Immutable
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;
}
/**
return name;
}
+ public String getDescription() {
+ return description;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
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 + '\'';
+ }
+
}
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());
}
}
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;
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
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(