public async Task GivenRequest_WhenNoMatchingVacanciesToTransfer_AndProviderHasManyLegalEntityPermissions_ThenShouldNotQueueAnyTransfers()
        {
            const long   Ukprn = 1;
            const string AccountLegalEntityPublicHashedId = "2";
            const string EmployerAccountId = "employer-account-id";

            _mockVacancyQuery.Setup(x => x.GetProviderOwnedVacanciesForLegalEntityAsync(Ukprn, AccountLegalEntityPublicHashedId))
            .ReturnsAsync(Enumerable.Empty <Vacancy>());

            var employerInfo = new EmployerInfo
            {
                LegalEntities = new List <LegalEntity>
                {
                    new LegalEntity
                    {
                        AccountLegalEntityPublicHashedId = "2"
                    },
                    new LegalEntity
                    {
                        AccountLegalEntityPublicHashedId = "12345"
                    }
                }
            };

            _mockQueryStoreReader.Setup(q => q.GetProviderEmployerVacancyDataAsync(Ukprn, EmployerAccountId))
            .ReturnsAsync(employerInfo);

            await _sut.Run(Ukprn, EmployerAccountId, AccountLegalEntityPublicHashedId, Guid.NewGuid(), string.Empty, string.Empty, TransferReason.EmployerRevokedPermission);

            _mockRecruitQueueService.Verify(x => x.AddMessageAsync(It.IsAny <TransferVacancyToLegalEntityQueueMessage>()), Times.Never);
            _mockVacancyQuery.Verify(x => x.GetProviderOwnedVacanciesForEmployerWithoutAccountLegalEntityPublicHashedIdAsync(It.IsAny <long>(), It.IsAny <string>()), Times.Never);
        }
Ejemplo n.º 2
0
        public async Task GivenRequest_WhenNoMatchingVacanciesToTransfer_ThenShouldNotQueueAnyTransfers()
        {
            _mockVacancyQuery.Setup(x => x.GetProviderOwnedVacanciesForLegalEntityAsync(It.IsAny <long>(), It.IsAny <long>()))
            .ReturnsAsync(Enumerable.Empty <Vacancy>());

            await _sut.Run(1, 1, Guid.NewGuid(), string.Empty, string.Empty, TransferReason.EmployerRevokedPermission);

            _mockRecruitQueueService.Verify(x => x.AddMessageAsync(It.IsAny <TransferVacancyToLegalEntityQueueMessage>()), Times.Never);
        }
        public async Task TransferVacanciesFromProvider([QueueTrigger(QueueNames.TransferVacanciesFromProviderQueueName, Connection = "QueueStorage")] string message, TextWriter log)
        {
            if (_jobsConfig.DisabledJobs.Contains(TriggerName))
            {
                _logger.LogDebug($"{TriggerName} is disabled, skipping ...");
                return;
            }

            if (!string.IsNullOrEmpty(message))
            {
                _logger.LogInformation("Starting queueing vacancies to transfer from provider.");

                try
                {
                    var queueMessage = JsonConvert.DeserializeObject <TransferVacanciesFromProviderQueueMessage>(message);

                    await _runner.Run(queueMessage.Ukprn, queueMessage.EmployerAccountId, queueMessage.AccountLegalEntityPublicHashedId, queueMessage.UserRef, queueMessage.UserEmailAddress, queueMessage.UserName, queueMessage.TransferReason);

                    _logger.LogInformation("Finished queueing vacancies to transfer from provider.");
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex, $"Unable to run {TriggerName}.");
                    throw;
                }
            }
        }