示例#1
0
        public async Task ProcessDeadLetteredMessage_GivenMessageAndLogIsUpdated_LogsInformation()
        {
            // Arrange
            const string jobId = "job-id-1";

            JobLog jobLog = new JobLog
            {
                Id = "job-log-id-1"
            };

            ApiResponse <JobLog> jobLogResponse = new ApiResponse <JobLog>(HttpStatusCode.OK, jobLog);

            Message message = new Message();

            message.UserProperties.Add("jobId", jobId);

            IJobsApiClient jobsApiClient = CreateJobsApiClient();

            jobsApiClient
            .AddJobLog(Arg.Is(jobId), Arg.Any <JobLogUpdateModel>())
            .Returns(jobLogResponse);

            ILogger logger = CreateLogger();

            IJobHelperService service = CreateJobHelperService(jobsApiClient, logger);

            // Act
            await service.ProcessDeadLetteredMessage(message);

            // Assert
            logger
            .Received(1)
            .Information(Arg.Is($"A new job log was added to inform of a dead lettered message with job log id '{jobLog.Id}' on job with id '{jobId}'"));
        }
示例#2
0
        public async Task ProcessDeadLetteredMessage_GivenMessageButAddingLogCausesException_LogsAnError()
        {
            // Arrange
            const string jobId = "job-id-1";

            Message message = new Message();

            message.UserProperties.Add("jobId", jobId);

            IJobsApiClient jobsApiClient = CreateJobsApiClient();

            jobsApiClient
            .When(x => x.AddJobLog(Arg.Is(jobId), Arg.Any <JobLogUpdateModel>()))
            .Do(x => { throw new Exception(); });

            ILogger logger = CreateLogger();

            IJobHelperService service = CreateJobHelperService(jobsApiClient, logger);

            // Act
            await service.ProcessDeadLetteredMessage(message);

            // Assert
            logger
            .Received(1)
            .Error(Arg.Any <Exception>(), Arg.Is($"Failed to add a job log for job id '{jobId}'"));
        }
示例#3
0
 public async Task Run([ServiceBusTrigger(ServiceBusConstants.QueueNames.AllocationLineResultStatusUpdatesPoisoned, Connection = ServiceBusConstants.ConnectionStringConfigurationKey)] Message message)
 {
     try
     {
         _correlationIdProvider.SetCorrelationId(message.GetCorrelationId());
         await _jobHelperService.ProcessDeadLetteredMessage(message);
     }
     catch (Exception exception)
     {
         _logger.Error(exception, $"An error occurred getting message from queue: {ServiceBusConstants.QueueNames.AllocationLineResultStatusUpdates}");
         throw;
     }
 }
        public async Task Run([ServiceBusTrigger(ServiceBusConstants.QueueNames.CalculationJobInitialiserPoisoned, Connection = ServiceBusConstants.ConnectionStringConfigurationKey)] Message message)
        {
            try
            {
                _correlationIdProvider.SetCorrelationId(message.GetCorrelationId());
                await _jobHelperService.ProcessDeadLetteredMessage(message);

                _logger.Information("Proccessed instruct generate allocations dead lettered message complete");
            }
            catch (Exception exception)
            {
                _logger.Error(exception, $"An error occurred getting message from queue: {ServiceBusConstants.QueueNames.CalculationJobInitialiserPoisoned}");
                throw;
            }
        }
        public async Task Run([ServiceBusTrigger(ServiceBusConstants.QueueNames.CalcEngineGenerateAllocationResultsPoisoned, Connection = ServiceBusConstants.ConnectionStringConfigurationKey)] Message message)
        {
            _logger.Information("Scope created, starting to process dead letter message for generating allocations");

            try
            {
                _correlationIdProvider.SetCorrelationId(message.GetCorrelationId());
                await _jobHelperService.ProcessDeadLetteredMessage(message);

                _logger.Information("Proccessed generate allocations dead lettered message complete");
            }
            catch (Exception exception)
            {
                _logger.Error(exception, $"An error occurred processing message on queue: {ServiceBusConstants.QueueNames.CalcEngineGenerateAllocationResultsPoisoned}");
                throw;
            }
        }
示例#6
0
        public async Task ProcessDeadLetteredMessage_GivenMessageButNoJobId_LogsAnErrorAndDoesNotUpdadeJobLog()
        {
            // Arrange
            Message message = new Message();

            IJobsApiClient jobsApiClient = CreateJobsApiClient();

            ILogger logger = CreateLogger();

            IJobHelperService service = CreateJobHelperService(jobsApiClient, logger);

            // Act
            await service.ProcessDeadLetteredMessage(message);

            // Assert
            logger
            .Received(1)
            .Error(Arg.Is("Missing job id from dead lettered message"));

            await
            jobsApiClient
            .DidNotReceive()
            .AddJobLog(Arg.Any <string>(), Arg.Any <JobLogUpdateModel>());
        }