Exemple #1
0
        /// <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]}");
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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));
        }
Exemple #6
0
        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));
        }
Exemple #7
0
        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);
            });
        }
Exemple #8
0
        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));
        }
Exemple #10
0
 public TextFormatter(NumberVerifierMain numberVerifierMain)
 {
     _numberVerifierMain = numberVerifierMain;
 }