public override void Setup() { Ukprn = 123456789; HttpContextAccessor = Substitute.For <IHttpContextAccessor>(); Logger = Substitute.For <ILogger <AssessmentController> >(); AssessmentLoader = Substitute.For <IAssessmentLoader>(); CacheService = Substitute.For <ICacheService>(); Controller = new AssessmentController(AssessmentLoader, CacheService, Logger); var httpContext = new ClaimsIdentityBuilder <AssessmentController>(Controller) .Add(CustomClaimTypes.Ukprn, Ukprn.ToString()) .Build() .HttpContext; HttpContextAccessor.HttpContext.Returns(httpContext); AssessmentLoader.GetAssessmentValidationErrorsFileAsync(Ukprn, BlobUniqueReference).Returns(new MemoryStream(Encoding.ASCII.GetBytes("Test File for validation errors"))); }
public async Task <IActionResult> DownloadAssessmentErrors(string id) { if (id.IsGuid()) { var fileStream = await _assessmentLoader.GetAssessmentValidationErrorsFileAsync(User.GetUkPrn(), id.ToGuid()); if (fileStream == null) { _logger.LogWarning(LogEvent.FileStreamNotFound, $"No FileStream found to download assessment validation errors. Method: GetAssessmentValidationErrorsFileAsync(AoUkprn: {User.GetUkPrn()}, BlobUniqueReference = {id})"); return(RedirectToRoute(RouteConstants.PageNotFound)); } fileStream.Position = 0; return(new FileStreamResult(fileStream, "text/csv") { FileDownloadName = AssessmentContent.UploadUnsuccessful.Assessment_Error_Report_File_Name_Text }); } else { _logger.LogWarning(LogEvent.DownloadAssesssmentErrorsFailed, $"Not a valid guid to read file.Method: DownloadAssessmentErrors(Id = { id}), Ukprn: { User.GetUkPrn()}, User: { User.GetUserEmail()}"); return(RedirectToRoute(RouteConstants.Error, new { StatusCode = 500 })); } }
public async override Task When() { ActualResult = await Loader.GetAssessmentValidationErrorsFileAsync(Ukprn, BlobUniqueReference); }