private IlrMessageFactory GetFactory(bool isFirstStage = true, FileUploadJob job = null)
        {
            var mockIFileUploadJobManager = new Mock <IFileUploadJobManager>();

            mockIFileUploadJobManager.Setup(x => x.GetJobById(It.IsAny <long>())).ReturnsAsync(
                job ?? new FileUploadJob
            {
                IsFirstStage = isFirstStage,
                JobId        = 10,
                Ukprn        = 1000
            });

            var mockTopicConfiguration = new Mock <ITopicConfiguration>();

            mockTopicConfiguration.SetupGet(x => x.SubscriptionName).Returns("Validation");

            var jobTopicTaskService = new Mock <IJobTopicTaskService>();

            jobTopicTaskService.Setup(x => x.GetTopicItems(It.IsAny <JobType>(), It.IsAny <bool>(), default(CancellationToken))).ReturnsAsync(
                new List <ITopicItem>()
            {
                new TopicItem("A", "B", new List <ITaskItem>())
            });

            var factory = new IlrMessageFactory(
                new Mock <ILogger>().Object,
                mockIFileUploadJobManager.Object,
                mockTopicConfiguration.Object,
                jobTopicTaskService.Object);

            return(factory);
        }
        public async Task GenerateKeysAsync()
        {
            var job = new FileUploadJob()
            {
                JobType = JobType.IlrSubmission,
                JobId   = 10,
                Ukprn   = 123456
            };

            IlrMessageFactory factory = GetFactory(false, job);

            MessageParameters result = await factory.CreateMessageParametersAsync(It.IsAny <long>());

            result.JobContextMessage.KeyValuePairs[JobContextMessageKey.InvalidLearnRefNumbers].Should()
            .Be($"{job.Ukprn}/{job.JobId}/ValidationInvalidLearners.json");
        }