@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();
}