import org.sonar.batch.protocol.Constants;
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.persistence.DbTester;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.computation.component.DbComponentsRefCache.DbComponent;
-import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.computation.step.PersistFileSourcesStep;
import org.sonar.server.db.DbClient;
import org.sonar.server.source.db.FileSourceDao;
long start = System.currentTimeMillis();
PersistFileSourcesStep step = new PersistFileSourcesStep(dbClient, System2.INSTANCE, dbComponentsRefCache, reportReader);
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
long end = System.currentTimeMillis();
long duration = end - start;
+++ /dev/null
-/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2014 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * SonarQube 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.
- *
- * SonarQube 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.server.computation;
-
-import org.sonar.server.computation.component.Component;
-import org.sonar.server.computation.component.ComponentTreeBuilder;
-
-public class ComputationContext {
- private final Component component;
-
- public ComputationContext(ComponentTreeBuilder componentTreeBuilder) {
- this.component = componentTreeBuilder.build();
- }
-
- public Component getRoot() {
- return component;
- }
-
-}
import org.sonar.api.utils.log.Loggers;
import org.sonar.api.utils.log.Profiler;
import org.sonar.server.computation.activity.ActivityManager;
-import org.sonar.server.computation.batch.BatchReportReader;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.step.ComputationStep;
import org.sonar.server.computation.step.ComputationSteps;
private final ReportQueue.Item item;
private final ComputationSteps steps;
- private final BatchReportReader reportReader;
private final ActivityManager activityManager;
private final System2 system;
- public ComputationService(ReportQueue.Item item, ComputationSteps steps, ActivityManager activityManager, System2 system, BatchReportReader reportReader) {
+ public ComputationService(ReportQueue.Item item, ComputationSteps steps, ActivityManager activityManager, System2 system) {
this.item = item;
this.steps = steps;
- this.reportReader = reportReader;
this.activityManager = activityManager;
this.system = system;
}
);
try {
- ComputationContext context = new ComputationContext(ComponentTreeBuilders.from(reportReader));
-
for (ComputationStep step : steps.instances()) {
Profiler stepProfiler = Profiler.createIfDebug(LOG).startDebug(step.getDescription());
- step.execute(context);
+ step.execute();
stepProfiler.stopDebug();
}
item.dto.setStatus(SUCCESS);
import org.sonar.core.permission.PermissionFacade;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.component.DbComponentsRefCache;
+import org.sonar.server.computation.component.TreeRootHolder;
import org.sonar.server.db.DbClient;
import org.sonar.server.issue.index.IssueAuthorizationIndexer;
private final DbComponentsRefCache dbComponentsRefCache;
private final IssueAuthorizationIndexer indexer;
private final PermissionFacade permissionFacade;
+ private final TreeRootHolder treeRootHolder;
- public ApplyPermissionsStep(DbClient dbClient, DbComponentsRefCache dbComponentsRefCache, IssueAuthorizationIndexer indexer, PermissionFacade permissionFacade) {
+ public ApplyPermissionsStep(DbClient dbClient, DbComponentsRefCache dbComponentsRefCache, IssueAuthorizationIndexer indexer,
+ PermissionFacade permissionFacade, TreeRootHolder treeRootHolder) {
this.dbClient = dbClient;
this.dbComponentsRefCache = dbComponentsRefCache;
this.indexer = indexer;
this.permissionFacade = permissionFacade;
+ this.treeRootHolder = treeRootHolder;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
DbSession session = dbClient.openSession(false);
try {
- long projectId = dbComponentsRefCache.getByRef(context.getRoot().getRef()).getId();
+ long projectId = dbComponentsRefCache.getByRef(treeRootHolder.getRoot().getRef()).getId();
if (permissionFacade.countComponentPermissions(session, projectId) == 0) {
permissionFacade.grantDefaultRoles(session, projectId, Qualifiers.PROJECT);
session.commit();
import com.google.common.collect.Iterables;
import javax.annotation.Nonnull;
import org.sonar.batch.protocol.output.BatchReport;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.ComponentImpl;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
mutableTreeRootHolder.setRoot(buildComponentRoot());
}
package org.sonar.server.computation.step;
-import org.sonar.server.computation.ComputationContext;
-
/**
* Implementations must be declared into {@link org.sonar.server.computation.step.ComputationSteps#orderedStepClasses()}
*/
public interface ComputationStep {
- void execute(ComputationContext context);
+ void execute();
String getDescription();
}
package org.sonar.server.computation.step;
import org.sonar.core.resource.ResourceIndexerDao;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.DbComponentsRefCache;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
resourceIndexerDao.indexProject(dbComponentsRefCache.getByRef(reportReader.readMetadata().getRootComponentRef()).getId());
}
package org.sonar.server.computation.step;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.issue.index.IssueIndexer;
public class IndexIssuesStep implements ComputationStep {
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
indexer.index();
}
*/
package org.sonar.server.computation.step;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.source.index.SourceLineIndexer;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
indexer.index(dbComponentsRefCache.getByRef(reportReader.readMetadata().getRootComponentRef()).getUuid());
}
package org.sonar.server.computation.step;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.test.index.TestIndexer;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
indexer.index(dbComponentsRefCache.getByRef(reportReader.readMetadata().getRootComponentRef()).getUuid());
}
import java.util.List;
import org.sonar.batch.protocol.output.BatchReport;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.DepthTraversalTypeAwareVisitor;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
IssueDepthTraversalTypeAwareVisitor visitor = new IssueDepthTraversalTypeAwareVisitor();
visitor.visit(treeRootHolder.getRoot());
processDeletedComponents(visitor);
import org.sonar.core.component.ComponentDto;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.util.NonNullInputFunction;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.DbComponentsRefCache;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
DbSession session = dbClient.openSession(false);
try {
Component root = treeRootHolder.getRoot();
import org.sonar.core.metric.db.MetricDto;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.db.DbClient;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
DbSession session = dbClient.openSession(true);
try {
MetricDto duplicationMetric = dbClient.metricDao().selectByKey(session, CoreMetrics.DUPLICATIONS_DATA_KEY);
import org.sonar.core.event.EventDto;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.db.DbClient;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
DbSession session = dbClient.openSession(false);
try {
int rootComponentRef = reportReader.readMetadata().getRootComponentRef();
import org.sonar.core.persistence.MyBatis;
import org.sonar.core.source.db.FileSourceDto;
import org.sonar.core.source.db.FileSourceDto.Type;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.computation.source.ComputeFileSourceData;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
int rootComponentRef = reportReader.readMetadata().getRootComponentRef();
// Don't use batch insert for file_sources since keeping all data in memory can produce OOM for big files
DbSession session = dbClient.openSession(false);
import org.sonar.core.issue.db.UpdateConflictResolver;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.issue.IssueCache;
import org.sonar.server.computation.issue.RuleCache;
import org.sonar.server.db.DbClient;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
DbSession session = dbClient.openSession(true);
IssueMapper mapper = session.getMapper(IssueMapper.class);
IssueChangeMapper changeMapper = session.getMapper(IssueChangeMapper.class);
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.measure.db.MeasureDto;
import org.sonar.core.persistence.DbSession;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.computation.issue.RuleCache;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
int rootComponentRef = reportReader.readMetadata().getRootComponentRef();
try (DbSession dbSession = dbClient.openSession(true)) {
recursivelyProcessComponent(dbSession, rootComponentRef);
import org.sonar.core.measure.db.MeasureDto;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.computation.measure.MetricCache;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
int rootComponentRef = reportReader.readMetadata().getRootComponentRef();
recursivelyProcessComponent(rootComponentRef);
}
if (commitFound()) {
- persistNumberOfDaysSinceLastCommit(context);
+ persistNumberOfDaysSinceLastCommit();
}
}
return lastCommitDate == null ? null : lastCommitDate.getTime();
}
- private void persistNumberOfDaysSinceLastCommit(ComputationContext context) {
+ private void persistNumberOfDaysSinceLastCommit() {
checkState(commitFound(), "The last commit time should exist");
long numberOfDaysSinceLastCommit = (system.now() - lastCommitTimestamp) / MILLISECONDS_PER_DAY;
import org.sonar.core.component.ComponentLinkDto;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.db.DbClient;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
DbSession session = dbClient.openSession(false);
try {
int rootComponentRef = reportReader.readMetadata().getRootComponentRef();
import org.sonar.core.persistence.MyBatis;
import org.sonar.core.source.db.FileSourceDto;
import org.sonar.core.source.db.FileSourceDto.Type;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.DbComponentsRefCache;
}
@Override
- public void execute(final ComputationContext context) {
+ public void execute() {
DbSession session = dbClient.openSession(true);
try {
TestDepthTraversalTypeAwareVisitor visitor = new TestDepthTraversalTypeAwareVisitor(session, dbComponentsRefCache);
import org.sonar.core.component.ComponentDto;
import org.sonar.core.component.ComponentKeys;
import org.sonar.core.persistence.DbSession;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.ComponentImpl;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
DbSession session = dbClient.openSession(false);
try {
BatchReport.Metadata metadata = reportReader.readMetadata();
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis;
import org.sonar.core.purge.IdUuidPair;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.computation.component.ProjectSettingsRepository;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
DbSession session = dbClient.openSession(true);
try {
DbComponentsRefCache.DbComponent project = dbComponentsRefCache.getByRef(reportReader.readMetadata().getRootComponentRef());
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.UtcDateUtils;
import org.sonar.core.measure.db.MeasureDto;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.DepthTraversalTypeAwareVisitor;
import org.sonar.server.computation.component.TreeRootHolder;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
new DepthTraversalTypeAwareVisitor(Component.Type.PROJECT, POST_ORDER) {
@Override
public void visitProject(Component tree) {
import java.util.Map;
import java.util.Set;
import org.sonar.api.issue.internal.DefaultIssue;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.computation.component.DbComponentsRefCache.DbComponent;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
DbComponent project = dbComponentsRefCache.getByRef(reportReader.readMetadata().getRootComponentRef());
if (service.hasProjectSubscribersForTypes(project.getUuid(), NOTIF_TYPES)) {
doExecute(project);
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis;
import org.sonar.server.component.db.SnapshotDao;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.db.DbClient;
}
@Override
- public void execute(ComputationContext context) {
+ public void execute() {
DbSession session = dbClient.openSession(true);
try {
long snapshotId = reportReader.readMetadata().getSnapshotId();
import org.sonar.api.utils.System2;
import org.sonar.api.utils.log.LogTester;
import org.sonar.api.utils.log.LoggerLevel;
-import org.sonar.batch.protocol.Constants;
-import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.computation.db.AnalysisReportDto;
import org.sonar.core.computation.db.AnalysisReportDto.Status;
import org.sonar.server.computation.activity.ActivityManager;
-import org.sonar.server.computation.batch.BatchReportReaderRule;
import org.sonar.server.computation.step.ComputationStep;
import org.sonar.server.computation.step.ComputationSteps;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
-import static org.mockito.Mockito.any;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
public class ComputationServiceTest {
- @Rule
- public BatchReportReaderRule reportReader = new BatchReportReaderRule();
@Rule
public LogTester logTester = new LogTester();
@Before
public void setUp() throws IOException {
- reportReader.setMetadata(BatchReport.Metadata.newBuilder()
- .setRootComponentRef(1)
- .build());
- reportReader.putComponent(BatchReport.Component.newBuilder()
- .setRef(1)
- .setType(Constants.ComponentType.PROJECT)
- .setKey("project key")
- .setName("Project name")
- .build());
-
- sut = new ComputationService(new ReportQueue.Item(dto, new File("Do_not_care")), steps, activityManager, system,
- reportReader);
+ sut = new ComputationService(new ReportQueue.Item(dto, new File("Do_not_care")), steps, activityManager, system);
}
@Test
assertThat(logTester.logs(LoggerLevel.INFO).get(0)).startsWith("Analysis of project P1 (report 1) (done) | time=");
// execute only the steps supporting the project qualifier
- verify(projectStep1).execute(any(ComputationContext.class));
- verify(projectStep2).execute(any(ComputationContext.class));
+ verify(projectStep1).execute();
+ verify(projectStep2).execute();
verify(activityManager).saveActivity(dto);
}
public void fail_if_step_throws_error() throws Exception {
String errorMessage = "Failed to unzip";
when(steps.instances()).thenReturn(ImmutableList.of(projectStep1));
- doThrow(new IllegalStateException(errorMessage)).when(projectStep1).execute(any(ComputationContext.class));
+ doThrow(new IllegalStateException(errorMessage)).when(projectStep1).execute();
try {
sut.process();
@Test
public void step_error() throws Exception {
when(steps.instances()).thenReturn(Arrays.asList(projectStep1));
- doThrow(new IllegalStateException("pb")).when(projectStep1).execute(any(ComputationContext.class));
+ doThrow(new IllegalStateException("pb")).when(projectStep1).execute();
try {
sut.process();
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
-import org.mockito.Mockito;
import org.sonar.api.CoreProperties;
import org.sonar.api.config.Settings;
import org.sonar.api.issue.Issue;
import org.sonar.api.utils.log.LogTester;
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.rule.RuleDto;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
import org.sonar.server.computation.component.ProjectSettingsRepository;
import org.sonar.server.user.index.UserDoc;
.setStatus(Issue.STATUS_OPEN);
Settings projectSettings;
ProjectSettingsRepository projectSettingsRepository = mock(ProjectSettingsRepository.class);
- ComputationContext context = mock(ComputationContext.class, Mockito.RETURNS_DEEP_STUBS);
UserIndex userIndex = mock(UserIndex.class);
// output
import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.sonar.api.config.Settings;
import org.sonar.core.user.RoleDao;
import org.sonar.server.component.ComponentTesting;
import org.sonar.server.component.db.ComponentDao;
-import org.sonar.server.computation.ComputationContext;
+import org.sonar.server.computation.batch.TreeRootHolderRule;
import org.sonar.server.computation.component.Component;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.db.DbClient;
public static EsTester esTester = new EsTester().addDefinitions(new IssueIndexDefinition(new Settings()));
@ClassRule
public static DbTester dbTester = new DbTester();
+ @Rule
+ public TreeRootHolderRule treeRootHolder = new TreeRootHolderRule();
DbSession dbSession;
dbComponentsRefCache = new DbComponentsRefCache();
step = new ApplyPermissionsStep(dbClient, dbComponentsRefCache, issueAuthorizationIndexer, new PermissionFacade(roleDao, null,
- new ResourceDao(dbTester.myBatis(), System2.INSTANCE), permissionTemplateDao, settings));
+ new ResourceDao(dbTester.myBatis(), System2.INSTANCE), permissionTemplateDao, settings), treeRootHolder);
}
@After
dbSession.commit();
dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(projectDto.getId(), PROJECT_KEY, PROJECT_UUID));
- Component project = new DumbComponent(Component.Type.PROJECT, 1, PROJECT_KEY, PROJECT_UUID);
+ treeRootHolder.setRoot(new DumbComponent(Component.Type.PROJECT, 1, PROJECT_KEY, PROJECT_UUID));
- step.execute(new ComputationContext(ComponentTreeBuilders.from(project)));
+ step.execute();
dbSession.commit();
assertThat(dbClient.componentDao().selectByKey(dbSession, PROJECT_KEY).getAuthorizationUpdatedAt()).isNotNull();
dbSession.commit();
dbComponentsRefCache.addComponent(1, new DbComponentsRefCache.DbComponent(projectDto.getId(), PROJECT_KEY, PROJECT_UUID));
- Component project = new DumbComponent(Component.Type.PROJECT, 1, PROJECT_KEY, PROJECT_UUID);
+ treeRootHolder.setRoot(new DumbComponent(Component.Type.PROJECT, 1, PROJECT_KEY, PROJECT_UUID));
- step.execute(new ComputationContext(ComponentTreeBuilders.from(project)));
+ step.execute();
dbSession.commit();
// Check that authorization updated at has not been changed -> Nothing has been done
import org.sonar.batch.protocol.Constants;
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.batch.protocol.output.BatchReport.Metadata;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.MutableTreeRootHolderRule;
@Test(expected = NullPointerException.class)
public void fails_if_root_component_does_not_exist_in_reportReader() {
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
}
@Test
int componentRef = 1;
reportReader.putComponent(component(componentRef, componentType));
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
Component root = treeRootHolder.getRoot();
assertThat(root).isNotNull();
reportReader.putComponent(component(DIR_REF_2, DIRECTORY, FILE_3_REF));
reportReader.putComponent(component(FILE_3_REF, FILE));
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
Component root = treeRootHolder.getRoot();
assertThat(root).isNotNull();
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.component.ComponentDto;
import org.sonar.core.resource.ResourceIndexerDao;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.computation.component.DbComponentsRefCache.DbComponent;
-import org.sonar.server.computation.component.DumbComponent;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
ComponentDto project = mock(ComponentDto.class);
when(project.getId()).thenReturn(123L);
- ComputationContext context = new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT));
- sut.execute(context);
+ sut.execute();
verify(resourceIndexerDao).indexProject(123L);
}
package org.sonar.server.computation.step;
import org.junit.Test;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.issue.index.IssueIndexer;
import static org.mockito.Mockito.mock;
IssueIndexer issueIndexer = mock(IssueIndexer.class);
sut = new IndexIssuesStep(issueIndexer);
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
verify(issueIndexer).index();
}
import org.sonar.api.config.Settings;
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.persistence.DbTester;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
-import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.db.DbClient;
import org.sonar.server.es.EsTester;
import org.sonar.server.source.db.FileSourceDao;
.setRootComponentRef(1)
.build());
- step().execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step().execute();
List<SearchHit> docs = esTester.getDocuments(SourceLineIndexDefinition.INDEX, SourceLineIndexDefinition.TYPE);
assertThat(docs).hasSize(1);
import org.sonar.api.config.Settings;
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.persistence.DbTester;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
-import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.db.DbClient;
import org.sonar.server.es.EsTester;
import org.sonar.server.source.db.FileSourceDao;
.setRootComponentRef(1)
.build());
- step().execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step().execute();
List<SearchHit> docs = esTester.getDocuments(TestIndexDefinition.INDEX, TestIndexDefinition.TYPE);
assertThat(docs).hasSize(1);
import org.sonar.batch.protocol.Constants;
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.persistence.DbTester;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
import org.sonar.server.computation.batch.TreeRootHolderRule;
import org.sonar.server.computation.component.Component;
treeRootHolder.setRoot(root);
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
assertThat(reportReader.readMetadata().getRootComponentRef()).isEqualTo(1);
assertThat(reportReader.readMetadata().getDeletedComponentsCount()).isEqualTo(1);
import org.sonar.core.persistence.DbTester;
import org.sonar.server.component.ComponentTesting;
import org.sonar.server.component.db.ComponentDao;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
import org.sonar.server.computation.batch.TreeRootHolderRule;
import org.sonar.server.computation.component.Component;
new DumbComponent(Component.Type.MODULE, 2, "BCDE", "MODULE_KEY",
new DumbComponent(Component.Type.DIRECTORY, 3, "CDEF", "MODULE_KEY:src/main/java/dir",
new DumbComponent(Component.Type.FILE, 4, "DEFG", "MODULE_KEY:src/main/java/dir/Foo.java")))));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(4);
treeRootHolder.setRoot(new DumbComponent(Component.Type.PROJECT, 1, "ABCD", PROJECT_KEY,
new DumbComponent(Component.Type.DIRECTORY, 2, "CDEF", PROJECT_KEY + ":/",
new DumbComponent(Component.Type.FILE, 3, "DEFG", PROJECT_KEY + ":pom.xml"))));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
ComponentDto directory = dbClient.componentDao().selectNullableByKey(session, "PROJECT_KEY:/");
assertThat(directory).isNotNull();
treeRootHolder.setRoot(new DumbComponent(Component.Type.PROJECT, 1, "ABCD", PROJECT_KEY,
new DumbComponent(Component.Type.DIRECTORY, 2, "CDEF", PROJECT_KEY + ":src/test/java/dir",
new DumbComponent(Component.Type.FILE, 3, "DEFG", PROJECT_KEY + ":src/test/java/dir/FooTest.java"))));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
ComponentDto file = dbClient.componentDao().selectNullableByKey(session, PROJECT_KEY + ":src/test/java/dir/FooTest.java");
assertThat(file).isNotNull();
new DumbComponent(Component.Type.MODULE, 2, "BCDE", "MODULE_KEY",
new DumbComponent(Component.Type.DIRECTORY, 3, "CDEF", "MODULE_KEY:src/main/java/dir",
new DumbComponent(Component.Type.FILE, 4, "DEFG", "MODULE_KEY:src/main/java/dir/Foo.java")))));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(4);
new DumbComponent(Component.Type.MODULE, 3, "CDEF", "SUB_MODULE_1_KEY",
new DumbComponent(Component.Type.MODULE, 4, "DEFG", "SUB_MODULE_2_KEY",
new DumbComponent(Component.Type.DIRECTORY, 5, "EFGH", "SUB_MODULE_2_KEY:src/main/java/dir"))))));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(5);
new DumbComponent(Component.Type.MODULE, 2, "BCDE", "MODULE_A",
new DumbComponent(Component.Type.MODULE, 3, "DEFG", "SUB_MODULE_A")),
new DumbComponent(Component.Type.MODULE, 4, "CDEF", "MODULE_B")));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(4);
new DumbComponent(Component.Type.MODULE, 2, "BCDE", "MODULE_KEY",
new DumbComponent(Component.Type.DIRECTORY, 3, "CDEF", "MODULE_KEY:src/main/java/dir",
new DumbComponent(Component.Type.FILE, 4, "DEFG", "MODULE_KEY:src/main/java/dir/Foo.java")))));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(4);
assertThat(dbClient.componentDao().selectNullableByKey(session, PROJECT_KEY).getId()).isEqualTo(project.getId());
treeRootHolder.setRoot(new DumbComponent(Component.Type.PROJECT, 1, "ABCD", PROJECT_KEY,
new DumbComponent(Component.Type.MODULE, 2, "BCDE", "MODULE_KEY")));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
ComponentDto projectReloaded = dbClient.componentDao().selectNullableByKey(session, PROJECT_KEY);
assertThat(projectReloaded.name()).isEqualTo("New project name");
treeRootHolder.setRoot(new DumbComponent(Component.Type.PROJECT, 1, "ABCD", PROJECT_KEY,
new DumbComponent(Component.Type.MODULE, 2, "BCDE", "MODULE_KEY")));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
ComponentDto projectReloaded = dbClient.componentDao().selectNullableByKey(session, PROJECT_KEY);
assertThat(projectReloaded.description()).isEqualTo("New project description");
treeRootHolder.setRoot(new DumbComponent(Component.Type.PROJECT, 1, "ABCD", PROJECT_KEY,
new DumbComponent(Component.Type.MODULE, 2, "BCDE", "MODULE_KEY")));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
ComponentDto moduleReloaded = dbClient.componentDao().selectNullableByKey(session, "MODULE_KEY");
assertThat(moduleReloaded.path()).isEqualTo("New path");
new DumbComponent(Component.Type.MODULE, 3, "BCDE", "MODULE_B",
new DumbComponent(Component.Type.DIRECTORY, 4, "CDEF", "MODULE_B:src/main/java/dir",
new DumbComponent(Component.Type.FILE, 5, "DEFG", "MODULE_B:src/main/java/dir/Foo.java"))))));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(5);
import org.sonar.core.metric.db.MetricDto;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.DbTester;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.computation.component.DbComponentsRefCache.DbComponent;
-import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.computation.language.LanguageRepository;
import org.sonar.server.db.DbClient;
import org.sonar.server.measure.persistence.MeasureDao;
saveDuplicationMetric();
initReportWithProjectAndFile();
- sut.execute(new ComputationContext(
- ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(0);
}
.build();
reportReader.putDuplications(2, newArrayList(duplication));
- sut.execute(new ComputationContext(
- ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
.build();
reportReader.putDuplications(3, newArrayList(duplication));
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
.build();
reportReader.putDuplications(3, newArrayList(duplication));
- sut.execute(new ComputationContext(
- ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
.build();
reportReader.putDuplications(10, newArrayList(duplication));
- sut.execute(new ComputationContext(
- ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
.build();
reportReader.putDuplications(2, newArrayList(duplication));
- sut.execute(new ComputationContext(
- ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
.build();
reportReader.putDuplications(2, newArrayList(duplication));
- sut.execute(new ComputationContext(
- ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.DbTester;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
import org.sonar.server.computation.component.DbComponentsRefCache.DbComponent;
-import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.db.DbClient;
import org.sonar.server.event.db.EventDao;
import org.sonar.test.DbTests;
.setType(Constants.ComponentType.PROJECT)
.build());
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
dbTester.assertDbUnit(getClass(), "nothing_to_do_when_no_events_in_report.xml", "events");
}
)
.build());
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
dbTester.assertDbUnit(getClass(), "add_events-result.xml", "events");
}
.build()
).build());
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
dbTester.assertDbUnit(getClass(), "persist_report_events_with_component_children-result.xml", "events");
}
.setVersion("1.0")
.build());
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
dbTester.assertDbUnit(getClass(), "add_version_event-result.xml", "events");
}
.setVersion("1.5-SNAPSHOT")
.build());
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
dbTester.assertDbUnit(getClass(), "keep_one_event_by_version-result.xml", "events");
}
import org.sonar.core.persistence.DbTester;
import org.sonar.core.source.db.FileSourceDto;
import org.sonar.core.source.db.FileSourceDto.Type;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
-import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.computation.language.LanguageRepository;
import org.sonar.server.db.DbClient;
import org.sonar.server.source.db.FileSourceDao;
public void persist_sources() throws Exception {
initBasicReport(2);
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
.build());
reportReader.putFileSourceLines(FILE_REF, "line1", "line2");
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
public void persist_source_hashes() throws Exception {
initBasicReport(2);
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource("FILE");
.setOverallCoveredConditions(4)
.build()));
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
.addChangesetIndexByLine(0)
.build());
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
.build()
));
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
).build()
));
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
.build()
));
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
// Sources from the report
initBasicReport(1);
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
initBasicReport(1);
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
initBasicReport(1);
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
));
try {
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
failBecauseExceptionWasNotThrown(IllegalStateException.class);
} catch (IllegalStateException e) {
assertThat(e).hasMessage("Cannot persist sources of src/Foo.java").hasCauseInstanceOf(IllegalArgumentException.class);
.setNew(true)
).close();
- step.execute(null);
+ step.execute();
dbTester.assertDbUnit(getClass(), "insert_new_issue-result.xml", new String[]{"id"}, "issues");
}
.setChanged(true)
).close();
- step.execute(null);
+ step.execute();
dbTester.assertDbUnit(getClass(), "close_issue-result.xml", "issues");
}
)
).close();
- step.execute(null);
+ step.execute();
dbTester.assertDbUnit(getClass(), "add_comment-result.xml", new String[]{"id", "created_at", "updated_at"}, "issue_changes");
}
)
).close();
- step.execute(null);
+ step.execute();
dbTester.assertDbUnit(getClass(), "add_change-result.xml", new String[]{"id", "created_at", "updated_at"}, "issue_changes");
}
import org.sonar.core.persistence.DbTester;
import org.sonar.core.rule.RuleDto;
import org.sonar.server.component.db.ComponentDao;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
-import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.computation.issue.RuleCache;
import org.sonar.server.computation.issue.RuleCacheLoader;
import org.sonar.server.computation.measure.MetricCache;
.setCharactericId(123456)
.build()));
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ sut.execute();
session.commit();
assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(2);
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.metric.db.MetricDto;
import org.sonar.core.persistence.DbTester;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
-import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.computation.language.LanguageRepository;
import org.sonar.server.computation.measure.MetricCache;
import org.sonar.server.db.DbClient;
)
.build()
);
- ComputationContext context = new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT));
- sut.execute(context);
+ sut.execute();
db.assertDbUnit(getClass(), "insert-from-report-result.xml", new String[] {"id"}, "project_measures");
}
Date sixDaysAgo = DateUtils.addDays(new Date(), -6);
when(sourceLineIndex.lastCommitDateOnProject("project-uuid")).thenReturn(sixDaysAgo);
initReportWithProjectAndFile();
- ComputationContext context = new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT));
- sut.execute(context);
+ sut.execute();
db.assertDbUnit(getClass(), "insert-from-index-result.xml", new String[] {"id"}, "project_measures");
}
@Test
public void no_scm_information_in_report_and_index() {
initReportWithProjectAndFile();
- ComputationContext context = new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT));
- sut.execute(context);
+ sut.execute();
db.assertDbUnit(getClass(), "empty.xml");
}
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.DbTester;
import org.sonar.server.component.db.ComponentLinkDao;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
-import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.db.DbClient;
import org.sonar.test.DbTests;
.addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.SCM).setHref("https://github.com/SonarSource/sonar/server").build())
.build());
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
dbTester.assertDbUnit(getClass(), "add_links_on_project_and_module-result.xml", "project_links");
}
.addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.HOME).setHref("http://www.sonarqube.org").build())
.build());
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
dbTester.assertDbUnit(getClass(), "nothing_to_do_when_link_already_exists.xml", "project_links");
}
.addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.HOME).setHref("http://www.sonarqube.org").build())
.build());
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
assertThat(dbTester.countRowsOfTable("project_links")).isEqualTo(0);
}
.addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.HOME).setHref("http://www.sonarqube.org").build())
.build());
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
dbTester.assertDbUnit(getClass(), "update_link-result.xml", "project_links");
}
.setType(Constants.ComponentType.PROJECT)
.build());
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
assertThat(dbTester.countRowsOfTable("project_links")).isEqualTo(0);
}
.setType(Constants.ComponentType.PROJECT)
.build());
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
dbTester.assertDbUnit(getClass(), "not_delete_custom_link.xml", "project_links");
}
.build());
try {
- step.execute(new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT)));
+ step.execute();
failBecauseExceptionWasNotThrown(IllegalArgumentException.class);
} catch (IllegalArgumentException e) {
assertThat(e).hasMessage("Link of type 'homepage' has already been declared on component 'ABCD'");
import org.sonar.core.persistence.DbTester;
import org.sonar.core.persistence.MyBatis;
import org.sonar.core.source.db.FileSourceDto;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
import org.sonar.server.computation.batch.TreeRootHolderRule;
import org.sonar.server.computation.component.Component;
@Test
public void no_test_in_database_and_batch_report() {
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
assertThat(dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1)).isNull();
assertThat(log.logs()).isEmpty();
);
reportReader.putCoverageDetails(TEST_FILE_REF_1, coverageDetails);
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
assertThat(db.countRowsOfTable("file_sources")).isEqualTo(1);
reportReader.putTests(TEST_FILE_REF_1, Arrays.asList(newTest(1)));
reportReader.putCoverageDetails(TEST_FILE_REF_1, Arrays.asList(newCoverageDetail(1, MAIN_FILE_REF_1)));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1);
assertThat(dto.getCreatedAt()).isEqualTo(now);
List<BatchReport.Test> batchTests = Arrays.asList(newTest(1));
reportReader.putTests(TEST_FILE_REF_1, batchTests);
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1);
assertThat(dto.getFileUuid()).isEqualTo(TEST_FILE_UUID_1);
reportReader.putCoverageDetails(TEST_FILE_REF_1, coverageDetails);
reportReader.putCoverageDetails(TEST_FILE_REF_2, coverageDetails);
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
assertThat(log.logs(LoggerLevel.WARN)).hasSize(1);
assertThat(log.logs(LoggerLevel.WARN).get(0)).isEqualTo("Some coverage tests are not taken into account during analysis of project 'PROJECT_KEY'");
newCoverageDetailWithLines(1, MAIN_FILE_REF_1, 1, 3),
newCoverageDetailWithLines(1, MAIN_FILE_REF_1, 2, 4)));
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1);
List<Integer> coveredLines = dto.getTestData().get(0).getCoveredFile(0).getCoveredLineList();
reportReader.putCoverageDetails(TEST_FILE_REF_1, Arrays.asList(newCoverageDetail));
// ACT
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
// ASSERT
FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1);
import org.sonar.core.persistence.MyBatis;
import org.sonar.server.component.ComponentTesting;
import org.sonar.server.component.db.ComponentDao;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
import org.sonar.server.computation.batch.TreeRootHolderRule;
import org.sonar.server.computation.component.Component;
import org.sonar.test.DbTests;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
@Category(DbTests.class)
public class PopulateComponentsUuidAndKeyStepTest extends BaseStepTest {
.build());
treeRootHolder.setRoot(ComponentTreeBuilders.from(reportReader).build());
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
Map<Integer, Component> componentsByRef = getComponentsByRef(treeRootHolder.getRoot());
treeRootHolder.setRoot(ComponentTreeBuilders.from(reportReader).build());
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
Map<Integer, Component> componentsByRef = getComponentsByRef(treeRootHolder.getRoot());
.build());
treeRootHolder.setRoot(ComponentTreeBuilders.from(reportReader).build());
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
Map<Integer, Component> componentsByRef = getComponentsByRef(treeRootHolder.getRoot());
.build());
treeRootHolder.setRoot(ComponentTreeBuilders.from(reportReader).build());
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
Map<Integer, Component> componentsByRef = getComponentsByRef(treeRootHolder.getRoot());
.build());
treeRootHolder.setRoot(ComponentTreeBuilders.from(reportReader).build());
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
Map<Integer, Component> componentsByRef = getComponentsByRef(treeRootHolder.getRoot());
.build());
treeRootHolder.setRoot(ComponentTreeBuilders.from(reportReader).build());
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
Map<Integer, Component> componentsByRef = getComponentsByRef(treeRootHolder.getRoot());
import org.sonar.core.computation.dbcleaner.ProjectCleaner;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.purge.IdUuidPair;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
-import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.computation.component.ProjectSettingsRepository;
import org.sonar.server.db.DbClient;
.setRootComponentRef(1)
.build());
- ComputationContext context = new ComputationContext(ComponentTreeBuilders.from(DumbComponent.DUMB_PROJECT));
-
- sut.execute(context);
+ sut.execute();
ArgumentCaptor<IdUuidPair> argumentCaptor = ArgumentCaptor.forClass(IdUuidPair.class);
verify(projectCleaner).purge(any(DbSession.class), argumentCaptor.capture(), any(Settings.class));
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.UtcDateUtils;
import org.sonar.core.measure.db.MeasureDto;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.TreeRootHolderRule;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.DumbComponent;
public void no_effect_if_no_previous_measure() {
when(measureRepository.findPrevious(treeRootHolder.getRoot(), CoreMetrics.QUALITY_PROFILES)).thenReturn(Optional.<MeasureDto>absent());
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
verifyNoMoreInteractions(eventRepository);
}
when(measureRepository.findPrevious(treeRootHolder.getRoot(), CoreMetrics.QUALITY_PROFILES)).thenReturn(Optional.of(newMeasureDto()));
when(measureRepository.findCurrent(treeRootHolder.getRoot(), CoreMetrics.QUALITY_PROFILES)).thenReturn(Optional.<BatchReport.Measure>absent());
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
}
@Test
public void no_event_if_no_qp_now_nor_before() {
mockMeasures(treeRootHolder.getRoot(), null, null);
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
verifyNoMoreInteractions(eventRepository);
}
Language language = mockLanguageInRepository(LANGUAGE_KEY_1);
mockMeasures(treeRootHolder.getRoot(), null, arrayOf(qp));
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
verify(eventRepository).add(eq(treeRootHolder.getRoot()), eventArgumentCaptor.capture());
verifyNoMoreInteractions(eventRepository);
mockLanguageNotInRepository(LANGUAGE_KEY_1);
mockMeasures(treeRootHolder.getRoot(), null, arrayOf(qp));
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
verify(eventRepository).add(eq(treeRootHolder.getRoot()), eventArgumentCaptor.capture());
verifyNoMoreInteractions(eventRepository);
mockMeasures(treeRootHolder.getRoot(), arrayOf(qp), null);
Language language = mockLanguageInRepository(LANGUAGE_KEY_1);
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
verify(eventRepository).add(eq(treeRootHolder.getRoot()), eventArgumentCaptor.capture());
verifyNoMoreInteractions(eventRepository);
mockMeasures(treeRootHolder.getRoot(), arrayOf(qp), null);
mockLanguageNotInRepository(LANGUAGE_KEY_1);
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
verify(eventRepository).add(eq(treeRootHolder.getRoot()), eventArgumentCaptor.capture());
verifyNoMoreInteractions(eventRepository);
mockMeasures(treeRootHolder.getRoot(), arrayOf(qp), arrayOf(qp));
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
verify(eventRepository, never()).add(any(Component.class), any(Event.class));
}
mockMeasures(treeRootHolder.getRoot(), arrayOf(qp1), arrayOf(qp2));
Language language = mockLanguageInRepository(LANGUAGE_KEY_1);
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
verify(eventRepository).add(eq(treeRootHolder.getRoot()), eventArgumentCaptor.capture());
verifyNoMoreInteractions(eventRepository);
));
mockNoLanguageInRepository();
- underTest.execute(mock(ComputationContext.class));
+ underTest.execute();
assertThat(events).extracting("name").containsOnly(
"Stop using '" + QP_NAME_2 + "' (" + LANGUAGE_KEY_1 + ")",
import org.sonar.api.utils.System2;
import org.sonar.batch.protocol.Constants;
import org.sonar.batch.protocol.output.BatchReport;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
-import org.sonar.server.computation.component.Component;
-import org.sonar.server.computation.component.ComponentTreeBuilders;
import org.sonar.server.computation.component.DbComponentsRefCache;
-import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.computation.issue.IssueCache;
import org.sonar.server.computation.issue.RuleCache;
import org.sonar.server.issue.notification.IssueChangeNotification;
public void do_not_send_notifications_if_no_subscribers() throws IOException {
when(notifService.hasProjectSubscribersForTypes(PROJECT_UUID, SendIssueNotificationsStep.NOTIF_TYPES)).thenReturn(false);
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(new DumbComponent(Component.Type.PROJECT, 1, null, null))));
+ sut.execute();
verify(notifService, never()).deliver(any(Notification.class));
}
when(notifService.hasProjectSubscribersForTypes(PROJECT_UUID, SendIssueNotificationsStep.NOTIF_TYPES)).thenReturn(true);
- sut.execute(new ComputationContext(ComponentTreeBuilders.from(new DumbComponent(Component.Type.PROJECT, 1, null, null))));
+ sut.execute();
verify(notifService).deliver(any(NewIssuesNotification.class));
verify(notifService, atLeastOnce()).deliver(any(IssueChangeNotification.class));
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.persistence.DbTester;
import org.sonar.server.component.db.SnapshotDao;
-import org.sonar.server.computation.ComputationContext;
import org.sonar.server.computation.batch.BatchReportReaderRule;
import org.sonar.server.db.DbClient;
import org.sonar.test.DbTests;
reportReader.setMetadata(BatchReport.Metadata.newBuilder()
.setSnapshotId(1L).build());
- sut.execute(mock(ComputationContext.class));
+ sut.execute();
db.assertDbUnit(getClass(), "snapshots-result.xml", "snapshots");
}