@@ -49,7 +49,6 @@ import org.sonar.db.ce.CeTaskCharacteristicDto; | |||
import org.sonar.db.ce.DeleteIf; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.server.organization.DefaultOrganizationProvider; | |||
import org.sonar.server.property.InternalProperties; | |||
import static com.google.common.base.Preconditions.checkState; | |||
@@ -69,13 +68,11 @@ public class CeQueueImpl implements CeQueue { | |||
private final System2 system2; | |||
private final DbClient dbClient; | |||
private final UuidFactory uuidFactory; | |||
private final DefaultOrganizationProvider defaultOrganizationProvider; | |||
public CeQueueImpl(System2 system2, DbClient dbClient, UuidFactory uuidFactory, DefaultOrganizationProvider defaultOrganizationProvider) { | |||
public CeQueueImpl(System2 system2, DbClient dbClient, UuidFactory uuidFactory) { | |||
this.system2 = system2; | |||
this.dbClient = dbClient; | |||
this.uuidFactory = uuidFactory; | |||
this.defaultOrganizationProvider = defaultOrganizationProvider; | |||
} | |||
@Override | |||
@@ -356,7 +353,6 @@ public class CeQueueImpl implements CeQueue { | |||
String componentUuid = taskDto.getComponentUuid(); | |||
if (component != null) { | |||
builder.setComponent(new CeTask.Component(component.uuid(), component.getDbKey(), component.name())); | |||
builder.setOrganizationUuid(component.getOrganizationUuid()); | |||
} else if (componentUuid != null) { | |||
builder.setComponent(new CeTask.Component(componentUuid, null, null)); | |||
} | |||
@@ -368,11 +364,6 @@ public class CeQueueImpl implements CeQueue { | |||
builder.setMainComponent(new CeTask.Component(mainComponentUuid, null, null)); | |||
} | |||
// FIXME this should be set from the CeQueueDto | |||
if (!builder.hasOrganizationUuid()) { | |||
builder.setOrganizationUuid(defaultOrganizationProvider.get().getUuid()); | |||
} | |||
return builder.build(); | |||
} | |||
@@ -44,8 +44,6 @@ import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.db.user.UserTesting; | |||
import org.sonar.server.organization.DefaultOrganizationProvider; | |||
import org.sonar.server.organization.TestDefaultOrganizationProvider; | |||
import static com.google.common.collect.ImmutableList.of; | |||
import static java.util.Arrays.asList; | |||
@@ -72,9 +70,8 @@ public class CeQueueImplTest { | |||
private DbSession session = db.getSession(); | |||
private UuidFactory uuidFactory = new SequenceUuidFactory(); | |||
private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db); | |||
private CeQueue underTest = new CeQueueImpl(system2, db.getDbClient(), uuidFactory, defaultOrganizationProvider); | |||
private CeQueue underTest = new CeQueueImpl(system2, db.getDbClient(), uuidFactory); | |||
@Test | |||
public void submit_returns_task_populated_from_CeTaskSubmit_and_creates_CeQueue_row() { | |||
@@ -91,7 +88,7 @@ public class CeQueueImplTest { | |||
@Test | |||
public void submit_populates_component_name_and_key_of_CeTask_if_component_exists() { | |||
ComponentDto componentDto = insertComponent(ComponentTesting.newPrivateProjectDto(db.organizations().insert(), "PROJECT_1")); | |||
ComponentDto componentDto = insertComponent(ComponentTesting.newPrivateProjectDto("PROJECT_1")); | |||
CeTaskSubmit taskSubmit = createTaskSubmit(CeTaskTypes.REPORT, Component.fromDto(componentDto), null); | |||
CeTask task = underTest.submit(taskSubmit); | |||
@@ -226,7 +223,7 @@ public class CeQueueImplTest { | |||
@Test | |||
public void massSubmit_populates_component_name_and_key_of_CeTask_if_project_exists() { | |||
ComponentDto componentDto1 = insertComponent(ComponentTesting.newPrivateProjectDto(db.getDefaultOrganization(), "PROJECT_1")); | |||
ComponentDto componentDto1 = insertComponent(ComponentTesting.newPrivateProjectDto("PROJECT_1")); | |||
CeTaskSubmit taskSubmit1 = createTaskSubmit(CeTaskTypes.REPORT, Component.fromDto(componentDto1), null); | |||
CeTaskSubmit taskSubmit2 = createTaskSubmit("something", newComponent(randomAlphabetic(12)), null); | |||
@@ -239,7 +236,7 @@ public class CeQueueImplTest { | |||
@Test | |||
public void massSubmit_populates_component_name_and_key_of_CeTask_if_project_and_branch_exists() { | |||
ComponentDto project = insertComponent(ComponentTesting.newPrivateProjectDto(db.getDefaultOrganization(), "PROJECT_1")); | |||
ComponentDto project = insertComponent(ComponentTesting.newPrivateProjectDto("PROJECT_1")); | |||
ComponentDto branch1 = db.components().insertProjectBranch(project); | |||
ComponentDto branch2 = db.components().insertProjectBranch(project); | |||
CeTaskSubmit taskSubmit1 = createTaskSubmit(CeTaskTypes.REPORT, Component.fromDto(branch1), null); | |||
@@ -510,11 +507,6 @@ public class CeQueueImplTest { | |||
} | |||
private void verifyCeTask(CeTaskSubmit taskSubmit, CeTask task, @Nullable ComponentDto componentDto, @Nullable ComponentDto mainComponentDto, @Nullable UserDto userDto) { | |||
if (componentDto == null) { | |||
assertThat(task.getOrganizationUuid()).isEqualTo(defaultOrganizationProvider.get().getUuid()); | |||
} else { | |||
assertThat(task.getOrganizationUuid()).isEqualTo(componentDto.getOrganizationUuid()); | |||
} | |||
assertThat(task.getUuid()).isEqualTo(taskSubmit.getUuid()); | |||
if (componentDto != null) { | |||
CeTask.Component component = task.getComponent().get(); | |||
@@ -582,9 +574,7 @@ public class CeQueueImplTest { | |||
} | |||
private ComponentDto insertComponent(ComponentDto componentDto) { | |||
db.getDbClient().componentDao().insert(session, componentDto); | |||
session.commit(); | |||
return componentDto; | |||
return db.components().insertComponent(componentDto); | |||
} | |||
private UserDto insertUser(UserDto userDto) { |
@@ -27,17 +27,6 @@ import org.sonar.server.qualityprofile.QualityProfile; | |||
public interface AnalysisMetadataHolder { | |||
/** | |||
* @throws IllegalStateException if organizations enabled flag has not been set | |||
*/ | |||
boolean isOrganizationsEnabled(); | |||
/** | |||
* Returns the organization the analysis belongs to. | |||
* @throws IllegalStateException if organization has not been set | |||
*/ | |||
Organization getOrganization(); | |||
/** | |||
* Returns the UUID generated for this analysis. | |||
* @throws IllegalStateException if uuid has not been set |
@@ -37,8 +37,6 @@ import static org.apache.commons.lang.StringUtils.defaultIfBlank; | |||
public class AnalysisMetadataHolderImpl implements MutableAnalysisMetadataHolder { | |||
private static final String BRANCH_NOT_SET = "Branch has not been set"; | |||
private final InitializedProperty<Boolean> organizationsEnabled = new InitializedProperty<>(); | |||
private final InitializedProperty<Organization> organization = new InitializedProperty<>(); | |||
private final InitializedProperty<String> uuid = new InitializedProperty<>(); | |||
private final InitializedProperty<Long> analysisDate = new InitializedProperty<>(); | |||
private final InitializedProperty<Analysis> baseProjectSnapshot = new InitializedProperty<>(); | |||
@@ -58,33 +56,6 @@ public class AnalysisMetadataHolderImpl implements MutableAnalysisMetadataHolder | |||
this.editionProvider = editionProvider; | |||
} | |||
@Override | |||
public MutableAnalysisMetadataHolder setOrganizationsEnabled(boolean isOrganizationsEnabled) { | |||
checkState(!this.organizationsEnabled.isInitialized(), "Organization enabled flag has already been set"); | |||
this.organizationsEnabled.setProperty(isOrganizationsEnabled); | |||
return this; | |||
} | |||
@Override | |||
public boolean isOrganizationsEnabled() { | |||
checkState(organizationsEnabled.isInitialized(), "Organizations enabled flag has not been set"); | |||
return organizationsEnabled.getProperty(); | |||
} | |||
@Override | |||
public MutableAnalysisMetadataHolder setOrganization(Organization organization) { | |||
checkState(!this.organization.isInitialized(), "Organization has already been set"); | |||
requireNonNull(organization, "Organization can't be null"); | |||
this.organization.setProperty(organization); | |||
return this; | |||
} | |||
@Override | |||
public Organization getOrganization() { | |||
checkState(organization.isInitialized(), "Organization has not been set"); | |||
return organization.getProperty(); | |||
} | |||
@Override | |||
public MutableAnalysisMetadataHolder setUuid(String s) { | |||
checkState(!uuid.isInitialized(), "Analysis uuid has already been set"); |
@@ -26,16 +26,6 @@ import org.sonar.server.qualityprofile.QualityProfile; | |||
public interface MutableAnalysisMetadataHolder extends AnalysisMetadataHolder { | |||
/** | |||
* @throws IllegalStateException if organizations enabled flag has already been set | |||
*/ | |||
MutableAnalysisMetadataHolder setOrganizationsEnabled(boolean isOrganizationsEnabled); | |||
/** | |||
* @throws IllegalStateException if the organization uuid has already been set | |||
*/ | |||
MutableAnalysisMetadataHolder setOrganization(Organization organization); | |||
/** | |||
* @throws IllegalStateException if the analysis uuid has already been set | |||
*/ |
@@ -1,96 +0,0 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2020 SonarSource SA | |||
* mailto:info AT sonarsource DOT com | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 3 of the License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public License | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.ce.task.projectanalysis.analysis; | |||
import javax.annotation.concurrent.Immutable; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import static java.util.Objects.requireNonNull; | |||
@Immutable | |||
public class Organization { | |||
private final String uuid; | |||
private final String key; | |||
private final String name; | |||
private final String defaultQualityGateUuid; | |||
private Organization(String uuid, String key, String name, String defaultQualityGateUuid) { | |||
this.uuid = requireNonNull(uuid, "uuid can't be null"); | |||
this.key = requireNonNull(key, "key can't be null"); | |||
this.name = requireNonNull(name, "name can't be null"); | |||
this.defaultQualityGateUuid = requireNonNull(defaultQualityGateUuid, "defaultQualityGateUuid can't be null"); | |||
} | |||
public String getUuid() { | |||
return uuid; | |||
} | |||
public String getKey() { | |||
return key; | |||
} | |||
public String getName() { | |||
return name; | |||
} | |||
public String getDefaultQualityGateUuid() { | |||
return defaultQualityGateUuid; | |||
} | |||
@Override | |||
public boolean equals(Object o) { | |||
if (this == o) { | |||
return true; | |||
} | |||
if (o == null || getClass() != o.getClass()) { | |||
return false; | |||
} | |||
Organization that = (Organization) o; | |||
return uuid.equals(that.uuid); | |||
} | |||
@Override | |||
public int hashCode() { | |||
return uuid.hashCode(); | |||
} | |||
@Override | |||
public String toString() { | |||
return "Organization{" + | |||
"uuid='" + uuid + '\'' + | |||
", key='" + key + '\'' + | |||
", name='" + name + '\'' + | |||
", defaultQualityGateUuid='" + defaultQualityGateUuid + '\'' + | |||
'}'; | |||
} | |||
public OrganizationDto toDto() { | |||
return new OrganizationDto() | |||
.setName(name) | |||
.setKey(key) | |||
.setUuid(uuid) | |||
.setDefaultQualityGateUuid(defaultQualityGateUuid); | |||
} | |||
public static Organization from(OrganizationDto organizationDto) { | |||
return new Organization(organizationDto.getUuid(), organizationDto.getKey(), organizationDto.getName(), organizationDto.getDefaultQualityGateUuid()); | |||
} | |||
} |
@@ -166,7 +166,6 @@ public class PostProjectAnalysisTasksExecutor implements ComputationStepExecutor | |||
private ProjectAnalysisImpl createProjectAnalysis(CeTask.Status status) { | |||
return new ProjectAnalysisImpl( | |||
createOrganization(), | |||
new CeTaskImpl(this.ceTask.getUuid(), status), | |||
createProject(this.ceTask), | |||
getAnalysis().orElse(null), | |||
@@ -177,15 +176,6 @@ public class PostProjectAnalysisTasksExecutor implements ComputationStepExecutor | |||
reportReader.readMetadata().getScmRevisionId()); | |||
} | |||
@CheckForNull | |||
private Organization createOrganization() { | |||
if (!analysisMetadataHolder.isOrganizationsEnabled()) { | |||
return null; | |||
} | |||
org.sonar.ce.task.projectanalysis.analysis.Organization organization = analysisMetadataHolder.getOrganization(); | |||
return new OrganizationImpl(organization.getName(), organization.getKey()); | |||
} | |||
private Optional<Analysis> getAnalysis() { | |||
Long analysisDate = getAnalysisDate(); | |||
@@ -254,8 +244,6 @@ public class PostProjectAnalysisTasksExecutor implements ComputationStepExecutor | |||
} | |||
private static class ProjectAnalysisImpl implements PostProjectAnalysisTask.ProjectAnalysis { | |||
@Nullable | |||
private final Organization organization; | |||
private final CeTask ceTask; | |||
private final Project project; | |||
private final long date; | |||
@@ -268,10 +256,9 @@ public class PostProjectAnalysisTasksExecutor implements ComputationStepExecutor | |||
private final Analysis analysis; | |||
private final String scmRevisionId; | |||
private ProjectAnalysisImpl(@Nullable Organization organization, CeTask ceTask, Project project, | |||
private ProjectAnalysisImpl(CeTask ceTask, Project project, | |||
@Nullable Analysis analysis, long date, | |||
ScannerContext scannerContext, @Nullable QualityGate qualityGate, @Nullable Branch branch, String scmRevisionId) { | |||
this.organization = organization; | |||
this.ceTask = requireNonNull(ceTask, "ceTask can not be null"); | |||
this.project = requireNonNull(project, "project can not be null"); | |||
this.analysis = analysis; | |||
@@ -284,7 +271,7 @@ public class PostProjectAnalysisTasksExecutor implements ComputationStepExecutor | |||
@Override | |||
public Optional<Organization> getOrganization() { | |||
return Optional.ofNullable(organization); | |||
return empty(); | |||
} | |||
@Override | |||
@@ -373,24 +360,4 @@ public class PostProjectAnalysisTasksExecutor implements ComputationStepExecutor | |||
return revision; | |||
} | |||
} | |||
private static class OrganizationImpl implements Organization { | |||
private final String name; | |||
private final String key; | |||
private OrganizationImpl(String name, String key) { | |||
this.name = requireNonNull(name, "name can't be null"); | |||
this.key = requireNonNull(key, "key can't be null"); | |||
} | |||
@Override | |||
public String getName() { | |||
return name; | |||
} | |||
@Override | |||
public String getKey() { | |||
return key; | |||
} | |||
} | |||
} |
@@ -54,14 +54,5 @@ public interface PostMeasuresComputationCheck { | |||
*/ | |||
int getNcloc(); | |||
/** | |||
* Return the organization | |||
*/ | |||
String getOrganizationUuid(); | |||
/** | |||
* Return the organization | |||
*/ | |||
String getOrganizationKey(); | |||
} | |||
} |
@@ -86,14 +86,5 @@ public class PostMeasuresComputationChecksStep implements ComputationStep { | |||
return nclocMeasure.map(Measure::getIntValue).orElse(0); | |||
} | |||
@Override | |||
public String getOrganizationUuid() { | |||
return analysisMetadataHolder.getOrganization().getUuid(); | |||
} | |||
@Override | |||
public String getOrganizationKey() { | |||
return analysisMetadataHolder.getOrganization().getKey(); | |||
} | |||
} | |||
} |
@@ -22,11 +22,9 @@ package org.sonar.ce.task.projectanalysis.step; | |||
import java.util.Date; | |||
import java.util.Optional; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import org.sonar.api.utils.MessageException; | |||
import org.sonar.ce.task.CeTask; | |||
import org.sonar.ce.task.projectanalysis.analysis.MutableAnalysisMetadataHolder; | |||
import org.sonar.ce.task.projectanalysis.analysis.Organization; | |||
import org.sonar.ce.task.projectanalysis.analysis.ScannerPlugin; | |||
import org.sonar.ce.task.projectanalysis.batch.BatchReportReader; | |||
import org.sonar.ce.task.projectanalysis.component.BranchLoader; | |||
@@ -34,13 +32,10 @@ import org.sonar.ce.task.step.ComputationStep; | |||
import org.sonar.core.platform.PluginRepository; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.db.project.ProjectDto; | |||
import org.sonar.scanner.protocol.output.ScannerReport; | |||
import org.sonar.scanner.protocol.output.ScannerReport.Metadata.Plugin; | |||
import org.sonar.scanner.protocol.output.ScannerReport.Metadata.QProfile; | |||
import org.sonar.server.organization.DefaultOrganizationProvider; | |||
import org.sonar.server.organization.OrganizationFlags; | |||
import org.sonar.server.project.Project; | |||
import org.sonar.server.qualityprofile.QualityProfile; | |||
@@ -55,23 +50,18 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep { | |||
private final CeTask ceTask; | |||
private final BatchReportReader reportReader; | |||
private final MutableAnalysisMetadataHolder analysisMetadata; | |||
private final DefaultOrganizationProvider defaultOrganizationProvider; | |||
private final DbClient dbClient; | |||
private final BranchLoader branchLoader; | |||
private final PluginRepository pluginRepository; | |||
private final OrganizationFlags organizationFlags; | |||
public LoadReportAnalysisMetadataHolderStep(CeTask ceTask, BatchReportReader reportReader, MutableAnalysisMetadataHolder analysisMetadata, | |||
DefaultOrganizationProvider defaultOrganizationProvider, DbClient dbClient, BranchLoader branchLoader, PluginRepository pluginRepository, | |||
OrganizationFlags organizationFlags) { | |||
DbClient dbClient, BranchLoader branchLoader, PluginRepository pluginRepository) { | |||
this.ceTask = ceTask; | |||
this.reportReader = reportReader; | |||
this.analysisMetadata = analysisMetadata; | |||
this.defaultOrganizationProvider = defaultOrganizationProvider; | |||
this.dbClient = dbClient; | |||
this.branchLoader = branchLoader; | |||
this.pluginRepository = pluginRepository; | |||
this.organizationFlags = organizationFlags; | |||
} | |||
@Override | |||
@@ -79,8 +69,7 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep { | |||
ScannerReport.Metadata reportMetadata = reportReader.readMetadata(); | |||
loadMetadata(reportMetadata); | |||
Organization organization = loadOrganization(reportMetadata); | |||
Runnable projectValidation = loadProject(reportMetadata, organization); | |||
Runnable projectValidation = loadProject(reportMetadata); | |||
loadQualityProfiles(reportMetadata); | |||
branchLoader.load(reportMetadata); | |||
projectValidation.run(); | |||
@@ -97,7 +86,7 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep { | |||
/** | |||
* @return a {@link Runnable} to execute some checks on the project at the end of the step | |||
*/ | |||
private Runnable loadProject(ScannerReport.Metadata reportMetadata, Organization organization) { | |||
private Runnable loadProject(ScannerReport.Metadata reportMetadata) { | |||
CeTask.Component mainComponent = mandatoryComponent(ceTask.getMainComponent()); | |||
String mainComponentKey = mainComponent.getKey() | |||
.orElseThrow(() -> MessageException.of(format( | |||
@@ -119,9 +108,6 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep { | |||
reportMetadata.getProjectKey(), | |||
mainComponentKey)); | |||
} | |||
if (!dto.getOrganizationUuid().equals(organization.getUuid())) { | |||
throw MessageException.of(format("Project is not in the expected organization: %s", organization.getKey())); | |||
} | |||
}; | |||
} | |||
@@ -130,16 +116,6 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep { | |||
.orElseThrow(() -> new IllegalStateException("component missing on ce task")); | |||
} | |||
private Organization loadOrganization(ScannerReport.Metadata reportMetadata) { | |||
try (DbSession dbSession = dbClient.openSession(false)) { | |||
Organization organization = toOrganization(dbSession, ceTask.getOrganizationUuid()); | |||
checkOrganizationKeyConsistency(reportMetadata, organization); | |||
analysisMetadata.setOrganization(organization); | |||
analysisMetadata.setOrganizationsEnabled(organizationFlags.isEnabled(dbSession)); | |||
return organization; | |||
} | |||
} | |||
private void loadQualityProfiles(ScannerReport.Metadata reportMetadata) { | |||
analysisMetadata.setQProfilesByLanguage(reportMetadata.getQprofilesPerLanguageMap().values().stream() | |||
.collect(toMap( | |||
@@ -161,41 +137,6 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep { | |||
return pluginRepository.getPluginInfo(p.getKey()).getBasePlugin(); | |||
} | |||
private void checkOrganizationKeyConsistency(ScannerReport.Metadata reportMetadata, Organization organization) { | |||
String organizationKey = reportMetadata.getOrganizationKey(); | |||
String resolveReportOrganizationKey = resolveReportOrganizationKey(organizationKey); | |||
if (!resolveReportOrganizationKey.equals(organization.getKey())) { | |||
if (reportBelongsToDefaultOrganization(organizationKey)) { | |||
throw MessageException.of(format( | |||
"Report does not specify an OrganizationKey but it has been submitted to another organization (%s) than the default one (%s)", | |||
organization.getKey(), | |||
defaultOrganizationProvider.get().getKey())); | |||
} else { | |||
throw MessageException.of(format( | |||
"OrganizationKey in report (%s) is not consistent with organizationKey under which the report as been submitted (%s)", | |||
resolveReportOrganizationKey, | |||
organization.getKey())); | |||
} | |||
} | |||
} | |||
private String resolveReportOrganizationKey(@Nullable String organizationKey) { | |||
if (reportBelongsToDefaultOrganization(organizationKey)) { | |||
return defaultOrganizationProvider.get().getKey(); | |||
} | |||
return organizationKey; | |||
} | |||
private static boolean reportBelongsToDefaultOrganization(@Nullable String organizationKey) { | |||
return organizationKey == null || organizationKey.isEmpty(); | |||
} | |||
private Organization toOrganization(DbSession dbSession, String organizationUuid) { | |||
Optional<OrganizationDto> organizationDto = dbClient.organizationDao().selectByUuid(dbSession, organizationUuid); | |||
checkState(organizationDto.isPresent(), "Organization with uuid '%s' can't be found", organizationUuid); | |||
return Organization.from(organizationDto.get()); | |||
} | |||
private ProjectDto toProject(String projectKey) { | |||
try (DbSession dbSession = dbClient.openSession(false)) { | |||
Optional<ProjectDto> opt = dbClient.projectDao().selectProjectByKey(dbSession, projectKey); |
@@ -49,6 +49,7 @@ import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentUpdateDto; | |||
import org.sonar.server.organization.DefaultOrganizationProvider; | |||
import static java.util.Optional.ofNullable; | |||
import static org.sonar.ce.task.projectanalysis.component.ComponentVisitor.Order.PRE_ORDER; | |||
@@ -67,10 +68,11 @@ public class PersistComponentsStep implements ComputationStep { | |||
private final AnalysisMetadataHolder analysisMetadataHolder; | |||
private final BranchPersister branchPersister; | |||
private final ProjectPersister projectPersister; | |||
private final DefaultOrganizationProvider defaultOrganizationProvider; | |||
public PersistComponentsStep(DbClient dbClient, TreeRootHolder treeRootHolder, System2 system2, | |||
MutableDisabledComponentsHolder disabledComponentsHolder, AnalysisMetadataHolder analysisMetadataHolder, | |||
BranchPersister branchPersister, ProjectPersister projectPersister) { | |||
BranchPersister branchPersister, ProjectPersister projectPersister, DefaultOrganizationProvider defaultOrganizationProvider) { | |||
this.dbClient = dbClient; | |||
this.treeRootHolder = treeRootHolder; | |||
this.system2 = system2; | |||
@@ -78,6 +80,7 @@ public class PersistComponentsStep implements ComputationStep { | |||
this.analysisMetadataHolder = analysisMetadataHolder; | |||
this.branchPersister = branchPersister; | |||
this.projectPersister = projectPersister; | |||
this.defaultOrganizationProvider = defaultOrganizationProvider; | |||
} | |||
@Override | |||
@@ -361,7 +364,7 @@ public class PersistComponentsStep implements ComputationStep { | |||
String componentUuid = component.getUuid(); | |||
ComponentDto componentDto = new ComponentDto(); | |||
componentDto.setOrganizationUuid(analysisMetadataHolder.getOrganization().getUuid()); | |||
componentDto.setOrganizationUuid(defaultOrganizationProvider.get().getUuid()); | |||
componentDto.setUuid(componentUuid); | |||
componentDto.setDbKey(componentKey); | |||
componentDto.setMainBranchProjectUuid(mainBranchProjectUuid); |
@@ -45,7 +45,6 @@ public class ReportComputationSteps extends AbstractComputationSteps { | |||
// Builds Component tree | |||
LoadReportAnalysisMetadataHolderStep.class, | |||
ExecuteStatelessInitExtensionsStep.class, | |||
VerifyBillingStep.class, | |||
BuildComponentTreeStep.class, | |||
ValidateProjectStep.class, | |||
@@ -1,57 +0,0 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2020 SonarSource SA | |||
* mailto:info AT sonarsource DOT com | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 3 of the License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public License | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.ce.task.projectanalysis.step; | |||
import org.sonar.api.utils.MessageException; | |||
import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder; | |||
import org.sonar.ce.task.projectanalysis.analysis.Organization; | |||
import org.sonar.ce.task.step.ComputationStep; | |||
import org.sonar.server.organization.BillingValidations; | |||
import org.sonar.server.organization.BillingValidationsProxy; | |||
/** | |||
* Verify that organization can execute analysis | |||
*/ | |||
public class VerifyBillingStep implements ComputationStep { | |||
private final AnalysisMetadataHolder analysisMetadata; | |||
private final BillingValidations billingValidations; | |||
public VerifyBillingStep(AnalysisMetadataHolder analysisMetadata, BillingValidationsProxy billingValidations) { | |||
this.analysisMetadata = analysisMetadata; | |||
this.billingValidations = billingValidations; | |||
} | |||
@Override | |||
public void execute(ComputationStep.Context context) { | |||
try { | |||
Organization organization = analysisMetadata.getOrganization(); | |||
BillingValidations.Organization billingOrganization = new BillingValidations.Organization(organization.getKey(), organization.getUuid(), organization.getName()); | |||
billingValidations.checkBeforeProjectAnalysis(billingOrganization); | |||
} catch (BillingValidations.BillingValidationsException e) { | |||
throw MessageException.of(e.getMessage()); | |||
} | |||
} | |||
@Override | |||
public String getDescription() { | |||
return "Verify billing"; | |||
} | |||
} |
@@ -33,7 +33,6 @@ import org.junit.runner.RunWith; | |||
import org.sonar.ce.task.projectanalysis.component.DefaultBranchImpl; | |||
import org.sonar.core.platform.PlatformEditionProvider; | |||
import org.sonar.db.component.BranchType; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.server.project.Project; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -41,57 +40,21 @@ import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
import static org.sonar.core.platform.EditionProvider.Edition; | |||
import static org.sonar.db.component.ComponentTesting.newPrivateProjectDto; | |||
import static org.sonar.db.organization.OrganizationTesting.newOrganizationDto; | |||
@RunWith(DataProviderRunner.class) | |||
public class AnalysisMetadataHolderImplTest { | |||
private static Analysis baseProjectAnalysis = new Analysis.Builder() | |||
private static final Analysis baseProjectAnalysis = new Analysis.Builder() | |||
.setUuid("uuid_1") | |||
.setCreatedAt(123456789L) | |||
.build(); | |||
private static long SOME_DATE = 10000000L; | |||
private static final long SOME_DATE = 10000000L; | |||
@Rule | |||
public ExpectedException expectedException = ExpectedException.none(); | |||
private PlatformEditionProvider editionProvider = mock(PlatformEditionProvider.class); | |||
private AnalysisMetadataHolderImpl underTest = new AnalysisMetadataHolderImpl(editionProvider); | |||
@Test | |||
public void getOrganization_throws_ISE_if_organization_is_not_set() { | |||
expectedException.expect(IllegalStateException.class); | |||
expectedException.expectMessage("Organization has not been set"); | |||
underTest.getOrganization(); | |||
} | |||
@Test | |||
public void setOrganization_throws_NPE_is_parameter_is_null() { | |||
expectedException.expect(NullPointerException.class); | |||
expectedException.expectMessage("Organization can't be null"); | |||
underTest.setOrganization(null); | |||
} | |||
@Test | |||
public void setOrganization_throws_ISE_if_called_twice() { | |||
Organization organization = Organization.from(new OrganizationDto().setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("anyuuidr")); | |||
underTest.setOrganization(organization); | |||
expectedException.expect(IllegalStateException.class); | |||
expectedException.expectMessage("Organization has already been set"); | |||
underTest.setOrganization(organization); | |||
} | |||
@Test | |||
public void getUuid_throws_ISE_if_organization_uuid_is_not_set() { | |||
expectedException.expect(IllegalStateException.class); | |||
expectedException.expectMessage("Analysis uuid has not been set"); | |||
underTest.getUuid(); | |||
} | |||
private final PlatformEditionProvider editionProvider = mock(PlatformEditionProvider.class); | |||
private final AnalysisMetadataHolderImpl underTest = new AnalysisMetadataHolderImpl(editionProvider); | |||
@Test | |||
public void setUuid_throws_NPE_is_parameter_is_null() { | |||
@@ -371,7 +334,7 @@ public class AnalysisMetadataHolderImplTest { | |||
public void set_and_get_project() { | |||
AnalysisMetadataHolderImpl underTest = new AnalysisMetadataHolderImpl(editionProvider); | |||
Project project = Project.from(newPrivateProjectDto(newOrganizationDto())); | |||
Project project = Project.from(newPrivateProjectDto()); | |||
underTest.setProject(project); | |||
assertThat(underTest.getProject()).isSameAs(project); | |||
@@ -388,12 +351,12 @@ public class AnalysisMetadataHolderImplTest { | |||
@Test | |||
public void setProject_throws_ISE_when_called_twice() { | |||
AnalysisMetadataHolderImpl underTest = new AnalysisMetadataHolderImpl(editionProvider); | |||
underTest.setProject(Project.from(newPrivateProjectDto(newOrganizationDto()))); | |||
underTest.setProject(Project.from(newPrivateProjectDto())); | |||
expectedException.expect(IllegalStateException.class); | |||
expectedException.expectMessage("Project has already been set"); | |||
underTest.setProject(Project.from(newPrivateProjectDto(newOrganizationDto()))); | |||
underTest.setProject(Project.from(newPrivateProjectDto())); | |||
} | |||
@Test |
@@ -1,116 +0,0 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2020 SonarSource SA | |||
* mailto:info AT sonarsource DOT com | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 3 of the License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public License | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.ce.task.projectanalysis.analysis; | |||
import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.junit.rules.ExpectedException; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
public class OrganizationTest { | |||
@Rule | |||
public ExpectedException expectedException = ExpectedException.none(); | |||
private OrganizationDto underTest = new OrganizationDto(); | |||
@Test | |||
public void build_throws_NPE_if_dto_is_null() { | |||
expectedException.expect(NullPointerException.class); | |||
Organization.from(null); | |||
} | |||
@Test | |||
public void build_throws_NPE_if_uuid_is_null() { | |||
expectedException.expect(NullPointerException.class); | |||
expectedException.expectMessage("uuid can't be null"); | |||
Organization.from(underTest); | |||
} | |||
@Test | |||
public void build_throws_NPE_if_key_is_null() { | |||
underTest.setUuid("uuid"); | |||
expectedException.expect(NullPointerException.class); | |||
expectedException.expectMessage("key can't be null"); | |||
Organization.from(underTest); | |||
} | |||
@Test | |||
public void build_throws_NPE_if_defaultQualityGateUuid_is_null() { | |||
underTest.setUuid("uuid").setKey("key").setName("name"); | |||
expectedException.expect(NullPointerException.class); | |||
expectedException.expectMessage("defaultQualityGateUuid can't be null"); | |||
Organization.from(underTest); | |||
} | |||
@Test | |||
public void build_throws_NPE_if_name_is_null() { | |||
underTest.setUuid("uuid").setKey("key"); | |||
expectedException.expect(NullPointerException.class); | |||
expectedException.expectMessage("name can't be null"); | |||
Organization.from(underTest); | |||
} | |||
@Test | |||
public void verify_getters() { | |||
Organization organization = Organization.from(underTest.setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("uuid1")); | |||
assertThat(organization.getUuid()).isEqualTo("uuid"); | |||
assertThat(organization.getKey()).isEqualTo("key"); | |||
assertThat(organization.getName()).isEqualTo("name"); | |||
assertThat(organization.getDefaultQualityGateUuid()).isEqualTo("uuid1"); | |||
} | |||
@Test | |||
public void verify_toString() { | |||
Organization organization = Organization.from(underTest.setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("uuid1")); | |||
assertThat(organization.toString()).isEqualTo("Organization{uuid='uuid', key='key', name='name', defaultQualityGateUuid='uuid1'}"); | |||
} | |||
@Test | |||
public void equals_is_based_on_uuid_only() { | |||
Organization organization = Organization.from(underTest.setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("uuid1")); | |||
assertThat(organization).isEqualTo(Organization.from(underTest.setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("uuid1"))); | |||
assertThat(organization).isEqualTo(Organization.from(underTest.setUuid("uuid").setKey("other key").setName("name").setDefaultQualityGateUuid("uuid1"))); | |||
assertThat(organization).isEqualTo(Organization.from(underTest.setUuid("uuid").setKey("key").setName("other name").setDefaultQualityGateUuid("uuid1"))); | |||
assertThat(organization).isEqualTo(Organization.from(underTest.setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("other uuid"))); | |||
assertThat(organization).isNotEqualTo(Organization.from(underTest.setUuid("other uuid").setKey("key").setName("name").setDefaultQualityGateUuid("uuid1"))); | |||
assertThat(organization).isNotEqualTo(null); | |||
assertThat(organization).isNotEqualTo("toto"); | |||
} | |||
@Test | |||
public void hashcode_is_based_on_uuid_only() { | |||
Organization organization = Organization.from(underTest.setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("uuid1")); | |||
assertThat(organization.hashCode()).isEqualTo("uuid".hashCode()); | |||
} | |||
} |
@@ -44,7 +44,6 @@ import org.sonar.api.utils.log.LoggerLevel; | |||
import org.sonar.ce.task.CeTask; | |||
import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolderRule; | |||
import org.sonar.ce.task.projectanalysis.analysis.Branch; | |||
import org.sonar.ce.task.projectanalysis.analysis.Organization; | |||
import org.sonar.ce.task.projectanalysis.batch.BatchReportReaderRule; | |||
import org.sonar.ce.task.projectanalysis.metric.Metric; | |||
import org.sonar.ce.task.projectanalysis.qualitygate.Condition; | |||
@@ -54,7 +53,6 @@ import org.sonar.ce.task.projectanalysis.qualitygate.MutableQualityGateStatusHol | |||
import org.sonar.ce.task.projectanalysis.qualitygate.QualityGate; | |||
import org.sonar.ce.task.projectanalysis.qualitygate.QualityGateStatus; | |||
import org.sonar.db.component.BranchType; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.scanner.protocol.output.ScannerReport; | |||
import static com.google.common.collect.ImmutableList.of; | |||
@@ -89,21 +87,17 @@ public class PostProjectAnalysisTasksExecutorTest { | |||
@Rule | |||
public LogTester logTester = new LogTester(); | |||
private String organizationUuid = "org1"; | |||
private String organizationKey = organizationUuid + "_key"; | |||
private String organizationName = organizationUuid + "_name"; | |||
private System2 system2 = mock(System2.class); | |||
private ArgumentCaptor<PostProjectAnalysisTask.Context> taskContextCaptor = ArgumentCaptor.forClass(PostProjectAnalysisTask.Context.class); | |||
private CeTask.Component component = new CeTask.Component("component uuid", "component key", "component name"); | |||
private CeTask ceTask = new CeTask.Builder() | |||
.setOrganizationUuid(organizationUuid) | |||
private final System2 system2 = mock(System2.class); | |||
private final ArgumentCaptor<PostProjectAnalysisTask.Context> taskContextCaptor = ArgumentCaptor.forClass(PostProjectAnalysisTask.Context.class); | |||
private final CeTask.Component component = new CeTask.Component("component uuid", "component key", "component name"); | |||
private final CeTask ceTask = new CeTask.Builder() | |||
.setType("type") | |||
.setUuid("uuid") | |||
.setComponent(component) | |||
.setMainComponent(component) | |||
.build(); | |||
private PostProjectAnalysisTask postProjectAnalysisTask = newPostProjectAnalysisTask("PT1"); | |||
private PostProjectAnalysisTasksExecutor underTest = new PostProjectAnalysisTasksExecutor( | |||
private final PostProjectAnalysisTask postProjectAnalysisTask = newPostProjectAnalysisTask("PT1"); | |||
private final PostProjectAnalysisTasksExecutor underTest = new PostProjectAnalysisTasksExecutor( | |||
ceTask, analysisMetadataHolder, qualityGateHolder, qualityGateStatusHolder, | |||
reportReader, system2, | |||
new PostProjectAnalysisTask[] {postProjectAnalysisTask}); | |||
@@ -117,10 +111,7 @@ public class PostProjectAnalysisTasksExecutorTest { | |||
Branch branch = mock(Branch.class); | |||
when(branch.getType()).thenReturn(BranchType.BRANCH); | |||
analysisMetadataHolder | |||
.setBranch(branch) | |||
.setOrganizationsEnabled(new Random().nextBoolean()) | |||
.setOrganization(Organization.from( | |||
new OrganizationDto().setKey(organizationKey).setName(organizationName).setUuid(organizationUuid).setDefaultQualityGateUuid("foo"))); | |||
.setBranch(branch); | |||
reportReader.setMetadata(ScannerReport.Metadata.newBuilder().build()); | |||
} | |||
@@ -142,7 +133,7 @@ public class PostProjectAnalysisTasksExecutorTest { | |||
new PostProjectAnalysisTasksExecutor( | |||
ceTask, analysisMetadataHolder, qualityGateHolder, qualityGateStatusHolder, reportReader, | |||
system2, new PostProjectAnalysisTask[] {postProjectAnalysisTask1, postProjectAnalysisTask2}) | |||
.finished(allStepsExecuted); | |||
.finished(allStepsExecuted); | |||
inOrder.verify(postProjectAnalysisTask1).finished(taskContextCaptor.capture()); | |||
inOrder.verify(postProjectAnalysisTask1).getDescription(); | |||
@@ -165,10 +156,6 @@ public class PostProjectAnalysisTasksExecutorTest { | |||
@Test | |||
@UseDataProvider("booleanValues") | |||
public void organization_is_null_when_organization_are_disabled(boolean allStepsExecuted) { | |||
analysisMetadataHolder | |||
.setOrganizationsEnabled(false) | |||
.setOrganization(Organization.from( | |||
new OrganizationDto().setKey(organizationKey).setName(organizationName).setUuid(organizationUuid).setDefaultQualityGateUuid("foo"))); | |||
underTest.finished(allStepsExecuted); | |||
verify(postProjectAnalysisTask).finished(taskContextCaptor.capture()); | |||
@@ -176,22 +163,6 @@ public class PostProjectAnalysisTasksExecutorTest { | |||
assertThat(taskContextCaptor.getValue().getProjectAnalysis().getOrganization()).isEmpty(); | |||
} | |||
@Test | |||
@UseDataProvider("booleanValues") | |||
public void organization_is_not_null_when_organization_are_enabled(boolean allStepsExecuted) { | |||
analysisMetadataHolder | |||
.setOrganizationsEnabled(true) | |||
.setOrganization(Organization.from( | |||
new OrganizationDto().setKey(organizationKey).setName(organizationName).setUuid(organizationUuid).setDefaultQualityGateUuid("foo"))); | |||
underTest.finished(allStepsExecuted); | |||
verify(postProjectAnalysisTask).finished(taskContextCaptor.capture()); | |||
org.sonar.api.ce.posttask.Organization organization = taskContextCaptor.getValue().getProjectAnalysis().getOrganization().get(); | |||
assertThat(organization.getKey()).isEqualTo(organizationKey); | |||
assertThat(organization.getName()).isEqualTo(organizationName); | |||
} | |||
@Test | |||
@UseDataProvider("booleanValues") | |||
public void CeTask_status_depends_on_finished_method_argument_is_true_or_false(boolean allStepsExecuted) { | |||
@@ -346,7 +317,7 @@ public class PostProjectAnalysisTasksExecutorTest { | |||
org.sonar.api.ce.posttask.QualityGate qualityGate = taskContextCaptor.getValue().getProjectAnalysis().getQualityGate(); | |||
assertThat(qualityGate.getStatus()).isEqualTo(org.sonar.api.ce.posttask.QualityGate.Status.OK); | |||
assertThat(qualityGate.getId()).isEqualTo(String.valueOf(QUALITY_GATE_UUID)); | |||
assertThat(qualityGate.getId()).isEqualTo(QUALITY_GATE_UUID); | |||
assertThat(qualityGate.getName()).isEqualTo(QUALITY_GATE_NAME); | |||
assertThat(qualityGate.getConditions()).hasSize(2); | |||
} | |||
@@ -430,7 +401,7 @@ public class PostProjectAnalysisTasksExecutorTest { | |||
new PostProjectAnalysisTasksExecutor( | |||
ceTask, analysisMetadataHolder, qualityGateHolder, qualityGateStatusHolder, reportReader, | |||
system2, new PostProjectAnalysisTask[] {logStatisticsTask}) | |||
.finished(allStepsExecuted); | |||
.finished(allStepsExecuted); | |||
verify(logStatisticsTask).finished(taskContextCaptor.capture()); | |||
@@ -458,7 +429,7 @@ public class PostProjectAnalysisTasksExecutorTest { | |||
new PostProjectAnalysisTasksExecutor( | |||
ceTask, analysisMetadataHolder, qualityGateHolder, qualityGateStatusHolder, reportReader, | |||
system2, new PostProjectAnalysisTask[] {postProjectAnalysisTask1, postProjectAnalysisTask2, postProjectAnalysisTask3}) | |||
.finished(allStepsExecuted); | |||
.finished(allStepsExecuted); | |||
inOrder.verify(postProjectAnalysisTask1).finished(taskContextCaptor.capture()); | |||
inOrder.verify(postProjectAnalysisTask1).getDescription(); |
@@ -107,11 +107,10 @@ public class BranchPersisterImplTest { | |||
String branchName = "branch"; | |||
// add project and branch in table PROJECTS | |||
ComponentDto mainComponent = ComponentTesting.newPrivateProjectDto(dbTester.organizations().insert(), MAIN.getUuid()).setDbKey(MAIN.getKey()); | |||
ComponentDto mainComponent = ComponentTesting.newPrivateProjectDto(MAIN.getUuid()).setDbKey(MAIN.getKey()); | |||
ComponentDto component = ComponentTesting.newBranchComponent(mainComponent, | |||
new BranchDto().setUuid(BRANCH1.getUuid()).setKey(BRANCH1.getKey()).setBranchType(BRANCH)); | |||
dbTester.getDbClient().componentDao().insert(dbTester.getSession(), mainComponent, component); | |||
dbTester.commit(); | |||
dbTester.components().insertComponents(mainComponent, component); | |||
// set project in metadata | |||
treeRootHolder.setRoot(BRANCH1); | |||
analysisMetadataHolder.setBranch(createBranch(BRANCH, false, branchName, mergeBranchUuid)); | |||
@@ -259,11 +258,10 @@ public class BranchPersisterImplTest { | |||
String pullRequestId = "pr-123"; | |||
// add project and branch in table PROJECTS | |||
ComponentDto mainComponent = ComponentTesting.newPrivateProjectDto(dbTester.organizations().insert(), MAIN.getUuid()).setDbKey(MAIN.getKey()); | |||
ComponentDto mainComponent = ComponentTesting.newPrivateProjectDto(MAIN.getUuid()).setDbKey(MAIN.getKey()); | |||
ComponentDto component = ComponentTesting.newBranchComponent(mainComponent, | |||
new BranchDto().setUuid(BRANCH1.getUuid()).setKey(BRANCH1.getKey()).setBranchType(PULL_REQUEST)); | |||
dbTester.getDbClient().componentDao().insert(dbTester.getSession(), mainComponent, component); | |||
dbTester.commit(); | |||
dbTester.components().insertComponents(mainComponent, component); | |||
// set project in metadata | |||
treeRootHolder.setRoot(BRANCH1); | |||
analysisMetadataHolder.setBranch(createBranch(PULL_REQUEST, false, pullRequestId, "mergeBanchUuid")); |
@@ -45,11 +45,10 @@ import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
import static org.sonar.ce.task.projectanalysis.component.ComponentVisitor.Order.PRE_ORDER; | |||
import static org.sonar.db.component.ComponentTesting.newPrivateProjectDto; | |||
import static org.sonar.db.organization.OrganizationTesting.newOrganizationDto; | |||
import static org.sonar.scanner.protocol.output.ScannerReport.Component.newBuilder; | |||
import static org.sonar.scanner.protocol.output.ScannerReport.Component.ComponentType.FILE; | |||
import static org.sonar.scanner.protocol.output.ScannerReport.Component.ComponentType.PROJECT; | |||
import static org.sonar.scanner.protocol.output.ScannerReport.Component.ComponentType.UNRECOGNIZED; | |||
import static org.sonar.scanner.protocol.output.ScannerReport.Component.newBuilder; | |||
public class ComponentTreeBuilderTest { | |||
@@ -70,7 +69,7 @@ public class ComponentTreeBuilderTest { | |||
@Rule | |||
public ScannerComponentProvider scannerComponentProvider = new ScannerComponentProvider(); | |||
private Project projectInDb = Project.from(newPrivateProjectDto(newOrganizationDto(), UUID_SUPPLIER.apply("K1")).setDbKey("K1").setDescription(null)); | |||
private Project projectInDb = Project.from(newPrivateProjectDto(UUID_SUPPLIER.apply("K1")).setDbKey("K1").setDescription(null)); | |||
@Test | |||
public void build_throws_IAE_for_all_types_except_PROJECT_and_FILE() { |
@@ -38,11 +38,10 @@ import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
import static org.sonar.db.component.ComponentTesting.newPrivateProjectDto; | |||
import static org.sonar.db.organization.OrganizationTesting.newOrganizationDto; | |||
public class ConfigurationRepositoryTest { | |||
private static Project PROJECT = Project.from(newPrivateProjectDto(newOrganizationDto())); | |||
private static Project PROJECT = Project.from(newPrivateProjectDto()); | |||
@Rule | |||
public final DbTester db = DbTester.create(System2.INSTANCE); |
@@ -78,7 +78,7 @@ public class ProjectPersisterTest { | |||
@Test | |||
public void update_description() { | |||
ProjectDto p1 = dbTester.components().insertPublicProjectDto(dbTester.getDefaultOrganization(), | |||
ProjectDto p1 = dbTester.components().insertPublicProjectDto( | |||
c -> c.setUuid("PROJECT_UUID").setDbKey(ROOT.getKey()).setName(ROOT.getName()).setDescription("OLD_DESC")); | |||
assertProject("OLD_DESC", ROOT.getName(), p1.getUpdatedAt()); | |||
@@ -88,7 +88,7 @@ public class ProjectPersisterTest { | |||
@Test | |||
public void update_name() { | |||
ProjectDto p1 = dbTester.components().insertPublicProjectDto(dbTester.getDefaultOrganization(), | |||
ProjectDto p1 = dbTester.components().insertPublicProjectDto( | |||
c -> c.setUuid("PROJECT_UUID").setDbKey(ROOT.getKey()).setName("OLD_NAME").setDescription(ROOT.getDescription())); | |||
assertProject(ROOT.getDescription(), "OLD_NAME", p1.getUpdatedAt()); | |||
@@ -98,7 +98,7 @@ public class ProjectPersisterTest { | |||
@Test | |||
public void dont_update() { | |||
ProjectDto p1 = dbTester.components().insertPublicProjectDto(dbTester.getDefaultOrganization(), | |||
ProjectDto p1 = dbTester.components().insertPublicProjectDto( | |||
c -> c.setUuid("PROJECT_UUID").setDbKey(ROOT.getKey()).setName(ROOT.getName()).setDescription(ROOT.getDescription())); | |||
assertProject(ROOT.getDescription(), ROOT.getName(), p1.getUpdatedAt()); |
@@ -51,7 +51,6 @@ import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.db.source.FileSourceDto; | |||
import static java.util.Arrays.stream; | |||
@@ -236,8 +235,7 @@ public class FileMoveDetectionStepTest { | |||
@Before | |||
public void setUp() throws Exception { | |||
OrganizationDto organization = dbTester.organizations().insert(); | |||
project = dbTester.components().insertPrivateProject(organization); | |||
project = dbTester.components().insertPrivateProject(); | |||
treeRootHolder.setRoot(builder(Component.Type.PROJECT, ROOT_REF).setUuid(project.uuid()).build()); | |||
} | |||
@@ -46,7 +46,6 @@ import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.db.issue.IssueDto; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.db.rule.RuleDefinitionDto; | |||
import static java.util.Collections.emptyList; | |||
@@ -75,8 +74,7 @@ public class ComponentIssuesLoaderTest { | |||
@Test | |||
public void loadClosedIssues_returns_single_DefaultIssue_by_issue_based_on_first_row() { | |||
OrganizationDto organization = db.organizations().insert(); | |||
ComponentDto project = db.components().insertPublicProject(organization); | |||
ComponentDto project = db.components().insertPublicProject(); | |||
ComponentDto file = db.components().insertComponent(ComponentTesting.newFileDto(project)); | |||
RuleDefinitionDto rule = db.rules().insert(t -> t.setType(CODE_SMELL)); | |||
Date issueDate = addDays(NOW, -10); | |||
@@ -95,8 +93,7 @@ public class ComponentIssuesLoaderTest { | |||
@Test | |||
public void loadClosedIssues_returns_single_DefaultIssue_with_null_line_if_first_row_has_no_line_diff() { | |||
OrganizationDto organization = db.organizations().insert(); | |||
ComponentDto project = db.components().insertPublicProject(organization); | |||
ComponentDto project = db.components().insertPublicProject(); | |||
ComponentDto file = db.components().insertComponent(ComponentTesting.newFileDto(project)); | |||
RuleDefinitionDto rule = db.rules().insert(t -> t.setType(CODE_SMELL)); | |||
Date issueDate = addDays(NOW, -10); | |||
@@ -115,8 +112,7 @@ public class ComponentIssuesLoaderTest { | |||
@Test | |||
public void loadClosedIssues_returns_only_closed_issues_with_close_date() { | |||
OrganizationDto organization = db.organizations().insert(); | |||
ComponentDto project = db.components().insertPublicProject(organization); | |||
ComponentDto project = db.components().insertPublicProject(); | |||
ComponentDto file = db.components().insertComponent(ComponentTesting.newFileDto(project)); | |||
RuleDefinitionDto rule = db.rules().insert(t -> t.setType(CODE_SMELL)); | |||
Date issueDate = addDays(NOW, -10); | |||
@@ -184,8 +180,7 @@ public class ComponentIssuesLoaderTest { | |||
} | |||
private void loadClosedIssues_returns_only_closed_issues_with_close_date_is_from_30_days_ago(ComponentIssuesLoader underTest) { | |||
OrganizationDto organization = db.organizations().insert(); | |||
ComponentDto project = db.components().insertPublicProject(organization); | |||
ComponentDto project = db.components().insertPublicProject(); | |||
ComponentDto file = db.components().insertComponent(ComponentTesting.newFileDto(project)); | |||
RuleDefinitionDto rule = db.rules().insert(t -> t.setType(CODE_SMELL)); | |||
Date[] issueDates = new Date[] { |
@@ -311,13 +311,13 @@ public class IntegrateIssuesVisitorTest { | |||
assertThat(issues.get(0).isNew()).isFalse(); | |||
assertThat(issues.get(0).isCopied()).isTrue(); | |||
assertThat(issues.get(0).changes()).hasSize(1); | |||
assertThat(issues.get(0).changes().get(0).diffs()).contains(entry(IssueFieldsSetter.FROM_BRANCH, new FieldDiffs.Diff("master",null))); | |||
assertThat(issues.get(0).changes().get(0).diffs()).contains(entry(IssueFieldsSetter.FROM_BRANCH, new FieldDiffs.Diff("master", null))); | |||
} | |||
private void addBaseIssue(RuleKey ruleKey) { | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(dbTester.organizations().insert(), PROJECT_UUID).setDbKey(PROJECT_KEY); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(PROJECT_UUID).setDbKey(PROJECT_KEY); | |||
ComponentDto file = ComponentTesting.newFileDto(project, null, FILE_UUID).setDbKey(FILE_KEY); | |||
dbTester.getDbClient().componentDao().insert(dbTester.getSession(), project, file); | |||
dbTester.components().insertComponents(project, file); | |||
RuleDto ruleDto = RuleTesting.newDto(ruleKey); | |||
dbTester.rules().insertRule(ruleDto); | |||
@@ -332,9 +332,9 @@ public class IntegrateIssuesVisitorTest { | |||
} | |||
private void addBaseIssueOnBranch(RuleKey ruleKey) { | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(dbTester.organizations().insert(), PROJECT_UUID_ON_BRANCH).setDbKey(PROJECT_KEY); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(PROJECT_UUID_ON_BRANCH).setDbKey(PROJECT_KEY); | |||
ComponentDto file = ComponentTesting.newFileDto(project, null, FILE_UUID_ON_BRANCH).setDbKey(FILE_KEY); | |||
dbTester.getDbClient().componentDao().insert(dbTester.getSession(), project, file); | |||
dbTester.components().insertComponents(project, file); | |||
RuleDto ruleDto = RuleTesting.newDto(ruleKey); | |||
dbTester.rules().insertRule(ruleDto); |
@@ -59,8 +59,6 @@ public class RuleRepositoryImplTest { | |||
private static final RuleKey DEPRECATED_KEY_OF_NON_EXITING_RULE = RuleKey.of("some_rep", "some_key"); | |||
private static final RuleKey AC_RULE_KEY = RuleKey.of("a", "c"); | |||
private static final String AC_RULE_UUID = "uuid-684"; | |||
private static final String ORGANIZATION_UUID = "org-1"; | |||
private static final String QUALITY_GATE_UUID = "QUALITY_GATE_UUID"; | |||
@org.junit.Rule | |||
public ExpectedException expectedException = ExpectedException.none(); |
@@ -37,8 +37,6 @@ import static org.junit.Assert.fail; | |||
public class ScmAccountToUserLoaderTest { | |||
private static final String ORGANIZATION_UUID = "my-organization"; | |||
@Rule | |||
public DbTester db = DbTester.create(); | |||
@Rule |
@@ -56,7 +56,7 @@ public class TrackerReferenceBranchInputFactoryTest { | |||
DefaultIssue issue1 = new DefaultIssue(); | |||
when(referenceBranchComponentUuids.getComponentUuid(COMPONENT_KEY)).thenReturn(COMPONENT_UUID); | |||
when(componentIssuesLoader.loadOpenIssuesWithChanges(COMPONENT_UUID)).thenReturn(Collections.singletonList(issue1)); | |||
ComponentDto fileDto = ComponentTesting.newFileDto(ComponentTesting.newPublicProjectDto(db.getDefaultOrganization())).setUuid(COMPONENT_UUID); | |||
ComponentDto fileDto = ComponentTesting.newFileDto(ComponentTesting.newPublicProjectDto()).setUuid(COMPONENT_UUID); | |||
db.fileSources().insertFileSource(fileDto, 3); | |||
Component component = mock(Component.class); |
@@ -49,7 +49,6 @@ import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.SnapshotDto; | |||
import org.sonar.db.measure.MeasureDto; | |||
import org.sonar.db.metric.MetricDto; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.scanner.protocol.output.ScannerReport; | |||
import org.sonar.scanner.protocol.output.ScannerReport.Measure.StringValue; | |||
@@ -141,8 +140,7 @@ public class MeasureRepositoryImplTest { | |||
@Test | |||
public void getBaseMeasure_returns_Measure_if_measure_of_last_snapshot_only_in_DB() { | |||
OrganizationDto organization = dbTester.organizations().insert(); | |||
ComponentDto project = dbTester.components().insertPrivateProject(organization); | |||
ComponentDto project = dbTester.components().insertPrivateProject(); | |||
dbTester.components().insertComponent(newFileDto(project).setUuid(FILE_COMPONENT.getUuid())); | |||
SnapshotDto lastAnalysis = dbTester.components().insertSnapshot(project, t -> t.setLast(true)); | |||
SnapshotDto oldAnalysis = dbTester.components().insertSnapshot(project, t -> t.setLast(false)); |
@@ -43,7 +43,6 @@ import static org.mockito.Mockito.verify; | |||
import static org.sonar.api.measures.CoreMetrics.NCLOC; | |||
import static org.sonar.ce.task.projectanalysis.component.ReportComponent.DUMB_PROJECT; | |||
import static org.sonar.db.component.ComponentTesting.newPrivateProjectDto; | |||
import static org.sonar.db.organization.OrganizationTesting.newOrganizationDto; | |||
public class PostMeasuresComputationChecksStepTest { | |||
@@ -72,7 +71,7 @@ public class PostMeasuresComputationChecksStepTest { | |||
@Test | |||
public void context_contains_project_uuid_from_analysis_metada_holder() { | |||
Project project = Project.from(newPrivateProjectDto(newOrganizationDto())); | |||
Project project = Project.from(newPrivateProjectDto()); | |||
analysisMetadataHolder.setProject(project); | |||
PostMeasuresComputationCheck check = mock(PostMeasuresComputationCheck.class); | |||
@@ -43,7 +43,6 @@ import org.sonar.db.DbTester; | |||
import org.sonar.db.component.BranchType; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.SnapshotDto; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.scanner.protocol.output.ScannerReport; | |||
import org.sonar.scanner.protocol.output.ScannerReport.Component.ComponentType; | |||
import org.sonar.scanner.protocol.output.ScannerReport.Component.FileStatus; | |||
@@ -59,7 +58,6 @@ import static org.sonar.db.component.ComponentTesting.newDirectory; | |||
import static org.sonar.db.component.ComponentTesting.newFileDto; | |||
import static org.sonar.db.component.ComponentTesting.newPrivateProjectDto; | |||
import static org.sonar.db.component.SnapshotTesting.newAnalysis; | |||
import static org.sonar.db.organization.OrganizationTesting.newOrganizationDto; | |||
import static org.sonar.scanner.protocol.output.ScannerReport.Component.ComponentType.FILE; | |||
import static org.sonar.scanner.protocol.output.ScannerReport.Component.ComponentType.PROJECT; | |||
@@ -233,8 +231,7 @@ public class BuildComponentTreeStepTest { | |||
@Test | |||
public void return_existing_uuids() { | |||
setAnalysisMetadataHolder(); | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto project = insertComponent(newPrivateProjectDto(organizationDto, "ABCD").setDbKey(REPORT_PROJECT_KEY)); | |||
ComponentDto project = insertComponent(newPrivateProjectDto("ABCD").setDbKey(REPORT_PROJECT_KEY)); | |||
ComponentDto directory = newDirectory(project, "CDEF", REPORT_DIR_PATH_1); | |||
insertComponent(directory.setDbKey(REPORT_PROJECT_KEY + ":" + REPORT_DIR_PATH_1)); | |||
insertComponent(newFileDto(project, directory, "DEFG") | |||
@@ -260,7 +257,7 @@ public class BuildComponentTreeStepTest { | |||
when(branch.generateKey(any(), any())).thenReturn("generated"); | |||
analysisMetadataHolder.setRootComponentRef(ROOT_REF) | |||
.setAnalysisDate(ANALYSIS_DATE) | |||
.setProject(Project.from(newPrivateProjectDto(newOrganizationDto()).setDbKey(REPORT_PROJECT_KEY))) | |||
.setProject(Project.from(newPrivateProjectDto().setDbKey(REPORT_PROJECT_KEY))) | |||
.setBranch(branch); | |||
BuildComponentTreeStep underTest = new BuildComponentTreeStep(dbClient, reportReader, treeRootHolder, analysisMetadataHolder, reportModulesPath); | |||
reportReader.putComponent(component(ROOT_REF, PROJECT, REPORT_PROJECT_KEY, FILE_1_REF)); | |||
@@ -349,8 +346,7 @@ public class BuildComponentTreeStepTest { | |||
@Test | |||
public void set_no_base_project_snapshot_when_no_last_snapshot() { | |||
setAnalysisMetadataHolder(); | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto project = insertComponent(newPrivateProjectDto(organizationDto, "ABCD").setDbKey(REPORT_PROJECT_KEY)); | |||
ComponentDto project = insertComponent(newPrivateProjectDto("ABCD").setDbKey(REPORT_PROJECT_KEY)); | |||
insertSnapshot(newAnalysis(project).setLast(false)); | |||
reportReader.putComponent(component(ROOT_REF, PROJECT, REPORT_PROJECT_KEY)); | |||
@@ -362,8 +358,7 @@ public class BuildComponentTreeStepTest { | |||
@Test | |||
public void set_base_project_snapshot_when_last_snapshot_exist() { | |||
setAnalysisMetadataHolder(); | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto project = insertComponent(newPrivateProjectDto(organizationDto, "ABCD").setDbKey(REPORT_PROJECT_KEY)); | |||
ComponentDto project = insertComponent(newPrivateProjectDto("ABCD").setDbKey(REPORT_PROJECT_KEY)); | |||
insertSnapshot(newAnalysis(project).setLast(true)); | |||
reportReader.putComponent(component(ROOT_REF, PROJECT, REPORT_PROJECT_KEY)); | |||
@@ -386,8 +381,7 @@ public class BuildComponentTreeStepTest { | |||
@UseDataProvider("oneParameterNullNonNullCombinations") | |||
public void set_projectVersion_to_previous_analysis_when_not_set(@Nullable String previousAnalysisProjectVersion) { | |||
setAnalysisMetadataHolder(); | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto project = insertComponent(newPrivateProjectDto(organizationDto, "ABCD").setDbKey(REPORT_PROJECT_KEY)); | |||
ComponentDto project = insertComponent(newPrivateProjectDto("ABCD").setDbKey(REPORT_PROJECT_KEY)); | |||
insertSnapshot(newAnalysis(project).setProjectVersion(previousAnalysisProjectVersion).setLast(true)); | |||
reportReader.putComponent(component(ROOT_REF, PROJECT, REPORT_PROJECT_KEY)); | |||
@@ -420,8 +414,7 @@ public class BuildComponentTreeStepTest { | |||
String scannerProjectVersion = randomAlphabetic(12); | |||
setAnalysisMetadataHolder(); | |||
reportReader.setMetadata(createReportMetadata(scannerProjectVersion, NO_SCANNER_BUILD_STRING)); | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto project = insertComponent(newPrivateProjectDto(organizationDto, "ABCD").setDbKey(REPORT_PROJECT_KEY)); | |||
ComponentDto project = insertComponent(newPrivateProjectDto("ABCD").setDbKey(REPORT_PROJECT_KEY)); | |||
insertSnapshot(newAnalysis(project).setProjectVersion(previousAnalysisProjectVersion).setLast(true)); | |||
reportReader.putComponent(component(ROOT_REF, PROJECT, REPORT_PROJECT_KEY)); | |||
@@ -559,9 +552,7 @@ public class BuildComponentTreeStepTest { | |||
} | |||
private ComponentDto insertComponent(ComponentDto component) { | |||
dbClient.componentDao().insert(dbTester.getSession(), component); | |||
dbTester.getSession().commit(); | |||
return component; | |||
return dbTester.components().insertComponent(component); | |||
} | |||
private SnapshotDto insertSnapshot(SnapshotDto snapshot) { | |||
@@ -579,7 +570,7 @@ public class BuildComponentTreeStepTest { | |||
analysisMetadataHolder.setRootComponentRef(ROOT_REF) | |||
.setAnalysisDate(ANALYSIS_DATE) | |||
.setBranch(branch) | |||
.setProject(Project.from(newPrivateProjectDto(newOrganizationDto()).setDbKey(REPORT_PROJECT_KEY).setName(REPORT_PROJECT_KEY))); | |||
.setProject(Project.from(newPrivateProjectDto().setDbKey(REPORT_PROJECT_KEY).setName(REPORT_PROJECT_KEY))); | |||
} | |||
public static ScannerReport.Metadata createReportMetadata(@Nullable String projectVersion, @Nullable String buildString) { |
@@ -33,7 +33,6 @@ import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.db.component.SnapshotDto; | |||
import org.sonar.db.component.SnapshotTesting; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -56,9 +55,8 @@ public class EnableAnalysisStepTest { | |||
@Test | |||
public void switch_islast_flag_and_mark_analysis_as_processed() { | |||
OrganizationDto organization = db.organizations().insert(); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(organization, REPORT_PROJECT.getUuid()); | |||
db.getDbClient().componentDao().insert(db.getSession(), project); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(REPORT_PROJECT.getUuid()); | |||
db.components().insertComponent(project); | |||
insertAnalysis(project, PREVIOUS_ANALYSIS_UUID, SnapshotDto.STATUS_PROCESSED, true); | |||
insertAnalysis(project, CURRENT_ANALYSIS_UUID, SnapshotDto.STATUS_UNPROCESSED, false); | |||
db.commit(); | |||
@@ -73,8 +71,8 @@ public class EnableAnalysisStepTest { | |||
@Test | |||
public void set_islast_flag_and_mark_as_processed_if_no_previous_analysis() { | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(db.getDefaultOrganization(), REPORT_PROJECT.getUuid()); | |||
db.getDbClient().componentDao().insert(db.getSession(), project); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(REPORT_PROJECT.getUuid()); | |||
db.components().insertComponent(project); | |||
insertAnalysis(project, CURRENT_ANALYSIS_UUID, SnapshotDto.STATUS_UNPROCESSED, false); | |||
db.commit(); | |||
treeRootHolder.setRoot(REPORT_PROJECT); |
@@ -59,7 +59,6 @@ public class ExtractReportStepTest { | |||
private MutableBatchReportDirectoryHolder reportDirectoryHolder = new BatchReportDirectoryHolderImpl(); | |||
private CeTask ceTask = new CeTask.Builder() | |||
.setOrganizationUuid("org1") | |||
.setType(CeTaskTypes.REPORT) | |||
.setUuid(TASK_UUID) | |||
.build(); |
@@ -106,8 +106,8 @@ public class LoadCrossProjectDuplicationsRepositoryStepTest { | |||
@Before | |||
public void setUp() { | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(dbTester.organizations().insert()); | |||
dbClient.componentDao().insert(dbSession, project); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(); | |||
dbTester.components().insertComponent(project); | |||
SnapshotDto projectSnapshot = SnapshotTesting.newAnalysis(project); | |||
dbClient.snapshotDao().insert(dbSession, projectSnapshot); | |||
dbSession.commit(); | |||
@@ -323,10 +323,8 @@ public class LoadCrossProjectDuplicationsRepositoryStepTest { | |||
} | |||
private ComponentDto createProject(String projectKey) { | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(dbTester.organizations().insert()).setDbKey(projectKey); | |||
dbClient.componentDao().insert(dbSession, project); | |||
dbSession.commit(); | |||
return project; | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto().setDbKey(projectKey); | |||
return dbTester.components().insertComponent(project); | |||
} | |||
private SnapshotDto createProjectSnapshot(ComponentDto project) { |
@@ -56,7 +56,6 @@ import org.sonar.db.component.SnapshotDto; | |||
import org.sonar.db.event.EventTesting; | |||
import org.sonar.db.newcodeperiod.NewCodePeriodDao; | |||
import org.sonar.db.newcodeperiod.NewCodePeriodType; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.server.project.Project; | |||
import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; | |||
@@ -92,7 +91,6 @@ public class LoadPeriodsStepTest extends BaseStepTest { | |||
private LoadPeriodsStep underTest = new LoadPeriodsStep(analysisMetadataHolder, dao, treeRootHolder, periodsHolder, dbTester.getDbClient(), newCodePeriodResolver); | |||
private OrganizationDto organization; | |||
private ComponentDto project; | |||
@Override | |||
@@ -102,8 +100,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { | |||
@Before | |||
public void setUp() { | |||
organization = dbTester.organizations().insert(); | |||
project = dbTester.components().insertPublicProject(organization); | |||
project = dbTester.components().insertPublicProject(); | |||
when(analysisMetadataHolder.isBranch()).thenReturn(true); | |||
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); | |||
@@ -267,8 +264,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { | |||
@Test | |||
public void throw_ISE_when_specific_analysis_is_set_but_does_not_exist_in_DB() { | |||
OrganizationDto organization = dbTester.organizations().insert(); | |||
ComponentDto project = dbTester.components().insertPublicProject(organization); | |||
ComponentDto project = dbTester.components().insertPublicProject(); | |||
setProjectPeriod(project.uuid(), NewCodePeriodType.SPECIFIC_ANALYSIS, "nonexistent"); | |||
setupRoot(project); | |||
@@ -280,7 +276,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { | |||
@Test | |||
public void throw_ISE_when_specific_analysis_is_set_but_does_not_belong_to_current_project() { | |||
ComponentDto otherProject = dbTester.components().insertPublicProject(organization); | |||
ComponentDto otherProject = dbTester.components().insertPublicProject(); | |||
SnapshotDto otherProjectAnalysis = dbTester.components().insertSnapshot(otherProject); | |||
setBranchPeriod(project.uuid(), project.uuid(), NewCodePeriodType.SPECIFIC_ANALYSIS, otherProjectAnalysis.getUuid()); | |||
setupRoot(project); |
@@ -26,7 +26,6 @@ import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.junit.rules.ExpectedException; | |||
import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder; | |||
import org.sonar.ce.task.projectanalysis.analysis.Organization; | |||
import org.sonar.ce.task.projectanalysis.metric.Metric; | |||
import org.sonar.ce.task.projectanalysis.metric.MetricImpl; | |||
import org.sonar.ce.task.projectanalysis.qualitygate.Condition; | |||
@@ -56,7 +55,6 @@ public class LoadQualityGateStepTest { | |||
@Before | |||
public void setUp() { | |||
when(analysisMetadataHolder.getOrganization()).thenReturn(mock(Organization.class)); | |||
} | |||
@Test |
@@ -19,9 +19,7 @@ | |||
*/ | |||
package org.sonar.ce.task.projectanalysis.step; | |||
import com.tngtech.java.junit.dataprovider.DataProvider; | |||
import com.tngtech.java.junit.dataprovider.DataProviderRunner; | |||
import com.tngtech.java.junit.dataprovider.UseDataProvider; | |||
import java.util.Collection; | |||
import java.util.HashMap; | |||
import java.util.Map; | |||
@@ -37,7 +35,6 @@ import org.sonar.api.utils.MessageException; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.ce.task.CeTask; | |||
import org.sonar.ce.task.projectanalysis.analysis.MutableAnalysisMetadataHolderRule; | |||
import org.sonar.ce.task.projectanalysis.analysis.Organization; | |||
import org.sonar.ce.task.projectanalysis.analysis.ScannerPlugin; | |||
import org.sonar.ce.task.projectanalysis.batch.BatchReportReaderRule; | |||
import org.sonar.ce.task.projectanalysis.component.BranchLoader; | |||
@@ -48,17 +45,12 @@ import org.sonar.core.platform.PluginRepository; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.scanner.protocol.output.ScannerReport; | |||
import org.sonar.server.organization.DefaultOrganizationProvider; | |||
import org.sonar.server.organization.OrganizationFlags; | |||
import org.sonar.server.organization.TestDefaultOrganizationProvider; | |||
import org.sonar.server.project.Project; | |||
import static java.util.Arrays.stream; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.assertj.core.api.Assertions.tuple; | |||
import static org.mockito.ArgumentMatchers.any; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
@@ -77,18 +69,16 @@ public class LoadReportAnalysisMetadataHolderStepTest { | |||
@Rule | |||
public ExpectedException expectedException = ExpectedException.none(); | |||
private DbClient dbClient = db.getDbClient(); | |||
private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db); | |||
private TestPluginRepository pluginRepository = new TestPluginRepository(); | |||
private OrganizationFlags organizationFlags = mock(OrganizationFlags.class); | |||
private final DbClient dbClient = db.getDbClient(); | |||
private final TestPluginRepository pluginRepository = new TestPluginRepository(); | |||
private ComponentDto project; | |||
private ComputationStep underTest; | |||
@Before | |||
public void setUp() { | |||
CeTask defaultOrgCeTask = createCeTask(PROJECT_KEY, db.getDefaultOrganization().getUuid()); | |||
CeTask defaultOrgCeTask = createCeTask(PROJECT_KEY); | |||
underTest = createStep(defaultOrgCeTask); | |||
project = db.components().insertPublicProject(db.getDefaultOrganization(), p -> p.setDbKey(PROJECT_KEY)); | |||
project = db.components().insertPublicProject(p -> p.setDbKey(PROJECT_KEY)); | |||
} | |||
@Test | |||
@@ -182,7 +172,6 @@ public class LoadReportAnalysisMetadataHolderStepTest { | |||
public void execute_fails_with_ISE_if_component_is_null_in_CE_task() { | |||
CeTask res = mock(CeTask.class); | |||
when(res.getComponent()).thenReturn(Optional.empty()); | |||
when(res.getOrganizationUuid()).thenReturn(defaultOrganizationProvider.get().getUuid()); | |||
reportReader.setMetadata(ScannerReport.Metadata.newBuilder().build()); | |||
ComputationStep underTest = createStep(res); | |||
@@ -199,7 +188,6 @@ public class LoadReportAnalysisMetadataHolderStepTest { | |||
Optional<CeTask.Component> component = Optional.of(new CeTask.Component("main_prj_uuid", null, null)); | |||
when(res.getComponent()).thenReturn(component); | |||
when(res.getMainComponent()).thenReturn(component); | |||
when(res.getOrganizationUuid()).thenReturn(defaultOrganizationProvider.get().getUuid()); | |||
reportReader.setMetadata(ScannerReport.Metadata.newBuilder().build()); | |||
ComputationStep underTest = createStep(res); | |||
@@ -217,7 +205,6 @@ public class LoadReportAnalysisMetadataHolderStepTest { | |||
Optional<CeTask.Component> component = Optional.of(new CeTask.Component("prj_uuid", null, null)); | |||
when(res.getComponent()).thenReturn(component); | |||
when(res.getMainComponent()).thenReturn(Optional.of(new CeTask.Component("main_prj_uuid", "main_prj_key", null))); | |||
when(res.getOrganizationUuid()).thenReturn(defaultOrganizationProvider.get().getUuid()); | |||
reportReader.setMetadata(ScannerReport.Metadata.newBuilder().build()); | |||
ComputationStep underTest = createStep(res); | |||
@@ -230,8 +217,7 @@ public class LoadReportAnalysisMetadataHolderStepTest { | |||
@Test | |||
public void execute_fails_with_MessageException_when_projectKey_in_report_is_different_from_componentKey_in_CE_task() { | |||
OrganizationDto organization = db.organizations().insert(); | |||
ComponentDto otherProject = db.components().insertPublicProject(organization); | |||
ComponentDto otherProject = db.components().insertPublicProject(); | |||
reportReader.setMetadata( | |||
ScannerReport.Metadata.newBuilder() | |||
.setProjectKey(otherProject.getDbKey()) | |||
@@ -246,8 +232,7 @@ public class LoadReportAnalysisMetadataHolderStepTest { | |||
@Test | |||
public void execute_sets_branch_even_if_MessageException_is_thrown_because_projectKey_in_report_is_different_from_componentKey_in_CE_task() { | |||
OrganizationDto organization = db.organizations().insert(); | |||
ComponentDto otherProject = db.components().insertPublicProject(organization); | |||
ComponentDto otherProject = db.components().insertPublicProject(); | |||
reportReader.setMetadata( | |||
ScannerReport.Metadata.newBuilder() | |||
.setProjectKey(otherProject.getDbKey()) | |||
@@ -262,8 +247,7 @@ public class LoadReportAnalysisMetadataHolderStepTest { | |||
@Test | |||
public void execute_sets_analysis_date_even_if_MessageException_is_thrown_because_projectKey_is_different_from_componentKey_in_CE_task() { | |||
OrganizationDto organization = db.organizations().insert(); | |||
ComponentDto otherProject = db.components().insertPublicProject(organization); | |||
ComponentDto otherProject = db.components().insertPublicProject(); | |||
reportReader.setMetadata( | |||
ScannerReport.Metadata.newBuilder() | |||
.setProjectKey(otherProject.getDbKey()) | |||
@@ -277,99 +261,16 @@ public class LoadReportAnalysisMetadataHolderStepTest { | |||
} | |||
} | |||
@Test | |||
public void execute_fails_with_MessageException_when_report_has_no_organizationKey_but_does_not_belong_to_the_default_organization() { | |||
reportReader.setMetadata( | |||
newBatchReportBuilder() | |||
.build()); | |||
OrganizationDto nonDefaultOrganizationDto = db.organizations().insert(); | |||
ComputationStep underTest = createStep(createCeTask(PROJECT_KEY, nonDefaultOrganizationDto.getUuid())); | |||
expectedException.expect(MessageException.class); | |||
expectedException.expectMessage("Report does not specify an OrganizationKey but it has been submitted to another organization (" + | |||
nonDefaultOrganizationDto.getKey() + ") than the default one (" + db.getDefaultOrganization().getKey() + ")"); | |||
underTest.execute(new TestComputationStepContext()); | |||
} | |||
@Test | |||
public void execute_set_organization_from_ce_task_when_organizationKey_is_not_set_in_report() { | |||
reportReader.setMetadata( | |||
newBatchReportBuilder() | |||
.build()); | |||
underTest.execute(new TestComputationStepContext()); | |||
Organization organization = analysisMetadataHolder.getOrganization(); | |||
OrganizationDto defaultOrganization = db.getDefaultOrganization(); | |||
assertThat(organization.getUuid()).isEqualTo(defaultOrganization.getUuid()); | |||
assertThat(organization.getKey()).isEqualTo(defaultOrganization.getKey()); | |||
assertThat(organization.getName()).isEqualTo(defaultOrganization.getName()); | |||
} | |||
@Test | |||
@UseDataProvider("organizationEnabledFlags") | |||
public void execute_set_organization_from_ce_task_when_organizationKey_is_set_in_report(boolean organizationEnabled) { | |||
reportReader.setMetadata( | |||
newBatchReportBuilder() | |||
.setOrganizationKey(db.getDefaultOrganization().getKey()) | |||
.build()); | |||
when(organizationFlags.isEnabled(any())).thenReturn(organizationEnabled); | |||
underTest.execute(new TestComputationStepContext()); | |||
Organization organization = analysisMetadataHolder.getOrganization(); | |||
OrganizationDto defaultOrganization = db.getDefaultOrganization(); | |||
assertThat(organization.getUuid()).isEqualTo(defaultOrganization.getUuid()); | |||
assertThat(organization.getKey()).isEqualTo(defaultOrganization.getKey()); | |||
assertThat(organization.getName()).isEqualTo(defaultOrganization.getName()); | |||
assertThat(analysisMetadataHolder.isOrganizationsEnabled()).isEqualTo(organizationEnabled); | |||
} | |||
@Test | |||
@UseDataProvider("organizationEnabledFlags") | |||
public void execute_set_non_default_organization_from_ce_task(boolean organizationEnabled) { | |||
OrganizationDto nonDefaultOrganizationDto = db.organizations().insert(); | |||
ComponentDto project = db.components().insertPublicProject(nonDefaultOrganizationDto); | |||
reportReader.setMetadata( | |||
newBatchReportBuilder() | |||
.setOrganizationKey(nonDefaultOrganizationDto.getKey()) | |||
.setProjectKey(project.getDbKey()) | |||
.build()); | |||
when(organizationFlags.isEnabled(any())).thenReturn(organizationEnabled); | |||
ComputationStep underTest = createStep(createCeTask(project.getDbKey(), nonDefaultOrganizationDto.getUuid())); | |||
underTest.execute(new TestComputationStepContext()); | |||
Organization organization = analysisMetadataHolder.getOrganization(); | |||
assertThat(organization.getUuid()).isEqualTo(nonDefaultOrganizationDto.getUuid()); | |||
assertThat(organization.getKey()).isEqualTo(nonDefaultOrganizationDto.getKey()); | |||
assertThat(organization.getName()).isEqualTo(nonDefaultOrganizationDto.getName()); | |||
assertThat(analysisMetadataHolder.isOrganizationsEnabled()).isEqualTo(organizationEnabled); | |||
} | |||
@DataProvider | |||
public static Object[][] organizationEnabledFlags() { | |||
return new Object[][] { | |||
{true}, | |||
{false} | |||
}; | |||
} | |||
@Test | |||
public void execute_does_not_fail_when_report_has_a_quality_profile_that_does_not_exist_anymore() { | |||
OrganizationDto organization = db.organizations().insert(); | |||
ComponentDto project = db.components().insertPublicProject(organization); | |||
ComponentDto project = db.components().insertPublicProject(); | |||
ScannerReport.Metadata.Builder metadataBuilder = newBatchReportBuilder(); | |||
metadataBuilder | |||
.setOrganizationKey(organization.getKey()) | |||
.setProjectKey(project.getDbKey()); | |||
metadataBuilder.putQprofilesPerLanguage("js", ScannerReport.Metadata.QProfile.newBuilder().setKey("p1").setName("Sonar way").setLanguage("js").build()); | |||
reportReader.setMetadata(metadataBuilder.build()); | |||
ComputationStep underTest = createStep(createCeTask(project.getDbKey(), organization.getUuid())); | |||
ComputationStep underTest = createStep(createCeTask(project.getDbKey())); | |||
underTest.execute(new TestComputationStepContext()); | |||
} | |||
@@ -402,7 +303,7 @@ public class LoadReportAnalysisMetadataHolderStepTest { | |||
private LoadReportAnalysisMetadataHolderStep createStep(CeTask ceTask) { | |||
return new LoadReportAnalysisMetadataHolderStep(ceTask, reportReader, analysisMetadataHolder, | |||
defaultOrganizationProvider, dbClient, new BranchLoader(analysisMetadataHolder), pluginRepository, organizationFlags); | |||
dbClient, new BranchLoader(analysisMetadataHolder), pluginRepository); | |||
} | |||
private static ScannerReport.Metadata.Builder newBatchReportBuilder() { | |||
@@ -410,10 +311,9 @@ public class LoadReportAnalysisMetadataHolderStepTest { | |||
.setProjectKey(PROJECT_KEY); | |||
} | |||
private CeTask createCeTask(String projectKey, String organizationUuid) { | |||
private CeTask createCeTask(String projectKey) { | |||
CeTask res = mock(CeTask.class); | |||
Optional<CeTask.Component> component = Optional.of(new CeTask.Component(projectKey + "_uuid", projectKey, projectKey + "_name")); | |||
when(res.getOrganizationUuid()).thenReturn(organizationUuid); | |||
when(res.getComponent()).thenReturn(component); | |||
when(res.getMainComponent()).thenReturn(component); | |||
return res; |
@@ -33,6 +33,7 @@ import org.sonar.ce.task.step.TestComputationStepContext; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.component.ComponentDao; | |||
import org.sonar.server.organization.DefaultOrganizationProvider; | |||
import static java.util.Collections.emptyList; | |||
import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; | |||
@@ -69,6 +70,7 @@ public class PersistComponentsStepTest { | |||
mock(MutableDisabledComponentsHolder.class), | |||
mock(AnalysisMetadataHolder.class), | |||
mock(BranchPersister.class), | |||
mock(ProjectPersister.class)).execute(new TestComputationStepContext()); | |||
mock(ProjectPersister.class), | |||
mock(DefaultOrganizationProvider.class)).execute(new TestComputationStepContext()); | |||
} | |||
} |
@@ -175,13 +175,12 @@ public class PersistDuplicationDataStepTest extends BaseStepTest { | |||
private ComponentDto insertComponent(String key, String uuid) { | |||
ComponentDto componentDto = new ComponentDto() | |||
.setOrganizationUuid("org1") | |||
.setDbKey(key) | |||
.setUuid(uuid) | |||
.setUuidPath(uuid + ".") | |||
.setRootUuid(uuid) | |||
.setProjectUuid(uuid); | |||
db.getDbClient().componentDao().insert(db.getSession(), componentDto); | |||
db.components().insertComponent(componentDto); | |||
return componentDto; | |||
} | |||
@@ -51,7 +51,6 @@ import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.issue.IssueChangeDto; | |||
import org.sonar.db.issue.IssueDto; | |||
import org.sonar.db.issue.IssueMapper; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.db.rule.RuleDefinitionDto; | |||
import org.sonar.db.rule.RuleTesting; | |||
import org.sonar.scanner.protocol.output.ScannerReport; | |||
@@ -114,8 +113,7 @@ public class PersistIssuesStepTest extends BaseStepTest { | |||
public void insert_copied_issue() { | |||
RuleDefinitionDto rule = RuleTesting.newRule(RuleKey.of("xoo", "S01")); | |||
db.rules().insert(rule); | |||
OrganizationDto organizationDto = db.organizations().insert(); | |||
ComponentDto project = db.components().insertPrivateProject(organizationDto); | |||
ComponentDto project = db.components().insertPrivateProject(); | |||
ComponentDto file = db.components().insertComponent(newFileDto(project, null)); | |||
when(system2.now()).thenReturn(NOW); | |||
@@ -174,8 +172,7 @@ public class PersistIssuesStepTest extends BaseStepTest { | |||
public void insert_copied_issue_with_minimal_info() { | |||
RuleDefinitionDto rule = RuleTesting.newRule(RuleKey.of("xoo", "S01")); | |||
db.rules().insert(rule); | |||
OrganizationDto organizationDto = db.organizations().insert(); | |||
ComponentDto project = db.components().insertPrivateProject(organizationDto); | |||
ComponentDto project = db.components().insertPrivateProject(); | |||
ComponentDto file = db.components().insertComponent(newFileDto(project, null)); | |||
when(system2.now()).thenReturn(NOW); | |||
@@ -218,8 +215,7 @@ public class PersistIssuesStepTest extends BaseStepTest { | |||
public void insert_merged_issue() { | |||
RuleDefinitionDto rule = RuleTesting.newRule(RuleKey.of("xoo", "S01")); | |||
db.rules().insert(rule); | |||
OrganizationDto organizationDto = db.organizations().insert(); | |||
ComponentDto project = db.components().insertPrivateProject(organizationDto); | |||
ComponentDto project = db.components().insertPrivateProject(); | |||
ComponentDto file = db.components().insertComponent(newFileDto(project, null)); | |||
when(system2.now()).thenReturn(NOW); | |||
@@ -275,8 +271,7 @@ public class PersistIssuesStepTest extends BaseStepTest { | |||
public void update_conflicting_issue() { | |||
RuleDefinitionDto rule = RuleTesting.newRule(RuleKey.of("xoo", "S01")); | |||
db.rules().insert(rule); | |||
OrganizationDto organizationDto = db.organizations().insert(); | |||
ComponentDto project = db.components().insertPrivateProject(organizationDto); | |||
ComponentDto project = db.components().insertPrivateProject(); | |||
ComponentDto file = db.components().insertComponent(newFileDto(project, null)); | |||
IssueDto issue = db.issues().insert(rule, project, file, | |||
i -> i.setStatus(STATUS_OPEN) | |||
@@ -310,8 +305,7 @@ public class PersistIssuesStepTest extends BaseStepTest { | |||
public void insert_new_issue() { | |||
RuleDefinitionDto rule = RuleTesting.newRule(RuleKey.of("xoo", "S01")); | |||
db.rules().insert(rule); | |||
OrganizationDto organizationDto = db.organizations().insert(); | |||
ComponentDto project = db.components().insertPrivateProject(organizationDto); | |||
ComponentDto project = db.components().insertPrivateProject(); | |||
ComponentDto file = db.components().insertComponent(newFileDto(project, null)); | |||
session.commit(); | |||
@@ -277,13 +277,12 @@ public class PersistLiveMeasuresStepTest extends BaseStepTest { | |||
private ComponentDto insertComponent(String key, String uuid) { | |||
ComponentDto componentDto = new ComponentDto() | |||
.setOrganizationUuid("org1") | |||
.setDbKey(key) | |||
.setUuid(uuid) | |||
.setUuidPath(uuid + ".") | |||
.setRootUuid(uuid) | |||
.setProjectUuid(uuid); | |||
dbClient.componentDao().insert(db.getSession(), componentDto); | |||
db.components().insertComponent(componentDto); | |||
return componentDto; | |||
} | |||
@@ -223,13 +223,12 @@ public class PersistMeasuresStepTest extends BaseStepTest { | |||
private ComponentDto insertComponent(String key, String uuid) { | |||
ComponentDto componentDto = new ComponentDto() | |||
.setOrganizationUuid("org1") | |||
.setDbKey(key) | |||
.setUuid(uuid) | |||
.setUuidPath(uuid + ".") | |||
.setRootUuid(uuid) | |||
.setProjectUuid(uuid); | |||
dbClient.componentDao().insert(db.getSession(), componentDto); | |||
db.components().insertComponent(componentDto); | |||
return componentDto; | |||
} | |||
@@ -41,7 +41,6 @@ import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.db.component.SnapshotDto; | |||
import org.sonar.db.component.SnapshotQuery; | |||
import org.sonar.db.component.SnapshotTesting; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -94,15 +93,14 @@ public class ReportPersistAnalysisStepTest extends BaseStepTest { | |||
@Test | |||
public void persist_analysis() { | |||
String projectVersion = randomAlphabetic(10); | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto projectDto = ComponentTesting.newPrivateProjectDto(organizationDto, "ABCD").setDbKey(PROJECT_KEY).setName("Project"); | |||
dbClient.componentDao().insert(dbTester.getSession(), projectDto); | |||
ComponentDto projectDto = ComponentTesting.newPrivateProjectDto("ABCD").setDbKey(PROJECT_KEY).setName("Project"); | |||
dbTester.components().insertComponent(projectDto); | |||
ComponentDto moduleDto = ComponentTesting.newModuleDto("BCDE", projectDto).setDbKey("MODULE_KEY").setName("Module"); | |||
dbClient.componentDao().insert(dbTester.getSession(), moduleDto); | |||
dbTester.components().insertComponent(moduleDto); | |||
ComponentDto directoryDto = ComponentTesting.newDirectory(moduleDto, "CDEF", "MODULE_KEY:src/main/java/dir").setDbKey("MODULE_KEY:src/main/java/dir"); | |||
dbClient.componentDao().insert(dbTester.getSession(), directoryDto); | |||
dbTester.components().insertComponent(directoryDto); | |||
ComponentDto fileDto = ComponentTesting.newFileDto(moduleDto, directoryDto, "DEFG").setDbKey("MODULE_KEY:src/main/java/dir/Foo.java"); | |||
dbClient.componentDao().insert(dbTester.getSession(), fileDto); | |||
dbTester.components().insertComponent(fileDto); | |||
dbTester.getSession().commit(); | |||
Component file = ReportComponent.builder(Component.Type.FILE, 3).setUuid("DEFG").setKey("MODULE_KEY:src/main/java/dir/Foo.java").build(); | |||
@@ -136,9 +134,8 @@ public class ReportPersistAnalysisStepTest extends BaseStepTest { | |||
@Test | |||
public void persist_snapshots_with_new_code_period() { | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto projectDto = ComponentTesting.newPrivateProjectDto(organizationDto, "ABCD").setDbKey(PROJECT_KEY).setName("Project"); | |||
dbClient.componentDao().insert(dbTester.getSession(), projectDto); | |||
ComponentDto projectDto = ComponentTesting.newPrivateProjectDto("ABCD").setDbKey(PROJECT_KEY).setName("Project"); | |||
dbTester.components().insertComponent(projectDto); | |||
SnapshotDto snapshotDto = SnapshotTesting.newAnalysis(projectDto).setCreatedAt(DateUtils.parseDateQuietly("2015-01-01").getTime()); | |||
dbClient.snapshotDao().insert(dbTester.getSession(), snapshotDto); | |||
dbTester.getSession().commit(); | |||
@@ -159,20 +156,19 @@ public class ReportPersistAnalysisStepTest extends BaseStepTest { | |||
public void only_persist_snapshots_with_new_code_period_on_project_and_module() { | |||
periodsHolder.setPeriod(new Period("PREVIOUS_VERSION", null, analysisDate)); | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto projectDto = ComponentTesting.newPrivateProjectDto(organizationDto, "ABCD").setDbKey(PROJECT_KEY).setName("Project"); | |||
dbClient.componentDao().insert(dbTester.getSession(), projectDto); | |||
ComponentDto projectDto = ComponentTesting.newPrivateProjectDto("ABCD").setDbKey(PROJECT_KEY).setName("Project"); | |||
dbTester.components().insertComponent(projectDto); | |||
SnapshotDto projectSnapshot = SnapshotTesting.newAnalysis(projectDto); | |||
dbClient.snapshotDao().insert(dbTester.getSession(), projectSnapshot); | |||
ComponentDto moduleDto = ComponentTesting.newModuleDto("BCDE", projectDto).setDbKey("MODULE_KEY").setName("Module"); | |||
dbClient.componentDao().insert(dbTester.getSession(), moduleDto); | |||
dbTester.components().insertComponent(moduleDto); | |||
ComponentDto directoryDto = ComponentTesting.newDirectory(moduleDto, "CDEF", "MODULE_KEY:src/main/java/dir").setDbKey("MODULE_KEY:src/main/java/dir"); | |||
dbClient.componentDao().insert(dbTester.getSession(), directoryDto); | |||
dbTester.components().insertComponent(directoryDto); | |||
ComponentDto fileDto = ComponentTesting.newFileDto(moduleDto, directoryDto, "DEFG").setDbKey("MODULE_KEY:src/main/java/dir/Foo.java"); | |||
dbClient.componentDao().insert(dbTester.getSession(), fileDto); | |||
dbTester.components().insertComponent(fileDto); | |||
dbTester.getSession().commit(); | |||
@@ -189,8 +185,8 @@ public class ReportPersistAnalysisStepTest extends BaseStepTest { | |||
@Test | |||
public void set_no_period_on_snapshots_when_no_period() { | |||
ComponentDto projectDto = ComponentTesting.newPrivateProjectDto(dbTester.organizations().insert(), "ABCD").setDbKey(PROJECT_KEY).setName("Project"); | |||
dbClient.componentDao().insert(dbTester.getSession(), projectDto); | |||
ComponentDto projectDto = ComponentTesting.newPrivateProjectDto("ABCD").setDbKey(PROJECT_KEY).setName("Project"); | |||
dbTester.components().insertComponent(projectDto); | |||
SnapshotDto snapshotDto = SnapshotTesting.newAnalysis(projectDto); | |||
dbClient.snapshotDao().insert(dbTester.getSession(), snapshotDto); | |||
dbTester.getSession().commit(); |
@@ -48,6 +48,8 @@ import org.sonar.db.DbTester; | |||
import org.sonar.db.component.BranchType; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.server.organization.DefaultOrganizationProvider; | |||
import org.sonar.server.organization.TestDefaultOrganizationProvider; | |||
import org.sonar.server.project.Project; | |||
import static org.apache.commons.lang.StringUtils.isEmpty; | |||
@@ -69,21 +71,19 @@ public class ReportPersistComponentsStepTest extends BaseStepTest { | |||
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); | |||
private static final String PROJECT_KEY = "PROJECT_KEY"; | |||
private static final String ORGANIZATION_UUID = "org1"; | |||
private static final String QUALITY_GATE_UUID = "gg1"; | |||
@Rule | |||
public DbTester db = DbTester.create(System2.INSTANCE); | |||
public DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db); | |||
@Rule | |||
public TreeRootHolderRule treeRootHolder = new TreeRootHolderRule(); | |||
@Rule | |||
public AnalysisMetadataHolderRule analysisMetadataHolder = new AnalysisMetadataHolderRule() | |||
.setOrganizationUuid(ORGANIZATION_UUID, QUALITY_GATE_UUID); | |||
public AnalysisMetadataHolderRule analysisMetadataHolder = new AnalysisMetadataHolderRule(); | |||
private System2 system2 = mock(System2.class); | |||
private DbClient dbClient = db.getDbClient(); | |||
private final System2 system2 = mock(System2.class); | |||
private final DbClient dbClient = db.getDbClient(); | |||
private Date now; | |||
private MutableDisabledComponentsHolder disabledComponentsHolder = mock(MutableDisabledComponentsHolder.class, RETURNS_DEEP_STUBS); | |||
private final MutableDisabledComponentsHolder disabledComponentsHolder = mock(MutableDisabledComponentsHolder.class, RETURNS_DEEP_STUBS); | |||
private PersistComponentsStep underTest; | |||
@Before | |||
@@ -91,10 +91,10 @@ public class ReportPersistComponentsStepTest extends BaseStepTest { | |||
now = DATE_FORMAT.parse("2015-06-02"); | |||
when(system2.now()).thenReturn(now.getTime()); | |||
db.organizations().insertForUuid(ORGANIZATION_UUID); | |||
BranchPersister branchPersister = mock(BranchPersister.class); | |||
ProjectPersister projectPersister = mock(ProjectPersister.class); | |||
underTest = new PersistComponentsStep(dbClient, treeRootHolder, system2, disabledComponentsHolder, analysisMetadataHolder, branchPersister, projectPersister); | |||
underTest = new PersistComponentsStep(dbClient, treeRootHolder, system2, disabledComponentsHolder, analysisMetadataHolder, branchPersister, projectPersister, | |||
defaultOrganizationProvider); | |||
} | |||
@Override | |||
@@ -125,7 +125,7 @@ public class ReportPersistComponentsStepTest extends BaseStepTest { | |||
assertThat(db.countRowsOfTable("components")).isEqualTo(3); | |||
ComponentDto directoryDto = dbClient.componentDao().selectByKey(db.getSession(), "PROJECT_KEY:src/main/java/dir").get(); | |||
assertThat(directoryDto.getOrganizationUuid()).isEqualTo(ORGANIZATION_UUID); | |||
assertThat(directoryDto.getOrganizationUuid()).isEqualTo(defaultOrganizationProvider.get().getUuid()); | |||
assertThat(directoryDto.name()).isEqualTo("dir"); | |||
assertThat(directoryDto.longName()).isEqualTo("src/main/java/dir"); | |||
assertThat(directoryDto.description()).isNull(); | |||
@@ -142,7 +142,7 @@ public class ReportPersistComponentsStepTest extends BaseStepTest { | |||
assertThat(directoryDto.getCreatedAt()).isEqualTo(now); | |||
ComponentDto fileDto = dbClient.componentDao().selectByKey(db.getSession(), "PROJECT_KEY:src/main/java/dir/Foo.java").get(); | |||
assertThat(fileDto.getOrganizationUuid()).isEqualTo(ORGANIZATION_UUID); | |||
assertThat(fileDto.getOrganizationUuid()).isEqualTo(defaultOrganizationProvider.get().getUuid()); | |||
assertThat(fileDto.name()).isEqualTo("Foo.java"); | |||
assertThat(fileDto.longName()).isEqualTo("src/main/java/dir/Foo.java"); | |||
assertThat(fileDto.description()).isNull(); | |||
@@ -184,7 +184,7 @@ public class ReportPersistComponentsStepTest extends BaseStepTest { | |||
assertThat(db.countRowsOfTable("components")).isEqualTo(3); | |||
ComponentDto directoryDto = dbClient.componentDao().selectByKey(db.getSession(), "PROJECT_KEY:src/main/java/dir").get(); | |||
assertThat(directoryDto.getOrganizationUuid()).isEqualTo(ORGANIZATION_UUID); | |||
assertThat(directoryDto.getOrganizationUuid()).isEqualTo(defaultOrganizationProvider.get().getUuid()); | |||
assertThat(directoryDto.name()).isEqualTo("dir"); | |||
assertThat(directoryDto.longName()).isEqualTo("src/main/java/dir"); | |||
assertThat(directoryDto.description()).isNull(); | |||
@@ -201,7 +201,7 @@ public class ReportPersistComponentsStepTest extends BaseStepTest { | |||
assertThat(directoryDto.getCreatedAt()).isEqualTo(now); | |||
ComponentDto fileDto = dbClient.componentDao().selectByKey(db.getSession(), "PROJECT_KEY:src/main/java/dir/Foo.java").get(); | |||
assertThat(fileDto.getOrganizationUuid()).isEqualTo(ORGANIZATION_UUID); | |||
assertThat(fileDto.getOrganizationUuid()).isEqualTo(defaultOrganizationProvider.get().getUuid()); | |||
assertThat(fileDto.name()).isEqualTo("Foo.java"); | |||
assertThat(fileDto.longName()).isEqualTo("src/main/java/dir/Foo.java"); | |||
assertThat(fileDto.description()).isNull(); | |||
@@ -631,7 +631,7 @@ public class ReportPersistComponentsStepTest extends BaseStepTest { | |||
} | |||
private ComponentDto prepareProject(Consumer<ComponentDto> populators) { | |||
ComponentDto dto = db.components().insertPrivateProject(db.organizations().insert(), populators); | |||
ComponentDto dto = db.components().insertPrivateProject(populators); | |||
analysisMetadataHolder.setProject(Project.from(dto)); | |||
analysisMetadataHolder.setBranch(new DefaultBranchImpl()); | |||
return dto; | |||
@@ -642,7 +642,7 @@ public class ReportPersistComponentsStepTest extends BaseStepTest { | |||
} | |||
private ComponentDto prepareBranch(String branchName, Consumer<ComponentDto> populators) { | |||
ComponentDto dto = db.components().insertPrivateProject(db.organizations().insert(), populators); | |||
ComponentDto dto = db.components().insertPrivateProject(populators); | |||
analysisMetadataHolder.setProject(Project.from(dto)); | |||
analysisMetadataHolder.setBranch(new TestBranch(branchName)); | |||
return dto; |
@@ -105,7 +105,6 @@ import static org.sonar.db.component.ComponentTesting.newFileDto; | |||
import static org.sonar.db.component.ComponentTesting.newPrivateProjectDto; | |||
import static org.sonar.db.component.ComponentTesting.newBranchComponent; | |||
import static org.sonar.db.issue.IssueTesting.newIssue; | |||
import static org.sonar.db.organization.OrganizationTesting.newOrganizationDto; | |||
import static org.sonar.db.rule.RuleTesting.newRule; | |||
public class SendIssueNotificationsStepTest extends BaseStepTest { | |||
@@ -252,7 +251,7 @@ public class SendIssueNotificationsStepTest extends BaseStepTest { | |||
@Test | |||
public void send_global_new_issues_notification_on_branch() { | |||
ComponentDto project = newPrivateProjectDto(newOrganizationDto()); | |||
ComponentDto project = newPrivateProjectDto(); | |||
ComponentDto branch = setUpBranch(project, BRANCH); | |||
protoIssueCache.newAppender().append( | |||
createIssue().setType(randomRuleType).setEffort(ISSUE_DURATION).setCreationDate(new Date(ANALYSE_DATE))).close(); | |||
@@ -273,7 +272,7 @@ public class SendIssueNotificationsStepTest extends BaseStepTest { | |||
@Test | |||
public void do_not_send_global_new_issues_notification_on_pull_request() { | |||
ComponentDto project = newPrivateProjectDto(newOrganizationDto()); | |||
ComponentDto project = newPrivateProjectDto(); | |||
ComponentDto branch = setUpBranch(project, PULL_REQUEST); | |||
protoIssueCache.newAppender().append( | |||
createIssue().setType(randomRuleType).setEffort(ISSUE_DURATION).setCreationDate(new Date(ANALYSE_DATE))).close(); | |||
@@ -294,7 +293,7 @@ public class SendIssueNotificationsStepTest extends BaseStepTest { | |||
@Test | |||
public void do_not_send_global_new_issues_notification_on_branch_if_issue_has_been_backdated() { | |||
ComponentDto project = newPrivateProjectDto(newOrganizationDto()); | |||
ComponentDto project = newPrivateProjectDto(); | |||
ComponentDto branch = setUpBranch(project, BRANCH); | |||
protoIssueCache.newAppender().append( | |||
createIssue().setType(randomRuleType).setEffort(ISSUE_DURATION).setCreationDate(new Date(ANALYSE_DATE - FIVE_MINUTES_IN_MS))).close(); | |||
@@ -498,7 +497,7 @@ public class SendIssueNotificationsStepTest extends BaseStepTest { | |||
@Test | |||
public void do_not_send_new_issues_notifications_for_hotspot() { | |||
UserDto user = db.users().insertUser(); | |||
ComponentDto project = newPrivateProjectDto(newOrganizationDto()).setDbKey(PROJECT.getDbKey()).setLongName(PROJECT.getName()); | |||
ComponentDto project = newPrivateProjectDto().setDbKey(PROJECT.getDbKey()).setLongName(PROJECT.getName()); | |||
ComponentDto file = newFileDto(project).setDbKey(FILE.getDbKey()).setLongName(FILE.getName()); | |||
RuleDefinitionDto ruleDefinitionDto = newRule(); | |||
prepareIssue(ANALYSE_DATE, user, project, file, ruleDefinitionDto, RuleType.SECURITY_HOTSPOT); | |||
@@ -520,7 +519,7 @@ public class SendIssueNotificationsStepTest extends BaseStepTest { | |||
private void sendIssueChangeNotification(long issueCreatedAt) { | |||
UserDto user = db.users().insertUser(); | |||
ComponentDto project = newPrivateProjectDto(newOrganizationDto()).setDbKey(PROJECT.getDbKey()).setLongName(PROJECT.getName()); | |||
ComponentDto project = newPrivateProjectDto().setDbKey(PROJECT.getDbKey()).setLongName(PROJECT.getName()); | |||
analysisMetadataHolder.setProject(Project.from(project)); | |||
ComponentDto file = newFileDto(project).setDbKey(FILE.getDbKey()).setLongName(FILE.getName()); | |||
treeRootHolder.setRoot(builder(Type.PROJECT, 2).setKey(project.getDbKey()).setPublicKey(project.getKey()).setName(project.longName()).setUuid(project.uuid()) | |||
@@ -566,7 +565,7 @@ public class SendIssueNotificationsStepTest extends BaseStepTest { | |||
} | |||
private void sendIssueChangeNotificationOnBranch(long issueCreatedAt) { | |||
ComponentDto project = newPrivateProjectDto(newOrganizationDto()); | |||
ComponentDto project = newPrivateProjectDto(); | |||
ComponentDto branch = newBranchComponent(project, newBranchDto(project).setKey(BRANCH_NAME)); | |||
ComponentDto file = newFileDto(branch); | |||
treeRootHolder.setRoot(builder(Type.PROJECT, 2).setKey(branch.getDbKey()).setPublicKey(branch.getKey()).setName(branch.longName()).setUuid(branch.uuid()).addChildren( | |||
@@ -600,7 +599,7 @@ public class SendIssueNotificationsStepTest extends BaseStepTest { | |||
@Test | |||
public void sends_one_issue_change_notification_every_1000_issues() { | |||
UserDto user = db.users().insertUser(); | |||
ComponentDto project = newPrivateProjectDto(newOrganizationDto()).setDbKey(PROJECT.getDbKey()).setLongName(PROJECT.getName()); | |||
ComponentDto project = newPrivateProjectDto().setDbKey(PROJECT.getDbKey()).setLongName(PROJECT.getName()); | |||
ComponentDto file = newFileDto(project).setDbKey(FILE.getDbKey()).setLongName(FILE.getName()); | |||
RuleDefinitionDto ruleDefinitionDto = newRule(); | |||
RuleType randomTypeExceptHotspot = RuleType.values()[nextInt(RuleType.values().length - 1)]; |
@@ -92,8 +92,8 @@ public class ValidateProjectStepTest { | |||
@Test | |||
public void not_fail_if_analysis_date_is_after_last_analysis() { | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(db.organizations().insert(), "ABCD").setDbKey(PROJECT_KEY); | |||
dbClient.componentDao().insert(db.getSession(), project); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto("ABCD").setDbKey(PROJECT_KEY); | |||
db.components().insertComponent(project); | |||
dbClient.snapshotDao().insert(db.getSession(), SnapshotTesting.newAnalysis(project).setCreatedAt(PAST_ANALYSIS_TIME)); | |||
db.getSession().commit(); | |||
@@ -123,8 +123,8 @@ public class ValidateProjectStepTest { | |||
public void fail_if_analysis_date_is_before_last_analysis() { | |||
analysisMetadataHolder.setAnalysisDate(DateUtils.parseDate("2015-01-01")); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(db.organizations().insert(), "ABCD").setDbKey(PROJECT_KEY); | |||
dbClient.componentDao().insert(db.getSession(), project); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto("ABCD").setDbKey(PROJECT_KEY); | |||
db.components().insertComponent(project); | |||
dbClient.snapshotDao().insert(db.getSession(), SnapshotTesting.newAnalysis(project).setCreatedAt(1433131200000L)); // 2015-06-01 | |||
db.getSession().commit(); | |||
@@ -1,83 +0,0 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2020 SonarSource SA | |||
* mailto:info AT sonarsource DOT com | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 3 of the License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public License | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.ce.task.projectanalysis.step; | |||
import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.junit.rules.ExpectedException; | |||
import org.mockito.ArgumentCaptor; | |||
import org.sonar.api.utils.MessageException; | |||
import org.sonar.ce.task.projectanalysis.analysis.MutableAnalysisMetadataHolderRule; | |||
import org.sonar.ce.task.projectanalysis.analysis.Organization; | |||
import org.sonar.ce.task.step.TestComputationStepContext; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.server.organization.BillingValidations; | |||
import org.sonar.server.organization.BillingValidations.BillingValidationsException; | |||
import org.sonar.server.organization.BillingValidationsProxy; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.ArgumentMatchers.any; | |||
import static org.mockito.Mockito.doThrow; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.verify; | |||
import static org.sonar.db.organization.OrganizationTesting.newOrganizationDto; | |||
public class VerifyBillingStepTest { | |||
@Rule | |||
public ExpectedException expectedException = ExpectedException.none(); | |||
private OrganizationDto organization = newOrganizationDto(); | |||
@Rule | |||
public MutableAnalysisMetadataHolderRule analysisMetadata = new MutableAnalysisMetadataHolderRule() | |||
.setOrganization(Organization.from(organization)); | |||
private BillingValidationsProxy validations = mock(BillingValidationsProxy.class); | |||
@Test | |||
public void execute_fails_with_MessageException_when_organization_is_not_allowed_to_execute_analysis() { | |||
doThrow(new BillingValidationsException("This organization cannot execute project analysis")) | |||
.when(validations) | |||
.checkBeforeProjectAnalysis(any(BillingValidations.Organization.class)); | |||
VerifyBillingStep underTest = new VerifyBillingStep(analysisMetadata, validations); | |||
expectedException.expect(MessageException.class); | |||
expectedException.expectMessage("This organization cannot execute project analysis"); | |||
underTest.execute(new TestComputationStepContext()); | |||
} | |||
@Test | |||
public void execute_does_no_fail_when_organization_is_allowed_to_execute_analysis() { | |||
ArgumentCaptor<BillingValidations.Organization> orgCaptor = ArgumentCaptor.forClass(BillingValidations.Organization.class); | |||
VerifyBillingStep underTest = new VerifyBillingStep(analysisMetadata, validations); | |||
underTest.execute(new TestComputationStepContext()); | |||
verify(validations).checkBeforeProjectAnalysis(orgCaptor.capture()); | |||
BillingValidations.Organization calledOrg = orgCaptor.getValue(); | |||
assertThat(calledOrg.getKey()).isEqualTo(organization.getKey()); | |||
assertThat(calledOrg.getUuid()).isEqualTo(organization.getUuid()); | |||
assertThat(calledOrg.getName()).isEqualTo(organization.getName()); | |||
} | |||
} |
@@ -38,7 +38,6 @@ import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.SnapshotDto; | |||
import org.sonar.db.component.SnapshotQuery; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.mock; | |||
@@ -92,10 +91,9 @@ public class ViewsPersistAnalysisStepTest extends BaseStepTest { | |||
@Test | |||
public void persist_analysis() { | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto viewDto = save(newView(organizationDto, "UUID_VIEW").setDbKey("KEY_VIEW")); | |||
ComponentDto viewDto = save(newView("UUID_VIEW").setDbKey("KEY_VIEW")); | |||
save(newSubView(viewDto, "UUID_SUBVIEW", "KEY_SUBVIEW")); | |||
save(newPrivateProjectDto(organizationDto, "proj")); | |||
save(newPrivateProjectDto("proj")); | |||
dbTester.getSession().commit(); | |||
Component projectView = ViewsComponent.builder(PROJECT_VIEW, "KEY_PROJECT_COPY").setUuid("UUID_PROJECT_COPY").build(); | |||
@@ -119,8 +117,7 @@ public class ViewsPersistAnalysisStepTest extends BaseStepTest { | |||
@Test | |||
public void persist_snapshots_with_new_code_period() { | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto viewDto = save(newView(organizationDto, "UUID_VIEW").setDbKey("KEY_VIEW")); | |||
ComponentDto viewDto = save(newView("UUID_VIEW").setDbKey("KEY_VIEW")); | |||
ComponentDto subViewDto = save(newSubView(viewDto, "UUID_SUBVIEW", "KEY_SUBVIEW")); | |||
dbTester.getSession().commit(); | |||
@@ -139,8 +136,7 @@ public class ViewsPersistAnalysisStepTest extends BaseStepTest { | |||
} | |||
private ComponentDto save(ComponentDto componentDto) { | |||
dbClient.componentDao().insert(dbTester.getSession(), componentDto); | |||
return componentDto; | |||
return dbTester.components().insertComponent(componentDto); | |||
} | |||
private SnapshotDto getUnprocessedSnapshot(String componentUuid) { |
@@ -48,7 +48,8 @@ import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.server.organization.DefaultOrganizationProvider; | |||
import org.sonar.server.organization.TestDefaultOrganizationProvider; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.RETURNS_DEEP_STUBS; | |||
@@ -76,22 +77,22 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
private static final String PROJECT_VIEW_1_KEY = "PV1_KEY"; | |||
private static final String PROJECT_VIEW_1_NAME = "PV1_NAME"; | |||
private static final String PROJECT_VIEW_1_UUID = "PV1_UUID"; | |||
private static final String ORGANIZATION_UUID = "org1"; | |||
private static final String QUALITY_GATE_UUID = "qg1"; | |||
@Rule | |||
public DbTester dbTester = DbTester.create(System2.INSTANCE); | |||
public DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(dbTester); | |||
@Rule | |||
public TreeRootHolderRule treeRootHolder = new TreeRootHolderRule(); | |||
@Rule | |||
public AnalysisMetadataHolderRule analysisMetadataHolder = new AnalysisMetadataHolderRule() | |||
.setOrganizationUuid(ORGANIZATION_UUID, QUALITY_GATE_UUID); | |||
public AnalysisMetadataHolderRule analysisMetadataHolder = new AnalysisMetadataHolderRule(); | |||
private System2 system2 = mock(System2.class); | |||
private DbClient dbClient = dbTester.getDbClient(); | |||
private final System2 system2 = mock(System2.class); | |||
private final DbClient dbClient = dbTester.getDbClient(); | |||
private Date now; | |||
private ComponentDbTester componentDbTester = new ComponentDbTester(dbTester); | |||
private MutableDisabledComponentsHolder disabledComponentsHolder = mock(MutableDisabledComponentsHolder.class, RETURNS_DEEP_STUBS); | |||
private final ComponentDbTester componentDbTester = new ComponentDbTester(dbTester); | |||
private final MutableDisabledComponentsHolder disabledComponentsHolder = mock(MutableDisabledComponentsHolder.class, RETURNS_DEEP_STUBS); | |||
private PersistComponentsStep underTest; | |||
@Before | |||
@@ -102,7 +103,8 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
analysisMetadataHolder.setBranch(new DefaultBranchImpl()); | |||
BranchPersister branchPersister = mock(BranchPersister.class); | |||
ProjectPersister projectPersister = mock(ProjectPersister.class); | |||
underTest = new PersistComponentsStep(dbClient, treeRootHolder, system2, disabledComponentsHolder, analysisMetadataHolder, branchPersister, projectPersister); | |||
underTest = new PersistComponentsStep(dbClient, treeRootHolder, system2, disabledComponentsHolder, analysisMetadataHolder, branchPersister, projectPersister, | |||
defaultOrganizationProvider); | |||
} | |||
@Override | |||
@@ -125,7 +127,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
@Test | |||
public void persist_existing_empty_view() { | |||
// most of the time view already exists since its supposed to be created when config is uploaded | |||
persistComponents(newViewDto(dbTester.organizations().insert())); | |||
persistComponents(newViewDto()); | |||
treeRootHolder.setRoot(createViewBuilder(PORTFOLIO).build()); | |||
@@ -138,7 +140,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
@Test | |||
public void persist_view_with_projectView() { | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(dbTester.organizations().insert()); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(); | |||
persistComponents(project); | |||
treeRootHolder.setRoot( | |||
@@ -159,7 +161,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
@Test | |||
public void persist_application_with_projectView() { | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(dbTester.organizations().insert()); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(); | |||
persistComponents(project); | |||
treeRootHolder.setRoot( | |||
@@ -215,7 +217,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
@Test | |||
public void persist_existing_empty_subview_under_existing_view() { | |||
ComponentDto viewDto = newViewDto(dbTester.organizations().insert()); | |||
ComponentDto viewDto = newViewDto(); | |||
persistComponents(viewDto); | |||
persistComponents(ComponentTesting.newSubView(viewDto, SUBVIEW_1_UUID, SUBVIEW_1_KEY).setName(SUBVIEW_1_NAME)); | |||
@@ -235,7 +237,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
@Test | |||
public void persist_empty_subview_under_existing_view() { | |||
persistComponents(newViewDto(dbTester.organizations().insert())); | |||
persistComponents(newViewDto()); | |||
treeRootHolder.setRoot( | |||
createViewBuilder(PORTFOLIO) | |||
@@ -253,7 +255,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
@Test | |||
public void persist_project_view_under_subview() { | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(dbTester.organizations().insert()); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(); | |||
persistComponents(project); | |||
treeRootHolder.setRoot( | |||
@@ -279,7 +281,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
@Test | |||
public void update_view_name_and_longName() { | |||
ComponentDto viewDto = newViewDto(dbTester.organizations().insert()).setLongName("another long name").setCreatedAt(now); | |||
ComponentDto viewDto = newViewDto().setLongName("another long name").setCreatedAt(now); | |||
persistComponents(viewDto); | |||
treeRootHolder.setRoot(createViewBuilder(PORTFOLIO).build()); | |||
@@ -297,12 +299,10 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
@Test | |||
public void update_project_view() { | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto view = newViewDto(organizationDto); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(organizationDto); | |||
ComponentDto view = newViewDto(); | |||
ComponentDto project = ComponentTesting.newPrivateProjectDto(); | |||
persistComponents(view, project); | |||
ComponentDto projectView = ComponentTesting.newProjectCopy(PROJECT_VIEW_1_UUID, project, view) | |||
.setOrganizationUuid(ORGANIZATION_UUID) | |||
.setDbKey(PROJECT_VIEW_1_KEY) | |||
.setName("Old name") | |||
.setCreatedAt(now); | |||
@@ -326,10 +326,9 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
@Test | |||
public void update_copy_component_uuid_of_project_view() { | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto view = newViewDto(organizationDto); | |||
ComponentDto project1 = newPrivateProjectDto(organizationDto, "P1"); | |||
ComponentDto project2 = newPrivateProjectDto(organizationDto, "P2"); | |||
ComponentDto view = newViewDto(); | |||
ComponentDto project1 = newPrivateProjectDto("P1"); | |||
ComponentDto project2 = newPrivateProjectDto("P2"); | |||
persistComponents(view, project1, project2); | |||
// Project view in DB is associated to project1 | |||
@@ -357,8 +356,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
@Test | |||
public void update_copy_component_uuid_of_sub_view() { | |||
OrganizationDto organizationDto = dbTester.organizations().insert(); | |||
ComponentDto view = newViewDto(organizationDto); | |||
ComponentDto view = newViewDto(); | |||
ComponentDto subView = newSubViewDto(view).setCopyComponentUuid("OLD_COPY"); | |||
persistComponents(view, subView); | |||
@@ -400,8 +398,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
public void persists_new_components_with_visibility_of_root_in_db_out_of_functional_transaction() { | |||
boolean isRootPrivate = new Random().nextBoolean(); | |||
ComponentDto project = dbTester.components().insertComponent(ComponentTesting.newPrivateProjectDto(dbTester.organizations().insert())); | |||
OrganizationDto organization = dbTester.organizations().insert(); | |||
ComponentDto view = newViewDto(organization).setUuid(VIEW_UUID).setDbKey(VIEW_KEY).setName("View").setPrivate(isRootPrivate); | |||
ComponentDto view = newViewDto().setUuid(VIEW_UUID).setDbKey(VIEW_KEY).setName("View").setPrivate(isRootPrivate); | |||
dbTester.components().insertComponent(view); | |||
treeRootHolder.setRoot( | |||
createViewBuilder(PORTFOLIO) | |||
@@ -424,8 +421,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
public void persists_existing_components_with_visibility_of_root_in_db_out_of_functional_transaction() { | |||
boolean isRootPrivate = new Random().nextBoolean(); | |||
ComponentDto project = dbTester.components().insertComponent(ComponentTesting.newPrivateProjectDto(dbTester.organizations().insert())); | |||
OrganizationDto organization = dbTester.organizations().insert(); | |||
ComponentDto view = newViewDto(organization).setUuid(VIEW_UUID).setDbKey(VIEW_KEY).setName("View").setPrivate(isRootPrivate); | |||
ComponentDto view = newViewDto().setUuid(VIEW_UUID).setDbKey(VIEW_KEY).setName("View").setPrivate(isRootPrivate); | |||
dbTester.components().insertComponent(view); | |||
ComponentDto subView = newSubView(view).setUuid("BCDE").setDbKey("MODULE").setPrivate(!isRootPrivate); | |||
dbTester.components().insertComponent(subView); | |||
@@ -487,9 +483,9 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
assertThat(getComponentFromDb(componentKey).getCreatedAt()).isNotEqualTo(now); | |||
} | |||
private ComponentDto newViewDto(OrganizationDto organizationDto) { | |||
return ComponentTesting.newView(organizationDto, VIEW_UUID) | |||
.setOrganizationUuid(ORGANIZATION_UUID) | |||
private ComponentDto newViewDto() { | |||
return ComponentTesting.newView(VIEW_UUID) | |||
.setOrganizationUuid(defaultOrganizationProvider.get().getUuid()) | |||
.setDbKey(VIEW_KEY) | |||
.setName(VIEW_NAME); | |||
} | |||
@@ -503,7 +499,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
* Assertions to verify the DTO created from {@link #createViewBuilder(ViewAttributes.Type)} ()} | |||
*/ | |||
private void assertDtoIsView(ComponentDto dto) { | |||
assertThat(dto.getOrganizationUuid()).isEqualTo(ORGANIZATION_UUID); | |||
assertThat(dto.getOrganizationUuid()).isEqualTo(defaultOrganizationProvider.get().getUuid()); | |||
assertThat(dto.name()).isEqualTo(VIEW_NAME); | |||
assertThat(dto.longName()).isEqualTo(VIEW_NAME); | |||
assertThat(dto.description()).isEqualTo(VIEW_DESCRIPTION); | |||
@@ -523,7 +519,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
* Assertions to verify the DTO created from {@link #createViewBuilder(ViewAttributes.Type)} ()} | |||
*/ | |||
private void assertDtoIsApplication(ComponentDto dto) { | |||
assertThat(dto.getOrganizationUuid()).isEqualTo(ORGANIZATION_UUID); | |||
assertThat(dto.getOrganizationUuid()).isEqualTo(defaultOrganizationProvider.get().getUuid()); | |||
assertThat(dto.name()).isEqualTo(VIEW_NAME); | |||
assertThat(dto.longName()).isEqualTo(VIEW_NAME); | |||
assertThat(dto.description()).isEqualTo(VIEW_DESCRIPTION); | |||
@@ -543,7 +539,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
* Assertions to verify the DTO created from {@link #createProjectView1Builder(ComponentDto, Long)} | |||
*/ | |||
private void assertDtoIsSubView1(ComponentDto viewDto, ComponentDto sv1Dto) { | |||
assertThat(sv1Dto.getOrganizationUuid()).isEqualTo(ORGANIZATION_UUID); | |||
assertThat(sv1Dto.getOrganizationUuid()).isEqualTo(defaultOrganizationProvider.get().getUuid()); | |||
assertThat(sv1Dto.name()).isEqualTo(SUBVIEW_1_NAME); | |||
assertThat(sv1Dto.longName()).isEqualTo(SUBVIEW_1_NAME); | |||
assertThat(sv1Dto.description()).isEqualTo(SUBVIEW_1_DESCRIPTION); | |||
@@ -560,7 +556,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { | |||
} | |||
private void assertDtoIsProjectView1(ComponentDto pv1Dto, ComponentDto viewDto, ComponentDto parentViewDto, ComponentDto project) { | |||
assertThat(pv1Dto.getOrganizationUuid()).isEqualTo(ORGANIZATION_UUID); | |||
assertThat(pv1Dto.getOrganizationUuid()).isEqualTo(defaultOrganizationProvider.get().getUuid()); | |||
assertThat(pv1Dto.name()).isEqualTo(PROJECT_VIEW_1_NAME); | |||
assertThat(pv1Dto.longName()).isEqualTo(PROJECT_VIEW_1_NAME); | |||
assertThat(pv1Dto.description()).isNull(); |
@@ -41,7 +41,6 @@ public class IgnoreOrphanBranchStepTest { | |||
private CeTask.Component component = new CeTask.Component(BRANCH_UUID, "component key", "component name"); | |||
private CeTask ceTask = new CeTask.Builder() | |||
.setOrganizationUuid("organizationUuid") | |||
.setType("type") | |||
.setUuid("uuid") | |||
.setComponent(component) | |||
@@ -90,7 +89,6 @@ public class IgnoreOrphanBranchStepTest { | |||
@Test | |||
public void fail_if_missing_main_component_in_task() { | |||
CeTask ceTask = new CeTask.Builder() | |||
.setOrganizationUuid("organizationUuid") | |||
.setType("type") | |||
.setUuid("uuid") | |||
.setComponent(null) |
@@ -52,7 +52,6 @@ public class IndexIssuesStepTest { | |||
private CeTask.Component component = new CeTask.Component(BRANCH_UUID, "component key", "component name"); | |||
private CeTask ceTask = new CeTask.Builder() | |||
.setOrganizationUuid("organizationUuid") | |||
.setType("type") | |||
.setUuid("uuid") | |||
.setComponent(component) | |||
@@ -106,7 +105,6 @@ public class IndexIssuesStepTest { | |||
@Test | |||
public void fail_if_missing_component_in_task() { | |||
CeTask ceTask = new CeTask.Builder() | |||
.setOrganizationUuid("organizationUuid") | |||
.setType("type") | |||
.setUuid("uuid") | |||
.setComponent(null) |
@@ -47,7 +47,6 @@ public class IssueSyncTaskProcessorTest { | |||
@Test | |||
public void newContainerPopulator() { | |||
CeTask task = new CeTask.Builder() | |||
.setOrganizationUuid("ORGANIZATION_UUID") | |||
.setUuid("TASK_UUID") | |||
.setType("Type") | |||
.build(); |
@@ -27,19 +27,15 @@ import javax.annotation.Nullable; | |||
import org.junit.rules.ExternalResource; | |||
import org.sonar.ce.task.util.InitializedProperty; | |||
import org.sonar.db.component.BranchType; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.server.project.Project; | |||
import org.sonar.server.qualityprofile.QualityProfile; | |||
import static com.google.common.base.Preconditions.checkNotNull; | |||
import static com.google.common.base.Preconditions.checkState; | |||
import static java.util.Objects.requireNonNull; | |||
import static org.apache.commons.lang.StringUtils.defaultIfBlank; | |||
public class AnalysisMetadataHolderRule extends ExternalResource implements MutableAnalysisMetadataHolder { | |||
private final InitializedProperty<Boolean> organizationsEnabled = new InitializedProperty<>(); | |||
private final InitializedProperty<Organization> organization = new InitializedProperty<>(); | |||
private final InitializedProperty<String> uuid = new InitializedProperty<>(); | |||
private final InitializedProperty<Long> analysisDate = new InitializedProperty<>(); | |||
private final InitializedProperty<Long> forkDate = new InitializedProperty<>(); | |||
@@ -53,38 +49,6 @@ public class AnalysisMetadataHolderRule extends ExternalResource implements Muta | |||
private final InitializedProperty<Map<String, ScannerPlugin>> pluginsByKey = new InitializedProperty<>(); | |||
private final InitializedProperty<String> scmRevision = new InitializedProperty<>(); | |||
@Override | |||
public AnalysisMetadataHolderRule setOrganizationsEnabled(boolean isOrganizationsEnabled) { | |||
this.organizationsEnabled.setProperty(isOrganizationsEnabled); | |||
return this; | |||
} | |||
@Override | |||
public boolean isOrganizationsEnabled() { | |||
checkState(organizationsEnabled.isInitialized(), "Organizations enabled flag has not been set"); | |||
return organizationsEnabled.getProperty(); | |||
} | |||
@Override | |||
public AnalysisMetadataHolderRule setOrganization(Organization organization) { | |||
requireNonNull(organization, "organization can't be null"); | |||
this.organization.setProperty(organization); | |||
return this; | |||
} | |||
public AnalysisMetadataHolderRule setOrganizationUuid(String uuid, String defaultQualityGateUuid) { | |||
requireNonNull(uuid, "organization uuid can't be null"); | |||
this.organization | |||
.setProperty(Organization.from(new OrganizationDto().setUuid(uuid).setKey("key_" + uuid).setName("name_" + uuid).setDefaultQualityGateUuid(defaultQualityGateUuid))); | |||
return this; | |||
} | |||
@Override | |||
public Organization getOrganization() { | |||
checkState(organization.isInitialized(), "Organization has not been set"); | |||
return this.organization.getProperty(); | |||
} | |||
@Override | |||
public AnalysisMetadataHolderRule setUuid(String s) { | |||
checkNotNull(s, "UUID must not be null"); | |||
@@ -110,7 +74,8 @@ public class AnalysisMetadataHolderRule extends ExternalResource implements Muta | |||
return this; | |||
} | |||
@Override public MutableAnalysisMetadataHolder setForkDate(@Nullable Long date) { | |||
@Override | |||
public MutableAnalysisMetadataHolder setForkDate(@Nullable Long date) { | |||
forkDate.setProperty(date); | |||
return this; | |||
} |
@@ -32,7 +32,7 @@ import static org.mockito.Mockito.mock; | |||
public class MutableAnalysisMetadataHolderRule extends ExternalResource implements MutableAnalysisMetadataHolder { | |||
private PlatformEditionProvider editionProvider = mock(PlatformEditionProvider.class); | |||
private final PlatformEditionProvider editionProvider = mock(PlatformEditionProvider.class); | |||
private AnalysisMetadataHolderImpl delegate = new AnalysisMetadataHolderImpl(editionProvider); | |||
@Override | |||
@@ -40,28 +40,6 @@ public class MutableAnalysisMetadataHolderRule extends ExternalResource implemen | |||
delegate = new AnalysisMetadataHolderImpl(editionProvider); | |||
} | |||
@Override | |||
public boolean isOrganizationsEnabled() { | |||
return delegate.isOrganizationsEnabled(); | |||
} | |||
@Override | |||
public MutableAnalysisMetadataHolderRule setOrganizationsEnabled(boolean isOrganizationsEnabled) { | |||
delegate.setOrganizationsEnabled(isOrganizationsEnabled); | |||
return this; | |||
} | |||
@Override | |||
public MutableAnalysisMetadataHolderRule setOrganization(Organization organization) { | |||
delegate.setOrganization(organization); | |||
return this; | |||
} | |||
@Override | |||
public Organization getOrganization() { | |||
return delegate.getOrganization(); | |||
} | |||
public MutableAnalysisMetadataHolderRule setUuid(String s) { | |||
delegate.setUuid(s); | |||
return this; | |||
@@ -77,7 +55,8 @@ public class MutableAnalysisMetadataHolderRule extends ExternalResource implemen | |||
return this; | |||
} | |||
@Override public MutableAnalysisMetadataHolder setForkDate(@Nullable Long date) { | |||
@Override | |||
public MutableAnalysisMetadataHolder setForkDate(@Nullable Long date) { | |||
return delegate.setForkDate(date); | |||
} | |||
@@ -37,7 +37,6 @@ import static java.util.Objects.requireNonNull; | |||
@Immutable | |||
public class CeTask { | |||
private final String organizationUuid; | |||
private final String type; | |||
private final String uuid; | |||
private final Component component; | |||
@@ -46,7 +45,6 @@ public class CeTask { | |||
private final Map<String, String> characteristics; | |||
private CeTask(Builder builder) { | |||
this.organizationUuid = requireNonNull(emptyToNull(builder.organizationUuid), "organizationUuid can't be null nor empty"); | |||
this.uuid = requireNonNull(emptyToNull(builder.uuid), "uuid can't be null nor empty"); | |||
this.type = requireNonNull(emptyToNull(builder.type), "type can't be null nor empty"); | |||
checkArgument((builder.component == null) == (builder.mainComponent == null), | |||
@@ -106,10 +104,6 @@ public class CeTask { | |||
} | |||
} | |||
public String getOrganizationUuid() { | |||
return organizationUuid; | |||
} | |||
public String getUuid() { | |||
return uuid; | |||
} | |||
@@ -138,7 +132,6 @@ public class CeTask { | |||
@Override | |||
public String toString() { | |||
return MoreObjects.toStringHelper(this) | |||
.add("organizationUuid", organizationUuid) | |||
.add("type", type) | |||
.add("uuid", uuid) | |||
.add("component", component) | |||
@@ -165,7 +158,6 @@ public class CeTask { | |||
} | |||
public static final class Builder { | |||
private String organizationUuid; | |||
private String uuid; | |||
private String type; | |||
private Component component; | |||
@@ -173,16 +165,6 @@ public class CeTask { | |||
private User submitter; | |||
private Map<String, String> characteristics; | |||
public Builder setOrganizationUuid(String organizationUuid) { | |||
this.organizationUuid = organizationUuid; | |||
return this; | |||
} | |||
// FIXME remove this method when organization support is added to the Compute Engine queue | |||
public boolean hasOrganizationUuid() { | |||
return organizationUuid != null; | |||
} | |||
public Builder setUuid(String uuid) { | |||
this.uuid = uuid; | |||
return this; |
@@ -38,68 +38,9 @@ public class CeTaskTest { | |||
private CeTask.Builder underTest = new CeTask.Builder(); | |||
@Test | |||
public void build_fails_with_NPE_if_organizationUuid_is_null() { | |||
expectedException.expect(NullPointerException.class); | |||
expectedException.expectMessage("organizationUuid can't be null nor empty"); | |||
underTest.build(); | |||
} | |||
@Test | |||
public void build_fails_with_NPE_if_organizationUuid_is_empty() { | |||
underTest.setOrganizationUuid(""); | |||
expectedException.expect(NullPointerException.class); | |||
expectedException.expectMessage("organizationUuid can't be null nor empty"); | |||
underTest.build(); | |||
} | |||
@Test | |||
public void build_fails_with_NPE_if_uid_is_null() { | |||
underTest.setOrganizationUuid("org1"); | |||
expectedException.expect(NullPointerException.class); | |||
expectedException.expectMessage("uuid can't be null nor empty"); | |||
underTest.build(); | |||
} | |||
@Test | |||
public void build_fails_with_NPE_if_uuid_is_empty() { | |||
underTest.setOrganizationUuid("org1").setUuid(""); | |||
expectedException.expect(NullPointerException.class); | |||
expectedException.expectMessage("uuid can't be null nor empty"); | |||
underTest.build(); | |||
} | |||
@Test | |||
public void build_fails_with_NPE_if_type_is_null() { | |||
underTest.setOrganizationUuid("org1").setUuid("uuid"); | |||
expectedException.expect(NullPointerException.class); | |||
expectedException.expectMessage("type can't be null nor empty"); | |||
underTest.build(); | |||
} | |||
@Test | |||
public void build_fails_with_NPE_if_type_is_empty() { | |||
underTest.setOrganizationUuid("org1").setUuid("uuid").setType(""); | |||
expectedException.expect(NullPointerException.class); | |||
expectedException.expectMessage("type can't be null nor empty"); | |||
underTest.build(); | |||
} | |||
@Test | |||
@UseDataProvider("oneAndOnlyOneOfComponentAndMainComponent") | |||
public void build_fails_with_IAE_if_only_one_of_component_and_main_component_is_non_null(CeTask.Component component, CeTask.Component mainComponent) { | |||
underTest.setOrganizationUuid("org1"); | |||
underTest.setType("TYPE_1"); | |||
underTest.setUuid("UUID_1"); | |||
underTest.setComponent(component); | |||
@@ -125,7 +66,6 @@ public class CeTaskTest { | |||
CeTask.Component component = new CeTask.Component("COMPONENT_UUID_1", "COMPONENT_KEY_1", "The component"); | |||
CeTask.Component mainComponent = new CeTask.Component("MAIN_COMPONENT_UUID_1", "MAIN_COMPONENT_KEY_1", "The main component"); | |||
CeTask.User submitter = new CeTask.User("UUID_USER_1", "LOGIN_1"); | |||
underTest.setOrganizationUuid("org1"); | |||
underTest.setType("TYPE_1"); | |||
underTest.setUuid("UUID_1"); | |||
underTest.setSubmitter(submitter); | |||
@@ -135,7 +75,6 @@ public class CeTaskTest { | |||
CeTask task = underTest.build(); | |||
assertThat(task.getOrganizationUuid()).isEqualTo("org1"); | |||
assertThat(task.getUuid()).isEqualTo("UUID_1"); | |||
assertThat(task.getType()).isEqualTo("TYPE_1"); | |||
assertThat(task.getSubmitter()).isEqualTo(submitter); | |||
@@ -148,7 +87,6 @@ public class CeTaskTest { | |||
public void verify_toString() { | |||
CeTask.Component component = new CeTask.Component("COMPONENT_UUID_1", "COMPONENT_KEY_1", "The component"); | |||
CeTask.Component mainComponent = new CeTask.Component("MAIN_COMPONENT_UUID_1", "MAIN_COMPONENT_KEY_1", "The main component"); | |||
underTest.setOrganizationUuid("org1"); | |||
underTest.setType("TYPE_1"); | |||
underTest.setUuid("UUID_1"); | |||
underTest.setComponent(component); | |||
@@ -159,20 +97,18 @@ public class CeTaskTest { | |||
CeTask task = underTest.build(); | |||
System.out.println(task.toString()); | |||
assertThat(task.toString()).isEqualTo("CeTask{" + | |||
"organizationUuid=org1, " + | |||
"type=TYPE_1, " + | |||
"uuid=UUID_1, " + | |||
"component=Component{uuid='COMPONENT_UUID_1', key='COMPONENT_KEY_1', name='The component'}, " + | |||
"mainComponent=Component{uuid='MAIN_COMPONENT_UUID_1', key='MAIN_COMPONENT_KEY_1', name='The main component'}, " + | |||
"submitter=User{uuid='UUID_USER_1', login='LOGIN_1'}" + | |||
"}" | |||
); | |||
assertThat(task).hasToString("CeTask{" + | |||
"type=TYPE_1, " + | |||
"uuid=UUID_1, " + | |||
"component=Component{uuid='COMPONENT_UUID_1', key='COMPONENT_KEY_1', name='The component'}, " + | |||
"mainComponent=Component{uuid='MAIN_COMPONENT_UUID_1', key='MAIN_COMPONENT_KEY_1', name='The main component'}, " + | |||
"submitter=User{uuid='UUID_USER_1', login='LOGIN_1'}" + | |||
"}"); | |||
} | |||
@Test | |||
public void empty_in_submitterLogin_is_considered_as_null() { | |||
CeTask ceTask = underTest.setOrganizationUuid("org1").setUuid("uuid").setType("type") | |||
CeTask ceTask = underTest.setUuid("uuid").setType("type") | |||
.setSubmitter(new CeTask.User("USER_ID", "")) | |||
.build(); | |||
@@ -181,10 +117,10 @@ public class CeTaskTest { | |||
@Test | |||
public void equals_and_hashCode_on_uuid() { | |||
underTest.setOrganizationUuid("org1").setType("TYPE_1").setUuid("UUID_1"); | |||
underTest.setType("TYPE_1").setUuid("UUID_1"); | |||
CeTask task1 = underTest.build(); | |||
CeTask task1bis = underTest.build(); | |||
CeTask task2 = new CeTask.Builder().setOrganizationUuid("org1").setType("TYPE_1").setUuid("UUID_2").build(); | |||
CeTask task2 = new CeTask.Builder().setType("TYPE_1").setUuid("UUID_2").build(); | |||
assertThat(task1.equals(task1)).isTrue(); | |||
assertThat(task1.equals(task1bis)).isTrue(); | |||
@@ -195,7 +131,7 @@ public class CeTaskTest { | |||
@Test | |||
public void setCharacteristics_null_is_considered_as_empty() { | |||
CeTask task = underTest.setOrganizationUuid("org1").setType("TYPE_1").setUuid("UUID_1") | |||
CeTask task = underTest.setType("TYPE_1").setUuid("UUID_1") | |||
.setCharacteristics(null) | |||
.build(); | |||
assertThat(task.getCharacteristics()).isEmpty(); |
@@ -58,7 +58,6 @@ public class CeTaskMessagesImplTest { | |||
private CeTask ceTask = new CeTask.Builder() | |||
.setUuid(taskUuid) | |||
.setOrganizationUuid(randomAlphabetic(10)) | |||
.setType(randomAlphabetic(5)) | |||
.build(); | |||
@@ -76,8 +76,8 @@ import org.sonar.core.platform.ComponentContainer; | |||
import org.sonar.core.platform.EditionProvider; | |||
import org.sonar.core.platform.Module; | |||
import org.sonar.core.platform.PlatformEditionProvider; | |||
import org.sonar.core.platform.PluginClassloaderFactory; | |||
import org.sonar.core.platform.PluginClassLoader; | |||
import org.sonar.core.platform.PluginClassloaderFactory; | |||
import org.sonar.core.util.UuidFactoryImpl; | |||
import org.sonar.db.DBSessionsImpl; | |||
import org.sonar.db.DaoModule; | |||
@@ -115,9 +115,7 @@ import org.sonar.server.metric.UnanalyzedLanguageMetrics; | |||
import org.sonar.server.notification.DefaultNotificationManager; | |||
import org.sonar.server.notification.NotificationService; | |||
import org.sonar.server.notification.email.EmailNotificationChannel; | |||
import org.sonar.server.organization.BillingValidationsProxyImpl; | |||
import org.sonar.server.organization.DefaultOrganizationProviderImpl; | |||
import org.sonar.server.organization.OrganizationFlagsImpl; | |||
import org.sonar.server.platform.OfficialDistribution; | |||
import org.sonar.server.platform.ServerFileSystemImpl; | |||
import org.sonar.server.platform.ServerImpl; | |||
@@ -355,15 +353,13 @@ public class ComputeEngineContainerImpl implements ComputeEngineContainer { | |||
UriReader.class, | |||
ServerImpl.class, | |||
DefaultOrganizationProviderImpl.class, | |||
SynchronousAsyncExecution.class, | |||
OrganizationFlagsImpl.class); | |||
SynchronousAsyncExecution.class); | |||
} | |||
private static void populateLevel4(ComponentContainer container, Props props) { | |||
container.add( | |||
ResourceTypes.class, | |||
DefaultResourceTypes.get(), | |||
BillingValidationsProxyImpl.class, | |||
// quality profile | |||
ActiveRuleIndexer.class, |
@@ -47,7 +47,6 @@ import org.sonar.db.ce.CeQueueDao; | |||
import org.sonar.db.ce.CeQueueDto; | |||
import org.sonar.db.ce.CeTaskCharacteristicDto; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.server.organization.DefaultOrganizationProvider; | |||
import static com.google.common.base.Preconditions.checkArgument; | |||
import static java.lang.String.format; | |||
@@ -65,8 +64,8 @@ public class InternalCeQueueImpl extends CeQueueImpl implements InternalCeQueue | |||
private final ComputeEngineStatus computeEngineStatus; | |||
public InternalCeQueueImpl(System2 system2, DbClient dbClient, UuidFactory uuidFactory, CEQueueStatus queueStatus, | |||
DefaultOrganizationProvider defaultOrganizationProvider, ComputeEngineStatus computeEngineStatus) { | |||
super(system2, dbClient, uuidFactory, defaultOrganizationProvider); | |||
ComputeEngineStatus computeEngineStatus) { | |||
super(system2, dbClient, uuidFactory); | |||
this.dbClient = dbClient; | |||
this.queueStatus = queueStatus; | |||
this.computeEngineStatus = computeEngineStatus; |
@@ -45,8 +45,6 @@ import org.sonar.db.ce.CeQueueDto; | |||
import org.sonar.db.ce.CeTaskTypes; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.db.organization.OrganizationTesting; | |||
import org.sonar.server.notification.NotificationService; | |||
import static java.util.Collections.singleton; | |||
@@ -151,15 +149,14 @@ public class ReportAnalysisFailureNotificationExecutionListenerTest { | |||
@Test | |||
public void onEnd_fails_with_IAE_if_component_is_not_a_project() { | |||
when(ceTaskMock.getType()).thenReturn(CeTaskTypes.REPORT); | |||
OrganizationDto organization = OrganizationTesting.newOrganizationDto(); | |||
ComponentDto project = dbTester.components().insertPrivateProject(); | |||
ComponentDto module = dbTester.components().insertComponent(newModuleDto(project)); | |||
ComponentDto directory = dbTester.components().insertComponent(newDirectory(module, randomAlphanumeric(12))); | |||
ComponentDto file = dbTester.components().insertComponent(ComponentTesting.newFileDto(project)); | |||
ComponentDto view = dbTester.components().insertComponent(ComponentTesting.newView(organization)); | |||
ComponentDto view = dbTester.components().insertComponent(ComponentTesting.newView()); | |||
ComponentDto subView = dbTester.components().insertComponent(ComponentTesting.newSubView(view)); | |||
ComponentDto projectCopy = dbTester.components().insertComponent(ComponentTesting.newProjectCopy(project, subView)); | |||
ComponentDto application = dbTester.components().insertComponent(ComponentTesting.newApplication(organization)); | |||
ComponentDto application = dbTester.components().insertComponent(ComponentTesting.newApplication()); | |||
Arrays.asList(module, directory, file, view, subView, projectCopy, application) | |||
.forEach(component -> { |
@@ -47,10 +47,7 @@ import org.sonar.db.ce.CeQueueTesting; | |||
import org.sonar.db.ce.CeTaskTypes; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.db.organization.OrganizationDto; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.server.organization.DefaultOrganization; | |||
import org.sonar.server.organization.DefaultOrganizationProvider; | |||
import static java.util.Arrays.asList; | |||
import static java.util.Collections.emptyMap; | |||
@@ -81,20 +78,11 @@ public class InternalCeQueueImplTest { | |||
private UuidFactory uuidFactory = UuidFactoryImpl.INSTANCE; | |||
private CEQueueStatus queueStatus = new CEQueueStatusImpl(db.getDbClient(), mock(System2.class)); | |||
private DefaultOrganizationProvider defaultOrganizationProvider = mock(DefaultOrganizationProvider.class); | |||
private ComputeEngineStatus computeEngineStatus = mock(ComputeEngineStatus.class); | |||
private InternalCeQueue underTest = new InternalCeQueueImpl(system2, db.getDbClient(), uuidFactory, queueStatus, defaultOrganizationProvider, computeEngineStatus); | |||
private InternalCeQueue underTest = new InternalCeQueueImpl(system2, db.getDbClient(), uuidFactory, queueStatus, computeEngineStatus); | |||
@Before | |||
public void setUp() { | |||
OrganizationDto defaultOrganization = db.getDefaultOrganization(); | |||
when(defaultOrganizationProvider.get()).thenReturn(DefaultOrganization.newBuilder() | |||
.setUuid(defaultOrganization.getUuid()) | |||
.setKey(defaultOrganization.getKey()) | |||
.setName(defaultOrganization.getName()) | |||
.setCreatedAt(defaultOrganization.getCreatedAt()) | |||
.setUpdatedAt(defaultOrganization.getUpdatedAt()) | |||
.build()); | |||
when(computeEngineStatus.getStatus()).thenReturn(STARTED); | |||
} | |||
@@ -259,7 +247,7 @@ public class InternalCeQueueImplTest { | |||
db.getDbClient().ceQueueDao().deleteByUuid(db.getSession(), task.getUuid()); | |||
db.commit(); | |||
InternalCeQueueImpl underTest = new InternalCeQueueImpl(system2, db.getDbClient(), null, queueStatus, null, null); | |||
InternalCeQueueImpl underTest = new InternalCeQueueImpl(system2, db.getDbClient(), null, queueStatus, null); | |||
try { | |||
underTest.remove(task, CeActivityDto.Status.SUCCESS, null, null); | |||
@@ -276,7 +264,7 @@ public class InternalCeQueueImplTest { | |||
CeTask task = submit(CeTaskTypes.REPORT, newProjectDto("PROJECT_1")); | |||
db.getDbClient().ceQueueDao().deleteByUuid(db.getSession(), task.getUuid()); | |||
db.commit(); | |||
InternalCeQueueImpl underTest = new InternalCeQueueImpl(system2, db.getDbClient(), null, queueStatusMock, null, null); | |||
InternalCeQueueImpl underTest = new InternalCeQueueImpl(system2, db.getDbClient(), null, queueStatusMock, null); | |||
try { | |||
underTest.remove(task, CeActivityDto.Status.FAILED, null, null); | |||
@@ -293,7 +281,7 @@ public class InternalCeQueueImplTest { | |||
CeTask task = submit(CeTaskTypes.REPORT, newProjectDto("PROJECT_1")); | |||
db.executeUpdateSql("update ce_queue set status = 'PENDING', started_at = 123 where uuid = '" + task.getUuid() + "'"); | |||
db.commit(); | |||
InternalCeQueueImpl underTest = new InternalCeQueueImpl(system2, db.getDbClient(), null, queueStatusMock, null, null); | |||
InternalCeQueueImpl underTest = new InternalCeQueueImpl(system2, db.getDbClient(), null, queueStatusMock, null); | |||
underTest.cancelWornOuts(); | |||
@@ -325,7 +313,6 @@ public class InternalCeQueueImplTest { | |||
db.commit(); | |||
underTest.remove(new CeTask.Builder() | |||
.setOrganizationUuid("foo") | |||
.setUuid("uuid") | |||
.setType("bar") | |||
.build(), CeActivityDto.Status.SUCCESS, null, null); | |||
@@ -623,11 +610,6 @@ public class InternalCeQueueImplTest { | |||
} | |||
private void verifyCeTask(CeTaskSubmit taskSubmit, CeTask task, @Nullable ComponentDto componentDto, @Nullable UserDto userDto) { | |||
if (componentDto == null) { | |||
assertThat(task.getOrganizationUuid()).isEqualTo(defaultOrganizationProvider.get().getUuid()); | |||
} else { | |||
assertThat(task.getOrganizationUuid()).isEqualTo(componentDto.getOrganizationUuid()); | |||
} | |||
assertThat(task.getUuid()).isEqualTo(taskSubmit.getUuid()); | |||
assertThat(task.getType()).isEqualTo(taskSubmit.getType()); | |||
if (componentDto != null) { | |||
@@ -669,7 +651,7 @@ public class InternalCeQueueImplTest { | |||
} | |||
private ComponentDto newProjectDto(String uuid) { | |||
return ComponentTesting.newPublicProjectDto(db.getDefaultOrganization(), uuid).setName("name_" + uuid).setDbKey("key_" + uuid); | |||
return ComponentTesting.newPublicProjectDto(uuid).setName("name_" + uuid).setDbKey("key_" + uuid); | |||
} | |||
private CeTask submit(String reportType, ComponentDto componentDto) { | |||
@@ -698,9 +680,7 @@ public class InternalCeQueueImplTest { | |||
} | |||
private ComponentDto insertComponent(ComponentDto componentDto) { | |||
db.getDbClient().componentDao().insert(session, componentDto); | |||
session.commit(); | |||
return componentDto; | |||
return db.components().insertComponent(componentDto); | |||
} | |||
private CeQueueDto makeInProgress(CeQueueDto ceQueueDto, String workerUuid) { |
@@ -109,7 +109,6 @@ public class CeTaskProcessorRepositoryImplTest { | |||
private static CeTask createCeTask(String ceTaskType, String key) { | |||
CeTask.Component component = new CeTask.Component("uuid_" + key, key, "name_" + key); | |||
return new CeTask.Builder() | |||
.setOrganizationUuid("org1") | |||
.setType(ceTaskType) | |||
.setUuid("task_uuid_" + key) | |||
.setComponent(component) |
@@ -19,7 +19,6 @@ | |||
*/ | |||
package org.sonar.ce.taskprocessor; | |||
import java.util.Arrays; | |||
import java.util.HashMap; | |||
import java.util.List; | |||
import java.util.Map; | |||
@@ -55,7 +54,6 @@ import org.sonar.db.ce.CeActivityDto; | |||
import org.sonar.db.ce.CeTaskTypes; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.db.user.UserTesting; | |||
import org.sonar.server.organization.BillingValidations; | |||
import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -64,10 +62,12 @@ import static org.mockito.ArgumentMatchers.anyBoolean; | |||
import static org.mockito.ArgumentMatchers.anyString; | |||
import static org.mockito.ArgumentMatchers.eq; | |||
import static org.mockito.ArgumentMatchers.isNull; | |||
import static org.mockito.Mockito.*; | |||
import static org.mockito.Mockito.atLeastOnce; | |||
import static org.mockito.Mockito.doThrow; | |||
import static org.mockito.Mockito.inOrder; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.reset; | |||
import static org.mockito.Mockito.times; | |||
import static org.mockito.Mockito.verify; | |||
import static org.mockito.Mockito.verifyZeroInteractions; | |||
import static org.mockito.Mockito.when; | |||
@@ -490,22 +490,6 @@ public class CeWorkerImplTest { | |||
assertThat(logTester.logs(LoggerLevel.ERROR)).isEmpty(); | |||
} | |||
@Test | |||
public void do_no_log_error_when_task_fails_with_BillingValidationsException() throws Exception { | |||
CeTask ceTask = createCeTask(submitter); | |||
when(queue.peek(anyString(), anyBoolean(), anyBoolean())).thenReturn(Optional.of(ceTask)); | |||
taskProcessorRepository.setProcessorForTask(CeTaskTypes.REPORT, taskProcessor); | |||
makeTaskProcessorFail(ceTask, new BillingValidations.BillingValidationsException("simulate MessageException thrown by TaskProcessor#process")); | |||
underTest.call(); | |||
List<String> logs = logTester.logs(LoggerLevel.INFO); | |||
assertThat(logs).hasSize(2); | |||
assertThat(logs.get(1)).contains(" | submitter=" + submitter.getLogin()); | |||
assertThat(logs.get(1)).contains(String.format(" | submitter=%s | status=FAILED | time=", submitter.getLogin())); | |||
assertThat(logTester.logs(LoggerLevel.ERROR)).isEmpty(); | |||
} | |||
@Test | |||
public void log_error_when_task_was_successful_but_ending_state_can_not_be_persisted_to_db() throws Exception { | |||
CeTask ceTask = createCeTask(submitter); | |||
@@ -772,7 +756,6 @@ public class CeWorkerImplTest { | |||
} | |||
CeTask.Component component = new CeTask.Component("PROJECT_1", null, null); | |||
return new CeTask.Builder() | |||
.setOrganizationUuid("org1") | |||
.setUuid("TASK_1").setType(CeTaskTypes.REPORT) | |||
.setComponent(component) | |||
.setMainComponent(component) |
@@ -279,6 +279,7 @@ public class ComponentTesting { | |||
public static ComponentDto newProjectCopy(String uuid, ComponentDto project, ComponentDto view) { | |||
return newChildComponent(uuid, view, view) | |||
.setDbKey(view.getDbKey() + project.getDbKey()) | |||
.setOrganizationUuid(project.getOrganizationUuid()) | |||
.setName(project.name()) | |||
.setLongName(project.longName()) | |||
.setCopyComponentUuid(project.uuid()) |
@@ -23,8 +23,8 @@ import javax.annotation.Nullable; | |||
import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.junit.rules.ExpectedException; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.api.impl.utils.TestSystem2; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.api.web.UserRole; | |||
import org.sonar.ce.queue.CeQueue; | |||
import org.sonar.ce.queue.CeQueueImpl; | |||
@@ -37,8 +37,6 @@ import org.sonar.db.ce.CeQueueDto; | |||
import org.sonar.db.ce.CeTaskTypes; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.server.exceptions.ForbiddenException; | |||
import org.sonar.server.organization.DefaultOrganizationProvider; | |||
import org.sonar.server.organization.TestDefaultOrganizationProvider; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.ws.WsActionTester; | |||
@@ -54,9 +52,8 @@ public class CancelActionTest { | |||
@Rule | |||
public DbTester db = DbTester.create(); | |||
private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db); | |||
private System2 system2 = new TestSystem2(); | |||
private CeQueue queue = new CeQueueImpl(system2, db.getDbClient(), UuidFactoryFast.getInstance(), defaultOrganizationProvider); | |||
private CeQueue queue = new CeQueueImpl(system2, db.getDbClient(), UuidFactoryFast.getInstance()); | |||
private CancelAction underTest = new CancelAction(userSession, db.getDbClient(), queue); | |||
private WsActionTester tester = new WsActionTester(underTest); |
@@ -48,7 +48,6 @@ public class SubmitActionTest { | |||
private static final String PROJECT_UUID = "PROJECT_1"; | |||
private static final CeTask.Component COMPONENT = new CeTask.Component(PROJECT_UUID, "KEY_1", "NAME_1"); | |||
private static final CeTask A_CE_TASK = new CeTask.Builder() | |||
.setOrganizationUuid("org1") | |||
.setUuid("TASK_1") | |||
.setType(CeTaskTypes.REPORT) | |||
.setComponent(COMPONENT) |
@@ -91,8 +91,6 @@ public class MetadataPublisher implements ReportPublisherStep { | |||
projectInfo.getProjectVersion().ifPresent(builder::setProjectVersion); | |||
projectInfo.getBuildString().ifPresent(builder::setBuildString); | |||
properties.organizationKey().ifPresent(builder::setOrganizationKey); | |||
if (branchConfiguration.branchName() != null) { | |||
addBranchInformation(builder); | |||
} |
@@ -172,20 +172,6 @@ public class MetadataPublisherTest { | |||
assertThat(metadata.getNotAnalyzedFilesByLanguageMap()).contains(entry("c", 10), entry("cpp", 20)); | |||
} | |||
@Test | |||
public void write_project_organization() throws Exception { | |||
when(properties.organizationKey()).thenReturn(Optional.of("SonarSource")); | |||
File outputDir = temp.newFolder(); | |||
ScannerReportWriter writer = new ScannerReportWriter(outputDir); | |||
underTest.publish(writer); | |||
ScannerReportReader reader = new ScannerReportReader(outputDir); | |||
ScannerReport.Metadata metadata = reader.readMetadata(); | |||
assertThat(metadata.getOrganizationKey()).isEqualTo("SonarSource"); | |||
} | |||
@Test | |||
@UseDataProvider("projectVersions") | |||
public void write_project_version(@Nullable String projectVersion, String expected) throws Exception { |
@@ -30,7 +30,7 @@ option optimize_for = SPEED; | |||
message Metadata { | |||
int64 analysis_date = 1; | |||
string organization_key = 2; | |||
reserved 2; // organization drop | |||
// TODO should we keep this project_key here or not ? Because it's a duplication of Component.key | |||
string project_key = 3; | |||