use of com.synopsys.integration.alert.api.task.TaskManager in project hub-alert by blackducksoftware.
the class ProcessingTaskTest method testReadEmptyList.
@Test
void testReadEmptyList() {
TaskManager taskManager = Mockito.mock(TaskManager.class);
TaskScheduler taskScheduler = Mockito.mock(TaskScheduler.class);
NotificationAccessor notificationManager = new MockProcessingNotificationAccessor(List.of());
StaticJobAccessor jobAccessor = Mockito.mock(StaticJobAccessor.class);
Mockito.when(jobAccessor.hasJobsByFrequency(Mockito.any())).thenReturn(true);
NotificationDetailExtractionDelegator extractionDelegator = new NotificationDetailExtractionDelegator(blackDuckResponseResolver, List.of());
NotificationProcessor notificationProcessor = new NotificationProcessor(extractionDelegator, null, null, null, null, null);
ProcessingTask task = createTask(taskScheduler, notificationManager, notificationProcessor, taskManager, jobAccessor);
DateRange dateRange = task.getDateRange();
ProcessingTask processingTask = Mockito.spy(task);
List<AlertNotificationModel> actualModelList = processingTask.read(dateRange, AlertPagedModel.DEFAULT_PAGE_NUMBER, AlertPagedModel.DEFAULT_PAGE_SIZE).getModels();
assertEquals(Collections.emptyList(), actualModelList);
}
use of com.synopsys.integration.alert.api.task.TaskManager in project hub-alert by blackducksoftware.
the class ProcessingTaskTest method testPagedRead.
@Test
void testPagedRead() throws IOException {
TaskManager taskManager = Mockito.mock(TaskManager.class);
TaskScheduler taskScheduler = Mockito.mock(TaskScheduler.class);
NotificationAccessor notificationManager = new MockProcessingNotificationAccessor(List.of());
StaticJobAccessor jobAccessor = Mockito.mock(StaticJobAccessor.class);
Mockito.when(jobAccessor.hasJobsByFrequency(Mockito.any())).thenReturn(true);
NotificationDetailExtractionDelegator extractionDelegator = new NotificationDetailExtractionDelegator(blackDuckResponseResolver, List.of());
NotificationProcessor notificationProcessor = new NotificationProcessor(extractionDelegator, null, null, null, null, null);
ProcessingTask task = createTask(taskScheduler, notificationManager, notificationProcessor, taskManager, jobAccessor);
int count = 20;
List<AlertNotificationModel> allModels = new ArrayList<>(count);
for (int index = 0; index < count; index++) {
String notificationJson = TestResourceUtils.readFileToString("json/projectVersionNotification.json");
AlertNotificationModel model = new AlertNotificationModel(Integer.valueOf(index).longValue(), 1L, "BlackDuck", "BlackDuck_1", "PROJECT_VERSION", notificationJson, DateUtils.createCurrentDateTimestamp(), DateUtils.createCurrentDateTimestamp(), false);
allModels.add(model);
}
notificationManager.saveAllNotifications(allModels);
DateRange dateRange = task.getDateRange();
int pageSize = 5;
int totalPages = count / pageSize;
List<AlertNotificationModel> testModels = new ArrayList<>(count);
for (int currentPage = 0; currentPage < totalPages; currentPage++) {
AlertPagedModel<AlertNotificationModel> pagedModel = task.read(dateRange, currentPage, pageSize);
assertEquals(totalPages, pagedModel.getTotalPages());
assertEquals(currentPage, pagedModel.getCurrentPage());
assertEquals(pageSize, pagedModel.getPageSize());
testModels.addAll(pagedModel.getModels());
}
assertEquals(allModels.size(), testModels.size());
assertTrue(allModels.containsAll(testModels));
}
use of com.synopsys.integration.alert.api.task.TaskManager in project hub-alert by blackducksoftware.
the class TaskActionTest method testReadTasks.
@Test
public void testReadTasks() {
Long expectedDelay = 1000L;
TaskScheduler scheduler = Mockito.mock(TaskScheduler.class);
ScheduledFuture scheduledFuture = Mockito.mock(ScheduledFuture.class);
Mockito.when(scheduledFuture.isDone()).thenReturn(Boolean.FALSE);
Mockito.when(scheduledFuture.getDelay(Mockito.eq(TimeUnit.MILLISECONDS))).thenReturn(expectedDelay);
Mockito.when(scheduler.scheduleAtFixedRate(Mockito.any(), Mockito.anyLong())).thenReturn(scheduledFuture);
ScheduledTask task = new ScheduledTask(scheduler) {
@Override
public void runTask() {
}
@Override
public String scheduleCronExpression() {
return ScheduledTask.EVERY_MINUTE_CRON_EXPRESSION;
}
};
TaskManagementDescriptorKey descriptorKey = new TaskManagementDescriptorKey();
AuthorizationManager authorizationManager = Mockito.mock(AuthorizationManager.class);
Mockito.when(authorizationManager.hasReadPermission(Mockito.eq(ConfigContextEnum.GLOBAL), Mockito.eq(descriptorKey))).thenReturn(Boolean.TRUE);
TaskManager taskManager = new TaskManager();
taskManager.registerTask(task);
taskManager.scheduleExecutionAtFixedRate(expectedDelay, task.getTaskName());
TaskActions actions = new TaskActions(descriptorKey, authorizationManager, taskManager);
ActionResponse<MultiTaskMetaDataModel> response = actions.getTasks();
assertTrue(response.isSuccessful());
assertTrue(response.hasContent());
MultiTaskMetaDataModel tasksModel = response.getContent().orElse(new MultiTaskMetaDataModel(List.of()));
TaskMetaData model = tasksModel.getTasks().stream().findFirst().orElse(null);
assertNotNull(model);
assertNotNull(task.getTaskName());
assertEquals(task.getFormatedNextRunTime().orElse(""), model.getNextRunTime());
}
use of com.synopsys.integration.alert.api.task.TaskManager in project hub-alert by blackducksoftware.
the class TaskActionTest method testReadForbiddenTasks.
@Test
public void testReadForbiddenTasks() {
TaskManagementDescriptorKey descriptorKey = new TaskManagementDescriptorKey();
AuthorizationManager authorizationManager = Mockito.mock(AuthorizationManager.class);
Mockito.when(authorizationManager.hasReadPermission(Mockito.eq(ConfigContextEnum.GLOBAL), Mockito.eq(descriptorKey))).thenReturn(Boolean.FALSE);
TaskManager taskManager = new TaskManager();
TaskActions actions = new TaskActions(descriptorKey, authorizationManager, taskManager);
ActionResponse<MultiTaskMetaDataModel> response = actions.getTasks();
assertTrue(response.isError());
assertFalse(response.hasContent());
}
use of com.synopsys.integration.alert.api.task.TaskManager in project hub-alert by blackducksoftware.
the class TaskManagerTest method testRegistration.
@Test
public void testRegistration() {
ScheduledTask task = Mockito.mock(ScheduledTask.class);
final String taskName = "a_task";
Mockito.when(task.getTaskName()).thenReturn(taskName);
TaskManager taskManager = new TaskManager();
taskManager.registerTask(task);
assertEquals(1, taskManager.getTaskCount());
Optional<ScheduledTask> emptyTask = taskManager.unregisterTask("unknown_task");
assertTrue(emptyTask.isEmpty());
assertEquals(1, taskManager.getTaskCount());
Optional<ScheduledTask> removedTask = taskManager.unregisterTask(taskName);
assertTrue(removedTask.isPresent());
assertEquals(0, taskManager.getTaskCount());
}
Aggregations