Search in sources :

Example 56 with IdmScheduledTaskDto

use of eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto in project CzechIdMng by bcvsolutions.

the class DefaultIdmProcessedTaskItemServiceTest method testCreateItem.

@Test
public void testCreateItem() {
    IdmScheduledTaskDto d = getHelper().createSchedulableTask();
    IdmLongRunningTaskDto lrt = this.createLongRunningTask(d);
    IdmProcessedTaskItemDto item = getHelper().prepareProcessedItem(lrt);
    // 
    IdmProcessedTaskItemDto retrieved = service.get(service.saveInternal(item).getId());
    // 
    assertNotNull(retrieved);
    assertEquals(item.getReferencedDtoType(), retrieved.getReferencedDtoType());
    assertEquals(item.getReferencedEntityId(), retrieved.getReferencedEntityId());
    assertEquals(item.getLongRunningTask(), retrieved.getLongRunningTask());
}
Also used : IdmLongRunningTaskDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmLongRunningTaskDto) IdmScheduledTaskDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto) IdmProcessedTaskItemDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmProcessedTaskItemDto) AbstractIntegrationTest(eu.bcvsolutions.idm.test.api.AbstractIntegrationTest) Test(org.junit.Test)

Example 57 with IdmScheduledTaskDto

use of eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto in project CzechIdMng by bcvsolutions.

the class DefaultIdmProcessedTaskItemServiceTest method getOperationState.

@Test
public void getOperationState() {
    IdmScheduledTaskDto d = getHelper().createSchedulableTask();
    // 
    IdmProcessedTaskItemDto item = service.saveInternal(getHelper().prepareProcessedItem(d));
    IdmProcessedTaskItemDto item2 = service.saveInternal(getHelper().prepareProcessedItem(d));
    IdmProcessedTaskItemDto item3 = service.saveInternal(getHelper().prepareProcessedItem(d, OperationState.CANCELED));
    // 
    IdmProcessedTaskItemFilter filter = new IdmProcessedTaskItemFilter();
    filter.setOperationState(item.getOperationResult().getState());
    Page<IdmProcessedTaskItemDto> result = service.find(filter, null);
    assertTrue(result.getContent().contains(item));
    assertTrue(result.getContent().contains(item2));
    assertFalse(result.getContent().contains(item3));
}
Also used : IdmScheduledTaskDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto) IdmProcessedTaskItemFilter(eu.bcvsolutions.idm.core.scheduler.api.dto.filter.IdmProcessedTaskItemFilter) IdmProcessedTaskItemDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmProcessedTaskItemDto) AbstractIntegrationTest(eu.bcvsolutions.idm.test.api.AbstractIntegrationTest) Test(org.junit.Test)

Example 58 with IdmScheduledTaskDto

use of eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto in project CzechIdMng by bcvsolutions.

the class DefaultIdmProcessedTaskItemServiceTest method getLongRunningTaskIdFilter.

@Test
public void getLongRunningTaskIdFilter() {
    IdmScheduledTaskDto d = getHelper().createSchedulableTask();
    IdmLongRunningTaskDto lrt = this.createLongRunningTask(d);
    IdmLongRunningTaskDto lrt2 = this.createLongRunningTask(d);
    // 
    IdmProcessedTaskItemDto item = service.saveInternal(getHelper().prepareProcessedItem(lrt));
    IdmProcessedTaskItemDto item2 = service.saveInternal(getHelper().prepareProcessedItem(lrt));
    IdmProcessedTaskItemDto item3 = service.saveInternal(getHelper().prepareProcessedItem(lrt2));
    // 
    IdmProcessedTaskItemFilter filter = new IdmProcessedTaskItemFilter();
    filter.setLongRunningTaskId(lrt.getId());
    Page<IdmProcessedTaskItemDto> result = service.find(filter, null);
    assertEquals("Wrong number of items!", 2, result.getTotalElements());
    assertTrue(result.getContent().contains(item));
    assertTrue(result.getContent().contains(item2));
    assertFalse(result.getContent().contains(item3));
}
Also used : IdmLongRunningTaskDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmLongRunningTaskDto) IdmScheduledTaskDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto) IdmProcessedTaskItemFilter(eu.bcvsolutions.idm.core.scheduler.api.dto.filter.IdmProcessedTaskItemFilter) IdmProcessedTaskItemDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmProcessedTaskItemDto) AbstractIntegrationTest(eu.bcvsolutions.idm.test.api.AbstractIntegrationTest) Test(org.junit.Test)

Example 59 with IdmScheduledTaskDto

use of eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto in project CzechIdMng by bcvsolutions.

the class DefaultIdmProcessedTaskItemServiceTest method referencedEntityTypeFilter.

@Test
public void referencedEntityTypeFilter() {
    IdmScheduledTaskDto d = getHelper().createSchedulableTask();
    IdmProcessedTaskItemDto item = service.saveInternal(getHelper().prepareProcessedItem(d));
    IdmProcessedTaskItemDto item2 = service.saveInternal(getHelper().prepareProcessedItem(d));
    // 
    IdmProcessedTaskItemFilter filter = new IdmProcessedTaskItemFilter();
    filter.setReferencedEntityId(item.getReferencedEntityId());
    filter.setReferencedEntityType(item.getReferencedDtoType());
    Page<IdmProcessedTaskItemDto> result = service.find(filter, null);
    Assert.assertEquals(1, result.getTotalElements());
    Assert.assertTrue(result.getContent().contains(item));
    // 
    filter.setReferencedEntityId(item2.getReferencedEntityId());
    result = service.find(filter, null);
    Assert.assertEquals(1, result.getTotalElements());
    Assert.assertTrue(result.getContent().contains(item2));
}
Also used : IdmScheduledTaskDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto) IdmProcessedTaskItemFilter(eu.bcvsolutions.idm.core.scheduler.api.dto.filter.IdmProcessedTaskItemFilter) IdmProcessedTaskItemDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmProcessedTaskItemDto) AbstractIntegrationTest(eu.bcvsolutions.idm.test.api.AbstractIntegrationTest) Test(org.junit.Test)

Example 60 with IdmScheduledTaskDto

use of eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto in project CzechIdMng by bcvsolutions.

the class AbstractSchedulableStatefulExecutorIntegrationTest method testDontRemoveProcessedQueueOnCancel.

@Test
public void testDontRemoveProcessedQueueOnCancel() throws Exception {
    TestIdentityIntegrationExecutor executor = new TestIdentityIntegrationExecutor();
    AutowireHelper.autowire(executor);
    // manually prepare control entities - normally scheduler will take care of it itself
    IdmScheduledTaskDto scheduledTask = createIdmScheduledTask(UUID.randomUUID().toString());
    IdmLongRunningTaskDto longRunningTask = createIdmLongRunningTask(scheduledTask, TestIdentityIntegrationExecutor.class);
    executor.setLongRunningTaskId(longRunningTask.getId());
    // first run
    List<IdmIdentityDto> itemsToProcess = findTestIdentities();
    // set executor data
    executor.dtos = itemsToProcess;
    // 
    Boolean result = executor.process();
    Page<IdmProcessedTaskItemDto> queueItems = itemService.findQueueItems(scheduledTask, null);
    Page<IdmProcessedTaskItemDto> logItems = itemService.findLogItems(longRunningTask, null);
    // 
    assertTrue(result);
    assertEquals(longRunningTask.getScheduledTask(), scheduledTask.getId());
    assertEquals(itemsToProcess.size(), queueItems.getTotalElements());
    assertEquals(itemsToProcess.size(), logItems.getTotalElements());
    assertEquals(Long.valueOf(itemsToProcess.size()), executor.getCount());
    assertEquals(Long.valueOf(itemsToProcess.size()), executor.getCounter());
    SchedulerTestUtils.checkLogItems(longRunningTask, IdmIdentityDto.class, logItems);
    SchedulerTestUtils.checkQueueItems(scheduledTask, IdmIdentityDto.class, queueItems);
    // 
    // second run
    // 
    longRunningTask = createIdmLongRunningTask(scheduledTask, TestIdentityIntegrationExecutor.class);
    executor.setLongRunningTaskId(longRunningTask.getId());
    executor.dtos = itemsToProcess;
    // 
    result = executor.process();
    queueItems = itemService.findQueueItems(scheduledTask, null);
    logItems = itemService.findLogItems(longRunningTask, null);
    // 
    assertTrue(result);
    assertEquals(itemsToProcess.size(), queueItems.getTotalElements());
    assertEquals(0, logItems.getTotalElements());
    assertEquals(Long.valueOf(0), executor.getCount());
    assertEquals(Long.valueOf(0), executor.getCounter());
    // 
    // third run with cancel
    // 
    longRunningTask = createIdmLongRunningTask(scheduledTask, TestIdentityIntegrationExecutor.class);
    executor.setLongRunningTaskId(longRunningTask.getId());
    executor.dtos = itemsToProcess;
    executor.cancel = true;
    // 
    result = executor.process();
    queueItems = itemService.findQueueItems(scheduledTask, null);
    logItems = itemService.findLogItems(longRunningTask, null);
    longRunningTask = longRunningTaskManager.getLongRunningTask(longRunningTask.getId());
    // 
    assertTrue(result);
    assertEquals(itemsToProcess.size(), queueItems.getTotalElements());
    assertEquals(0, logItems.getTotalElements());
    // 
    // four run after cancel
    // 
    longRunningTask = createIdmLongRunningTask(scheduledTask, TestIdentityIntegrationExecutor.class);
    executor.setLongRunningTaskId(longRunningTask.getId());
    executor.dtos = itemsToProcess;
    executor.cancel = false;
    // 
    result = executor.process();
    queueItems = itemService.findQueueItems(scheduledTask, null);
    logItems = itemService.findLogItems(longRunningTask, null);
    longRunningTask = longRunningTaskManager.getLongRunningTask(longRunningTask.getId());
    // 
    assertTrue(result);
    assertEquals(longRunningTask.getScheduledTask(), scheduledTask.getId());
    assertEquals(itemsToProcess.size(), queueItems.getTotalElements());
    assertEquals(0, logItems.getTotalElements());
    // 
    // five run with empty dtos - clear the queure
    longRunningTask = createIdmLongRunningTask(scheduledTask, TestIdentityIntegrationExecutor.class);
    executor.setLongRunningTaskId(longRunningTask.getId());
    // 
    result = executor.process();
    queueItems = itemService.findQueueItems(scheduledTask, null);
    logItems = itemService.findLogItems(longRunningTask, null);
    longRunningTask = longRunningTaskManager.getLongRunningTask(longRunningTask.getId());
    // 
    assertTrue(result);
    assertEquals(0, queueItems.getTotalElements());
    assertEquals(0, logItems.getTotalElements());
}
Also used : IdmLongRunningTaskDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmLongRunningTaskDto) IdmScheduledTaskDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto) IdmProcessedTaskItemDto(eu.bcvsolutions.idm.core.scheduler.api.dto.IdmProcessedTaskItemDto) IdmIdentityDto(eu.bcvsolutions.idm.core.api.dto.IdmIdentityDto) AbstractIntegrationTest(eu.bcvsolutions.idm.test.api.AbstractIntegrationTest) Test(org.junit.Test)

Aggregations

IdmScheduledTaskDto (eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto)63 Test (org.junit.Test)50 IdmProcessedTaskItemDto (eu.bcvsolutions.idm.core.scheduler.api.dto.IdmProcessedTaskItemDto)46 AbstractIntegrationTest (eu.bcvsolutions.idm.test.api.AbstractIntegrationTest)40 IdmLongRunningTaskDto (eu.bcvsolutions.idm.core.scheduler.api.dto.IdmLongRunningTaskDto)32 IdmIdentityDto (eu.bcvsolutions.idm.core.api.dto.IdmIdentityDto)24 IdmProcessedTaskItemFilter (eu.bcvsolutions.idm.core.scheduler.api.dto.filter.IdmProcessedTaskItemFilter)18 IdmPasswordDto (eu.bcvsolutions.idm.core.api.dto.IdmPasswordDto)9 UUID (java.util.UUID)9 AbstractVerifiableUnitTest (eu.bcvsolutions.idm.test.api.AbstractVerifiableUnitTest)8 OperationResult (eu.bcvsolutions.idm.core.api.entity.OperationResult)7 Task (eu.bcvsolutions.idm.core.scheduler.api.dto.Task)7 Pageable (org.springframework.data.domain.Pageable)5 LocalDate (org.joda.time.LocalDate)4 PageImpl (org.springframework.data.domain.PageImpl)4 AbstractDto (eu.bcvsolutions.idm.core.api.dto.AbstractDto)3 IdmIdentityContractDto (eu.bcvsolutions.idm.core.api.dto.IdmIdentityContractDto)3 CoreException (eu.bcvsolutions.idm.core.api.exception.CoreException)3 IdmLongRunningTaskFilter (eu.bcvsolutions.idm.core.scheduler.api.dto.filter.IdmLongRunningTaskFilter)2 SchedulableTaskExecutor (eu.bcvsolutions.idm.core.scheduler.api.service.SchedulableTaskExecutor)2