public int deleteByUuid(DbSession session, String uuid) { return deleteByUuid(session, uuid, null); }
@Test public void test_delete() { insertPending(TASK_UUID_1, MAIN_COMPONENT_UUID_1); insertPending(TASK_UUID_2, MAIN_COMPONENT_UUID_1); int deletedCount = underTest.deleteByUuid(db.getSession(), "UNKNOWN"); assertThat(deletedCount).isEqualTo(0); assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_1)).isPresent(); deletedCount = underTest.deleteByUuid(db.getSession(), TASK_UUID_1); assertThat(deletedCount).isEqualTo(1); assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_1)).isEmpty(); deletedCount = underTest.deleteByUuid(db.getSession(), TASK_UUID_2, null); assertThat(deletedCount).isEqualTo(1); assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_2)).isEmpty(); }
@Test public void test_delete_with_expected_status() { insertPending(TASK_UUID_1, MAIN_COMPONENT_UUID_1); insertInProgress(TASK_UUID_2, MAIN_COMPONENT_UUID_1); int deletedCount = underTest.deleteByUuid(db.getSession(), "UNKNOWN", null); assertThat(deletedCount).isEqualTo(0); assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_1)).isPresent(); deletedCount = underTest.deleteByUuid(db.getSession(), TASK_UUID_1, new DeleteIf(IN_PROGRESS)); assertThat(deletedCount).isEqualTo(0); assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_1)).isPresent(); deletedCount = underTest.deleteByUuid(db.getSession(), TASK_UUID_2, new DeleteIf(PENDING)); assertThat(deletedCount).isEqualTo(0); assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_2)).isPresent(); deletedCount = underTest.deleteByUuid(db.getSession(), TASK_UUID_1, new DeleteIf(PENDING)); assertThat(deletedCount).isEqualTo(1); assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_1)).isEmpty(); deletedCount = underTest.deleteByUuid(db.getSession(), TASK_UUID_2, new DeleteIf(IN_PROGRESS)); assertThat(deletedCount).isEqualTo(1); assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_2)).isEmpty(); }
protected void remove(DbSession dbSession, CeQueueDto queueDto, CeActivityDto activityDto) { String taskUuid = queueDto.getUuid(); CeQueueDto.Status expectedQueueDtoStatus = queueDto.getStatus(); dbClient.ceActivityDao().insert(dbSession, activityDto); dbClient.ceTaskInputDao().deleteByUuids(dbSession, singleton(taskUuid)); int deletedTasks = dbClient.ceQueueDao().deleteByUuid(dbSession, taskUuid, new DeleteIf(expectedQueueDtoStatus)); if (deletedTasks == 1) { dbSession.commit(); } else { Loggers.get(CeQueueImpl.class).debug( "Remove rolled back because task in queue with uuid {} and status {} could not be deleted", taskUuid, expectedQueueDtoStatus); dbSession.rollback(); } }
@Test public void remove_updates_queueStatus_success_even_if_task_does_not_exist_in_DB() { CEQueueStatus queueStatus = 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, queueStatus, null, null); try { underTest.remove(task, CeActivityDto.Status.SUCCESS, null, null); fail("remove should have thrown a IllegalStateException"); } catch (IllegalStateException e) { verify(queueStatus).addSuccess(anyLong()); } }
@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, null); try { underTest.remove(task, CeActivityDto.Status.FAILED, null, null); fail("remove should have thrown a IllegalStateException"); } catch (IllegalStateException e) { verify(queueStatusMock).addError(anyLong()); } }
protected void remove(DbSession dbSession, CeQueueDto queueDto, CeActivityDto activityDto) { dbClient.ceActivityDao().insert(dbSession, activityDto); dbClient.ceQueueDao().deleteByUuid(dbSession, queueDto.getUuid()); dbClient.ceTaskInputDao().deleteByUuids(dbSession, singleton(queueDto.getUuid())); dbSession.commit(); }