[InlineData("EASDATA-10003909-20200816-100004.csv", 10003909, 62, 1508)] // all combinations public async Task ProcessEASFile(string filename, int ukPrn, int expectedSubmissionValuesCount, int expectedValidationErrorsCount) { var connString = ConfigurationManager.AppSettings["EasdbConnectionString"]; DbContextOptions <EasContext> options = new DbContextOptionsBuilder <EasContext>().UseSqlServer(connString).UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking).Options; EasContext easdbContext = new EasContext(options); List <EasSubmissionValue> easSubmissionValues = new List <EasSubmissionValue>(); List <ValidationError> validationErrors = new List <ValidationError>(); var easContextMessage = BuildEasJobContextMessage(filename, ukPrn, 0); var builder = new ContainerBuilder(); _output.WriteLine(connString); CleanUp(ukPrn.ToString(), easdbContext); DIComposition.RegisterTypes(builder); var container = builder.Build(); EntryPoint entryPoint = new EntryPoint( new SeriLogger(new ApplicationLoggerSettings(), new Logging.ExecutionContext(), null), container.Resolve <IValidationService>(), container.Resolve <IReportingController>()); var tasks = container.Resolve <IList <IEasServiceTask> >(); var result = await entryPoint.CallbackAsync(easContextMessage, CancellationToken.None, tasks); var easSubmission = easdbContext.EasSubmissions.FirstOrDefault(x => x.Ukprn == ukPrn.ToString()); if (easSubmission != null) { easSubmissionValues = easdbContext.EasSubmissionValues.Where(x => x.SubmissionId == easSubmission.SubmissionId).ToList(); } var sourceFile = easdbContext.SourceFiles.FirstOrDefault(x => x.Ukprn == ukPrn.ToString()); if (sourceFile != null) { validationErrors = easdbContext.ValidationErrors.Where(x => x.SourceFileId == sourceFile.SourceFileId).ToList(); } Assert.Equal(expectedSubmissionValuesCount, easSubmissionValues.Count); Assert.Equal(expectedValidationErrorsCount, validationErrors.Count); }