use of com.synopsys.integration.alert.api.task.TaskManager in project hub-alert by blackducksoftware.
the class ProcessingTaskTest method testReadException.
@Test
void testReadException() {
TaskManager taskManager = Mockito.mock(TaskManager.class);
TaskScheduler taskScheduler = Mockito.mock(TaskScheduler.class);
DefaultNotificationAccessor notificationManager = Mockito.mock(DefaultNotificationAccessor.class);
StaticJobAccessor jobAccessor = Mockito.mock(StaticJobAccessor.class);
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();
Mockito.doThrow(new RuntimeException("Exception reading data")).when(notificationManager).findByCreatedAtBetween(dateRange.getStart(), dateRange.getEnd(), AlertPagedModel.DEFAULT_PAGE_NUMBER, AlertPagedModel.DEFAULT_PAGE_SIZE);
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 testRun.
@Test
void testRun() 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());
JobNotificationMapper jobNotificationMapper = Mockito.mock(JobNotificationMapper.class);
StatefulAlertPage<FilteredJobNotificationWrapper, RuntimeException> statefulAlertPage = new StatefulAlertPage(AlertPagedDetails.emptyPage(), Mockito.mock(PageRetriever.class), BlackDuckNotificationRetriever.HAS_NEXT_PAGE);
Mockito.when(jobNotificationMapper.mapJobsToNotifications(Mockito.anyList(), Mockito.anyList())).thenReturn(statefulAlertPage);
NotificationProcessor notificationProcessor = Mockito.mock(NotificationProcessor.class);
ProcessingTask task = createTask(taskScheduler, notificationManager, notificationProcessor, taskManager, jobAccessor);
int expectedPages = 5;
int count = ProcessingTask.PAGE_SIZE * expectedPages;
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);
ProcessingTask processingTask = Mockito.spy(task);
processingTask.run();
Mockito.verify(processingTask).getDateRange();
Mockito.verify(processingTask, Mockito.times(expectedPages + 1)).read(Mockito.any(), Mockito.anyInt(), Mockito.anyInt());
}
use of com.synopsys.integration.alert.api.task.TaskManager in project hub-alert by blackducksoftware.
the class BlackDuckGlobalApiActionTest method runApiActionTest.
private void runApiActionTest(ThrowingBiFunction<BlackDuckGlobalApiAction, FieldModel, FieldModel, AlertException> apiAction) throws AlertException {
TaskManager taskManager = new TaskManager();
BlackDuckProperties properties = Mockito.mock(BlackDuckProperties.class);
Mockito.when(properties.isConfigEnabled()).thenReturn(true);
FieldModel fieldModel = Mockito.mock(FieldModel.class);
Mockito.when(fieldModel.getId()).thenReturn("1");
Mockito.when(fieldModel.getFieldValue(Mockito.eq(ProviderDescriptor.KEY_PROVIDER_CONFIG_ENABLED))).thenReturn(Optional.of("true"));
String providerConfigName = "Test Provider Config";
Mockito.when(fieldModel.getFieldValue(Mockito.eq(ProviderDescriptor.KEY_PROVIDER_CONFIG_NAME))).thenReturn(Optional.of(providerConfigName));
BlackDuckAccumulator blackDuckAccumulator = Mockito.mock(BlackDuckAccumulator.class);
Mockito.when(blackDuckAccumulator.getTaskName()).thenReturn("accumulator-task");
Mockito.when(blackDuckAccumulator.getFormatedNextRunTime()).thenReturn(Optional.of("SOON"));
BlackDuckDataSyncTask blackDuckDataSyncTask = Mockito.mock(BlackDuckDataSyncTask.class);
Mockito.when(blackDuckDataSyncTask.getTaskName()).thenReturn("data-sync-task");
Mockito.when(blackDuckDataSyncTask.getFormatedNextRunTime()).thenReturn(Optional.of("SOON"));
ConfigurationModel configurationModel = Mockito.mock(ConfigurationModel.class);
Long providerConfigId = -1L;
Mockito.when(configurationModel.getConfigurationId()).thenReturn(providerConfigId);
Mockito.when(configurationModel.getDescriptorId()).thenReturn(providerConfigId);
ConfigurationFieldModel configurationFieldModel = ConfigurationFieldModel.create(ProviderDescriptor.KEY_PROVIDER_CONFIG_ENABLED);
configurationFieldModel.setFieldValue("true");
Mockito.when(configurationModel.getField(ProviderDescriptor.KEY_PROVIDER_CONFIG_ENABLED)).thenReturn(Optional.of(configurationFieldModel));
ConfigurationModelConfigurationAccessor configurationModelConfigurationAccessor = Mockito.mock(ConfigurationModelConfigurationAccessor.class);
Mockito.when(configurationModelConfigurationAccessor.getProviderConfigurationByName(Mockito.anyString())).thenReturn(Optional.of(configurationModel));
Mockito.when(configurationModelConfigurationAccessor.getConfigurationsByDescriptorKeyAndContext(Mockito.any(BlackDuckProviderKey.class), Mockito.eq(ConfigContextEnum.DISTRIBUTION))).thenReturn(List.of());
BlackDuckProviderKey blackDuckProviderKey = new BlackDuckProviderKey();
StatefulProvider statefulProvider = Mockito.mock(StatefulProvider.class);
BlackDuckProvider blackDuckProvider = Mockito.mock(BlackDuckProvider.class);
Mockito.when(blackDuckProvider.validate(configurationModel)).thenReturn(true);
Mockito.when(blackDuckProvider.createStatefulProvider(configurationModel)).thenReturn(statefulProvider);
Mockito.when(statefulProvider.getKey()).thenReturn(blackDuckProviderKey);
Mockito.when(statefulProvider.getConfigId()).thenReturn(providerConfigId);
Mockito.when(statefulProvider.isConfigEnabled()).thenReturn(true);
Mockito.when(statefulProvider.getConfigName()).thenReturn(providerConfigName);
Mockito.when(statefulProvider.getProperties()).thenReturn(properties);
Mockito.when(statefulProvider.getTasks()).thenReturn(List.of(blackDuckAccumulator, blackDuckDataSyncTask));
BlackDuckPropertiesFactory propertiesFactory = Mockito.mock(BlackDuckPropertiesFactory.class);
Mockito.when(propertiesFactory.createProperties((ConfigurationModel) Mockito.any())).thenReturn(properties);
ProviderDataAccessor providerDataAccessor = Mockito.mock(ProviderDataAccessor.class);
ConfigurationFieldModelConverter fieldModelConverter = Mockito.mock(ConfigurationFieldModelConverter.class);
Mockito.when(fieldModelConverter.convertToConfigurationModel(Mockito.any())).thenReturn(configurationModel);
BlackDuckCacheHttpClientCache blackDuckCacheHttpClientCache = Mockito.mock(BlackDuckCacheHttpClientCache.class);
ProviderSchedulingManager providerLifecycleManager = new ProviderSchedulingManager(List.of(blackDuckProvider), taskManager, null);
BlackDuckGlobalApiAction blackDuckGlobalApiAction = new BlackDuckGlobalApiAction(blackDuckProvider, providerLifecycleManager, providerDataAccessor, configurationModelConfigurationAccessor, blackDuckCacheHttpClientCache);
Optional<String> initialAccumulatorNextRunTime = taskManager.getNextRunTime(blackDuckAccumulator.getTaskName());
Optional<String> initialSyncNextRunTime = taskManager.getNextRunTime(blackDuckDataSyncTask.getTaskName());
assertTrue(initialAccumulatorNextRunTime.isEmpty());
assertTrue(initialSyncNextRunTime.isEmpty());
apiAction.apply(blackDuckGlobalApiAction, fieldModel);
Optional<String> accumulatorNextRunTime = taskManager.getNextRunTime(blackDuckAccumulator.getTaskName());
Optional<String> syncNextRunTime = taskManager.getNextRunTime(blackDuckDataSyncTask.getTaskName());
assertTrue(accumulatorNextRunTime.isPresent(), "The accumulator task next run time was not present");
assertTrue(syncNextRunTime.isPresent(), "The sync task next run time was not present");
}
Aggregations