public async Task Run_Success() { var path = Path.Combine(Environment.CurrentDirectory, "TestData/TestFile.txt"); await using var stream = File.OpenRead(path); var file = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name)) { Headers = new HeaderDictionary(), ContentType = MimeTypesConstants.Text.Plain }; var wordCountSearchParameter = new WordCountSearchParameter { File = file, }; wordCountSearchParameter.Validate(); _wordCounterServiceMock.Setup(x => x.ProcessWordsWithDefinitions(It.IsAny <string>(), It.IsAny <int>())) .ReturnsAsync(new List <WordCountApiResponse> { new WordCountApiResponse { Count = 10, Definitions = new List <Definitions>(), Word = "Test" } }); var result = await _wordCountCommand.Run(wordCountSearchParameter); result.Any().Should().BeTrue(); }
public void Validate_With_Empty_Data_Failure() { var wordCountSearchParameter = new WordCountSearchParameter { File = null }; wordCountSearchParameter.Invoking(x => x.Validate()).Should().Throw <ValidationException>().WithMessage( ExceptionMessages.InvalidInput(nameof(wordCountSearchParameter.File))); }
public void Validate_SearchParameters_Success() { var path = Path.Combine(Environment.CurrentDirectory, "TestData/TestFile.txt"); using var stream = File.OpenRead(path); var file = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name)) { Headers = new HeaderDictionary(), ContentType = MimeTypesConstants.Text.Plain }; var wordCountSearchParameter = new WordCountSearchParameter { File = file, }; var result = _wordCountCommand.Validate(wordCountSearchParameter); result.Should().Be(Task.CompletedTask); }
public void Validate_Text_Property_Is_Empty_Failure() { var path = Path.Combine(Environment.CurrentDirectory, "TestData/TestFileWithNoData.txt"); using var stream = File.OpenRead(path); var file = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name)) { Headers = new HeaderDictionary(), ContentType = MimeTypesConstants.Text.Plain }; var wordCountSearchParameter = new WordCountSearchParameter { File = file, }; wordCountSearchParameter.Invoking(x => x.Validate()).Should().Throw <ValidationException>().WithMessage( ExceptionMessages.InvalidInput(nameof(wordCountSearchParameter.Text))); }
public void Validate_Text_With_Invalid_ContentType_Failure() { const string value = "MimeTypesConstants.Application.AtomcatXml"; var path = Path.Combine(Environment.CurrentDirectory, "TestData/TestFile.docx"); using var stream = File.OpenRead(path); var file = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name)) { Headers = new HeaderDictionary(), ContentType = value }; var wordCountSearchParameter = new WordCountSearchParameter { File = file }; wordCountSearchParameter.Invoking(x => x.Validate()).Should().Throw <ValidationException>().WithMessage( ExceptionMessages.AllowedInputContentTypes(value, WordCountSearchParameter.AllowedContextTypes)); }
public void Validate_Docx_File_Upload_Success() { var path = Path.Combine(Environment.CurrentDirectory, "TestData/TestFile.docx"); using var stream = File.OpenRead(path); var file = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name)) { Headers = new HeaderDictionary(), ContentType = Core.Data.Constants.MimeTypesConstants.Application.WordDocx }; var wordCountSearchParameter = new WordCountSearchParameter { File = file, }; wordCountSearchParameter.Validate(); wordCountSearchParameter.Limit.Should().Be(WordCountSearchParameter.DefaultLimit); wordCountSearchParameter.Text.HasValue().Should().BeTrue(); }
public void Validate_Text_File_With_Limit_Upload_Success() { var path = Path.Combine(Environment.CurrentDirectory, "TestData/TestFile.txt"); using var stream = File.OpenRead(path); var file = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name)) { Headers = new HeaderDictionary(), ContentType = MimeTypesConstants.Text.Plain }; const int limit = 100; var wordCountSearchParameter = new WordCountSearchParameter { File = file, Limit = limit }; wordCountSearchParameter.Validate(); wordCountSearchParameter.Limit.Should().Be(limit); wordCountSearchParameter.Text.HasValue().Should().BeTrue(); }
public override Task <List <WordCountApiResponse> > Run(WordCountSearchParameter input) { return(_wordCounterService.ProcessWordsWithDefinitions(input.Text, input.Limit)); }
public override Task Validate(WordCountSearchParameter input) { input.Validate(); return(Task.CompletedTask); }