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