public async Task PublishCourseUpload_StatusIsProcessedWithErrors_ReturnsUploadHasErrors() { // Arrange var provider = await TestData.CreateProvider(); var user = await TestData.CreateUser(providerId : provider.ProviderId); await TestData.CreateCourseUpload( provider.ProviderId, createdBy : user, UploadStatus.ProcessedWithErrors); var fileUploadProcessor = new FileUploadProcessor( SqlQueryDispatcherFactory, Mock.Of <BlobServiceClient>(), Clock, new RegionCache(SqlQueryDispatcherFactory), new ExecuteImmediatelyBackgroundWorkScheduler(Fixture.ServiceScopeFactory)); // Act var result = await fileUploadProcessor.PublishCourseUploadForProvider(provider.ProviderId, user); // Assert result.Status.Should().Be(PublishResultStatus.UploadHasErrors); }
public async Task PublishCourseUpload_StatusIsProcessedWithErrorsAfterRevalidation_ReturnsUploadHasErrors() { // Arrange var provider = await TestData.CreateProvider(); var user = await TestData.CreateUser(providerId : provider.ProviderId); var venue = await TestData.CreateVenue(provider.ProviderId, createdBy : user, venueName : "My Venue", providerVenueRef : "VENUE1"); var learnAimRef = (await TestData.CreateLearningDelivery()).LearnAimRef; var(courseUpload, _) = await TestData.CreateCourseUpload( provider.ProviderId, createdBy : user, UploadStatus.ProcessedSuccessfully, rowBuilder => { rowBuilder.AddRow(learnAimRef, record => { record.DeliveryMode = "classroom based"; record.ResolvedDeliveryMode = CourseDeliveryMode.ClassroomBased; record.ProviderVenueRef = venue.ProviderVenueRef; record.VenueId = venue.VenueId; }); }); // Delete the venue linked to the row in the upload, triggering revalidation // (which should fail since the venue has gone away) Clock.UtcNow += TimeSpan.FromDays(1); await WithSqlQueryDispatcher(dispatcher => dispatcher.ExecuteQuery(new DeleteVenue() { VenueId = venue.VenueId, DeletedBy = user, DeletedOn = Clock.UtcNow })); var fileUploadProcessor = new FileUploadProcessor( SqlQueryDispatcherFactory, Mock.Of <BlobServiceClient>(), Clock, new RegionCache(SqlQueryDispatcherFactory), new ExecuteImmediatelyBackgroundWorkScheduler(Fixture.ServiceScopeFactory)); // Act var result = await fileUploadProcessor.PublishCourseUploadForProvider(provider.ProviderId, user); // Assert result.Status.Should().Be(PublishResultStatus.UploadHasErrors); }