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 }));
            }
        }
示例#3
0
 public async override Task When()
 {
     ActualResult = await Loader.GetAssessmentValidationErrorsFileAsync(Ukprn, BlobUniqueReference);
 }