Search in sources :

Example 31 with CeTask

use of org.sonar.ce.task.CeTask in project sonarqube by SonarSource.

the class InternalCeQueueImplTest method submit_returns_task_without_component_info_when_submit_has_none.

@Test
public void submit_returns_task_without_component_info_when_submit_has_none() {
    CeTaskSubmit taskSubmit = createTaskSubmit("not cpt related");
    CeTask task = underTest.submit(taskSubmit);
    verifyCeTask(taskSubmit, task, null, null);
}
Also used : CeTask(org.sonar.ce.task.CeTask) Test(org.junit.Test)

Example 32 with CeTask

use of org.sonar.ce.task.CeTask in project sonarqube by SonarSource.

the class InternalCeQueueImplTest method submit_returns_task_populated_from_CeTaskSubmit_and_creates_CeQueue_row.

@Test
public void submit_returns_task_populated_from_CeTaskSubmit_and_creates_CeQueue_row() {
    CeTaskSubmit taskSubmit = createTaskSubmit(CeTaskTypes.REPORT, newProjectDto("PROJECT_1"), "rob");
    CeTask task = underTest.submit(taskSubmit);
    UserDto userDto = db.getDbClient().userDao().selectByUuid(db.getSession(), taskSubmit.getSubmitterUuid());
    verifyCeTask(taskSubmit, task, null, userDto);
    verifyCeQueueDtoForTaskSubmit(taskSubmit);
}
Also used : UserDto(org.sonar.db.user.UserDto) CeTask(org.sonar.ce.task.CeTask) Test(org.junit.Test)

Example 33 with CeTask

use of org.sonar.ce.task.CeTask in project sonarqube by SonarSource.

the class InternalCeQueueImplTest method test_peek.

@Test
public void test_peek() {
    CeTask task = submit(CeTaskTypes.REPORT, newProjectDto("PROJECT_1"));
    Optional<CeTask> peek = underTest.peek(WORKER_UUID_1, true);
    assertThat(peek).isPresent();
    assertThat(peek.get().getUuid()).isEqualTo(task.getUuid());
    assertThat(peek.get().getType()).isEqualTo(CeTaskTypes.REPORT);
    assertThat(peek.get().getComponent()).contains(new CeTask.Component("PROJECT_1", null, null));
    assertThat(peek.get().getMainComponent()).contains(peek.get().getComponent().get());
    // no more pending tasks
    peek = underTest.peek(WORKER_UUID_2, true);
    assertThat(peek).isEmpty();
}
Also used : CeTask(org.sonar.ce.task.CeTask) Test(org.junit.Test)

Example 34 with CeTask

use of org.sonar.ce.task.CeTask in project sonarqube by SonarSource.

the class InternalCeQueueImplTest method remove_saves_error_message_and_stacktrace_when_exception_is_provided.

@Test
public void remove_saves_error_message_and_stacktrace_when_exception_is_provided() {
    Throwable error = new NullPointerException("Fake NPE to test persistence to DB");
    CeTask task = submit(CeTaskTypes.REPORT, newProjectDto("PROJECT_1"));
    Optional<CeTask> peek = underTest.peek(WORKER_UUID_1, true);
    underTest.remove(peek.get(), CeActivityDto.Status.FAILED, null, error);
    Optional<CeActivityDto> activityDto = db.getDbClient().ceActivityDao().selectByUuid(session, task.getUuid());
    assertThat(activityDto).isPresent();
    assertThat(activityDto.get().getErrorMessage()).isEqualTo(error.getMessage());
    assertThat(activityDto.get().getErrorStacktrace()).isEqualToIgnoringWhitespace(stacktraceToString(error));
    assertThat(activityDto.get().getErrorType()).isNull();
}
Also used : CeActivityDto(org.sonar.db.ce.CeActivityDto) CeTask(org.sonar.ce.task.CeTask) Test(org.junit.Test)

Example 35 with CeTask

use of org.sonar.ce.task.CeTask in project sonarqube by SonarSource.

the class InternalCeQueueImplTest method remove_updates_queueStatus_failure_even_if_task_does_not_exist_in_DB.

@Test
public void remove_updates_queueStatus_failure_even_if_task_does_not_exist_in_DB() {
    CEQueueStatus queueStatusMock = mock(CEQueueStatus.class);
    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);
    try {
        underTest.remove(task, CeActivityDto.Status.FAILED, null, null);
        fail("remove should have thrown a IllegalStateException");
    } catch (IllegalStateException e) {
        verify(queueStatusMock).addError(anyLong());
    }
}
Also used : CEQueueStatus(org.sonar.ce.monitoring.CEQueueStatus) CeTask(org.sonar.ce.task.CeTask) Test(org.junit.Test)

Aggregations

CeTask (org.sonar.ce.task.CeTask)85 Test (org.junit.Test)75 CeQueueDto (org.sonar.db.ce.CeQueueDto)17 CeActivityDto (org.sonar.db.ce.CeActivityDto)16 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)12 ComponentDto (org.sonar.db.component.ComponentDto)12 UserDto (org.sonar.db.user.UserDto)10 MessageException (org.sonar.api.utils.MessageException)7 Optional (java.util.Optional)5 Random (java.util.Random)5 CheckForNull (javax.annotation.CheckForNull)5 System2 (org.sonar.api.utils.System2)5 DbSession (org.sonar.db.DbSession)5 List (java.util.List)4 Map (java.util.Map)4 CountDownLatch (java.util.concurrent.CountDownLatch)4 Nullable (javax.annotation.Nullable)4 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)4 Assertions.assertThatThrownBy (org.assertj.core.api.Assertions.assertThatThrownBy)4 Rule (org.junit.Rule)4