/// <summary> /// Helper method for settings /// </summary> /// <param name="source"></param> /// <param name="target"></param> /// <returns></returns> public List <ErrorReporting> SourceOmitCheckedTargetUnchecked(string source, string target) { //source settings var numberVerifierSettings = SourceSettings.SourceSettingsAndAllowLocalization.CommaPeriod(); numberVerifierSettings.Setup(d => d.SourceOmitLeadingZero).Returns(true); numberVerifierSettings.Setup(d => d.SourceDecimalPeriod).Returns(true); //target settings numberVerifierSettings.Setup(t => t.TargetOmitLeadingZero).Returns(false); NumberVerifierLocalizationsSettings.InitSeparators(numberVerifierSettings); var numberVerifierMain = new NumberVerifierMain(numberVerifierSettings.Object); //run initialize method in order to set chosen separators var docPropMock = new Mock <IDocumentProperties>(); numberVerifierMain.Initialize(docPropMock.Object); var errorMessage = numberVerifierMain.CheckSourceAndTarget(source, target); return(errorMessage); }
public void NormalizeNegativeNumbers(string text, string thousandSep, string decimalSep) { var numberVerifierSettings = SourceSettings.SourceSettingsAndAllowLocalization.CommaPeriod(); numberVerifierSettings.Setup(d => d.SourceDecimalComma).Returns(true); NumberVerifierLocalizationsSettings.InitSeparators(numberVerifierSettings); var numberVerifierMain = new NumberVerifierMain(numberVerifierSettings.Object); //run initialize method in order to set chosen separators var docPropMock = new Mock <IDocumentProperties>(); numberVerifierMain.Initialize(docPropMock.Object); var normalizedNumberCollection = new List <string>(); var numberCollection = new List <string>(); var thousandSeparators = numberVerifierMain.AddCustomSeparators(thousandSep, true); var decimalSeparators = numberVerifierMain.AddCustomSeparators(decimalSep, true); numberVerifierMain.NormalizeAlphanumerics(text, numberCollection, normalizedNumberCollection, thousandSeparators, decimalSeparators, false, false); Assert.Equal("−74,5", $"{numberCollection[0]}{numberCollection[1]}"); Assert.Equal("m74m5", $"{normalizedNumberCollection[0]}{normalizedNumberCollection[1]}"); }
public void ThousandsNumbersAndAlphanumerics(string source, string target) { //target settings var numberVerifierSettings = NumberVerifierRequireLocalizationSettings.CommaPeriod(); numberVerifierSettings.Setup(d => d.TargetDecimalPeriod).Returns(true); //source settings numberVerifierSettings.Setup(s => s.SourceThousandsComma).Returns(true); numberVerifierSettings.Setup(s => s.SourceDecimalComma).Returns(true); NumberVerifierLocalizationsSettings.InitSeparators(numberVerifierSettings); var numberVerifierMain = new NumberVerifierMain(numberVerifierSettings.Object); //run initialize method in order to set chosen separators var docPropMock = new Mock <IDocumentProperties>(); numberVerifierMain.Initialize(docPropMock.Object); var errorMessage = numberVerifierMain.CheckSourceAndTarget(source, target); Assert.True(errorMessage.Count == 3); }
public void CheckForAddedNumbers(string source, string target) { //target settings var numberVerifierSettings = NumberVerifierRequireLocalizationSettings.AllTypesOfSpacesChecked(); numberVerifierSettings.Setup(d => d.TargetDecimalPeriod).Returns(true); //source settings numberVerifierSettings.Setup(s => s.SourceThousandsSpace).Returns(true); numberVerifierSettings.Setup(s => s.SourceDecimalComma).Returns(true); numberVerifierSettings.Setup(s => s.SourceDecimalPeriod).Returns(true); NumberVerifierLocalizationsSettings.InitSeparators(numberVerifierSettings); var numberVerifierMain = new NumberVerifierMain(numberVerifierSettings.Object); //run initialize method in order to set chosen separators var docPropMock = new Mock <IDocumentProperties>(); numberVerifierMain.Initialize(docPropMock.Object); var errorMessage = numberVerifierMain.CheckSourceAndTarget(source, target); Assert.Equal(PluginResources.Error_NumbersAdded, errorMessage[0].ErrorMessage); }
public void SameSequencesDifferentMeanings_WhenDecimalSeparatorsDifferent_LocalizationAllowed(string source, string target) { var settings = _settingsBuilder .AllowLocalization() .WithSourceThousandSeparators(comma: false, period: true) .WithTargetThousandSeparators(comma: true, period: false) .WithSourceDecimalSeparators(comma: true, period: false) .WithTargetDecimalSeparators(comma: false, period: true) .Build(); settings.Setup(s => s.HindiNumberVerification).Returns(true); var numberVerifierMain = new NumberVerifierMain(settings.Object); var errorMessage = numberVerifierMain.CheckSourceAndTarget(source, target); Assert.Collection(errorMessage, m => { var expectedMessage = PluginResources.NumberParser_Message_InvalidGroupSeparator; m.ErrorMessage.Contains(expectedMessage.Substring(0, expectedMessage.Length - 4)); }, m => Assert.Equal(m.ErrorMessage, PluginResources.Error_MissingSourceSeparators)); }
public void ThousandsSeparatorsCommaPeriod(string source, string target) { var settings = _settingsBuilder .RequireLocalization() .WithTargetDecimalSeparators(comma: true, period: false) .WithSourceThousandSeparators(comma: true, period: true, custom: " ") .WithSourceDecimalSeparators(comma: true, period: false) .Build(); var numberVerifierMain = new NumberVerifierMain(settings.Object); var errorMessage = numberVerifierMain.CheckSourceAndTarget(source, target).Where(e => e.ErrorType == NumberVerifier.Validator.NumberText.ErrorLevel.SegmentPairLevel); var expectedErrors = new List <string> { PluginResources.Error_DifferentValues, PluginResources.Error_DifferentSequences, PluginResources.Error_DifferentSequences, PluginResources.Error_NumberAdded, PluginResources.Error_NumberAdded }; Assert.Equal(expectedErrors, errorMessage.Select(em => em.ErrorMessage)); }
public void NumberUnlocalised_WhenSeparatorsAreInSamePlacesButHaveDifferentMeanings_AndRoleOfSeparatorInTheTargetAtThatPositionIsNotValid(string source, string target) { var settings = _settingsBuilder .RequireLocalization() .WithSourceDecimalSeparators(true, false) .WithTargetThousandSeparators(true, false) .Build(); settings.Setup(s => s.HindiNumberVerification).Returns(true); var numberVerifierMain = new NumberVerifierMain(settings.Object); var errorMessage = numberVerifierMain.CheckSourceAndTarget(source, target); Assert.Collection(errorMessage, m => Assert.Equal(PluginResources.Error_MissingTargetSeparators, m.ErrorMessage), m => { var expectedMessage = PluginResources.NumberParser_Message_TheGroupValidIsOutOfRange; Assert.Contains(expectedMessage.Substring(0, expectedMessage.Length - 4), m.ErrorMessage); }); }
public void ThousandsSeparatorsNoSeparatorCommaPeriod(string source, string target) { var numberVerifierSettings = SourceSettings.SourceSettingsAndAllowLocalization.CommaPeriod(); numberVerifierSettings.Setup(s => s.SourceNoSeparator).Returns(true); numberVerifierSettings.Setup(s => s.TargetNoSeparator).Returns(true); numberVerifierSettings.Setup(d => d.SourceDecimalPeriod).Returns(true); numberVerifierSettings.Setup(d => d.SourceDecimalComma).Returns(true); numberVerifierSettings.Setup(d => d.TargetDecimalPeriod).Returns(true); numberVerifierSettings.Setup(d => d.TargetThousandsComma).Returns(true); numberVerifierSettings.Setup(d => d.CustomsSeparatorsAlphanumerics).Returns(false); NumberVerifierLocalizationsSettings.InitSeparators(numberVerifierSettings); var numberVerifierMain = new NumberVerifierMain(numberVerifierSettings.Object); var errorMessage = numberVerifierMain.CheckSourceAndTarget(source, target); Assert.Collection(errorMessage, error => Assert.Equal(error.ErrorMessage, PluginResources.Error_DifferentSequences), error => Assert.Equal(error.ErrorMessage, PluginResources.NumberCannotHaveTheSameCharacterAsThousandAndAsDecimalSeparator)); }
public List <ErrorReporting> ReportModifiedAlphanumerics(string source, string target, NumberVerifierMain numberVerifierMain) { //run initialize method in order to set chosen separators var docPropMock = new Mock <IDocumentProperties>(); numberVerifierMain.Initialize(docPropMock.Object); return(numberVerifierMain.CheckSourceAndTarget(source, target)); }
public TextFormatter(NumberVerifierMain numberVerifierMain) { _numberVerifierMain = numberVerifierMain; }