public async Task Empty_File_Should_Err() { // Given var validationQuery = new FileValidationQuery(null); var sut = new FileValidationQueryHandler(); // When var actual = await sut.Handle(validationQuery, CancellationToken.None); // Then actual.As <ValidationError>().ErrorMessage.Should().Be("File is empty"); }
public async Task <IActionResult> Post(IFormFile file, CancellationToken cancellationToken) { var validationQuery = new FileValidationQuery(file); if (await Mediator.Send(validationQuery, cancellationToken) is ValidationError validation) { return(BadRequest(validation.ErrorMessage)); } var newDocumentCommand = await NewDocumentCommand.Create(file); await Mediator.Send(newDocumentCommand, cancellationToken); return(NoContent()); }
public async Task Small_File_Should_Not_Err() { // Given var file = new Mock <IFormFile>(); file.Setup(x => x.Length).Returns(1000); var validationQuery = new FileValidationQuery(file.Object); var sut = new FileValidationQueryHandler(); // When var actual = await sut.Handle(validationQuery, CancellationToken.None); // Then actual.As <ValidationError>().ErrorMessage.Should().NotBe("File is too large"); }
public async Task Pdf_File_Should_Err() { // Given var file = new Mock <IFormFile>(); file.Setup(x => x.ContentType).Returns(MediaTypeNames.Application.Pdf); var validationQuery = new FileValidationQuery(file.Object); var sut = new FileValidationQueryHandler(); // When var actual = await sut.Handle(validationQuery, CancellationToken.None); // Then actual.As <ValidationError>().ErrorMessage.Should().NotBe("File is not Pdf"); }
public async Task Unknown_File_Should_Err() { // Given var unknown = new Mock <IFormFile>(); unknown.Setup(x => x.ContentType).Returns("application/unknown"); unknown.Setup(x => x.Length).Returns(1000); var validationQuery = new FileValidationQuery(unknown.Object); var sut = new FileValidationQueryHandler(); // When var actual = await sut.Handle(validationQuery, CancellationToken.None); // Then actual.As <ValidationError>().ErrorMessage.Should().Be("File is not Pdf"); }
public async Task Large_File_Should_Err() { // Given const int MB = 1024 * 1024; var file = new Mock <IFormFile>(); file.Setup(x => x.ContentType).Returns(MediaTypeNames.Application.Pdf); file.Setup(x => x.Length).Returns((5 * MB) + 1); var validationQuery = new FileValidationQuery(file.Object); var sut = new FileValidationQueryHandler(); // When var actual = await sut.Handle(validationQuery, CancellationToken.None); // Then actual.As <ValidationError>().ErrorMessage.Should().Be("File is too large"); }