public void Sanitizer_StripsWhitespace() { var sanitizer = new TextSanitizer(); var output = sanitizer.Process(" \n \tA\n\t "); Assert.Equal("A", output); }
public void Sanitizer_ReplacesInvalidCharacters(string input, string expected) { var sanitizer = new TextSanitizer(); var output = sanitizer.Process(input); Assert.Equal(expected, output); }
public void On_NullInput_ThrowsArgumentException() { var sanitizer = new TextSanitizer(); void Act() { sanitizer.Process(null); } Assert.Throws <ArgumentException>((Action)Act); }
private async Task <ResponseImageViewModel> ProcessImage(UploadImageViewModel model, DigitDetectionOptions options, ModelStateDictionary modelState) { int expectedNumber = continuityManager.GetCurrentNumber(); if (!modelState.IsValid) { var errors = modelState.SelectMany(pair => pair.Value.Errors.Select(error => error.ErrorMessage)) .ToList(); return(ResponseImageViewModelSimpleFactory.GenerateFailureResponse(null, expectedNumber, errors)); } //preprocess image var bitmap = bitmapUtility.FromFormFile(model.File); if (!imageRatioValidator.Validate(bitmap)) { return(ResponseImageViewModelSimpleFactory.GenerateFailureResponse(null, expectedNumber, imageRatioValidator.ErrorMessage)); } //extract text string recognizedText = await TryRecognizeText(options, bitmap); if (recognizedText == null) { return(ResponseImageViewModelSimpleFactory.GenerateFailureResponse(null, expectedNumber, ErrorMessages.SERVER_OVERLOADED)); } //preprocess text var sanitizer = new TextSanitizer(); recognizedText = sanitizer.Process(recognizedText); var expectedText = continuityManager.GetCurrentNumber().ToString(); if (expectedText == recognizedText) { int recognizedAsNumber = int.Parse(recognizedText); var bytes = bitmapUtility.ToByteArray(bitmapUtility.Resize(bitmap)); var entry = new ImageEntry(bytes, recognizedAsNumber); if (await continuityManager.TryIncrementCurrentNumber(entry)) { return(ResponseImageViewModelSimpleFactory.GenerateSuccessResponse(recognizedText, expectedNumber)); } else { //correct the expected number, as it must've changed expectedNumber = continuityManager.GetCurrentNumber(); return(ResponseImageViewModelSimpleFactory.GenerateFailureResponse(null, expectedNumber, ErrorMessages.CONCURRENCY)); } } else { string error = string.Format(ErrorMessages.INVALID_NUMBER, expectedText); return(ResponseImageViewModelSimpleFactory.GenerateFailureResponse(recognizedText, expectedNumber, error)); } }