コード例 #1
0
 public String FormatMessage(
     ErrorMessage errorMessage,
     SingleValidationResult validationResult)
 {
     return(FormatMessage(errorMessage, validationResult,
                          System.Threading.Thread.CurrentThread.CurrentUICulture));
 }
コード例 #2
0
 public String FormatMessage(
     ErrorMessage				errorMessage,
     SingleValidationResult 	validationResult)
 {
     return FormatMessage(errorMessage, validationResult,
                          System.Threading.Thread.CurrentThread.CurrentUICulture);
 }
コード例 #3
0
        public void TestLocalizationWithResultLocalizedIt()
        {
            ErrorMessage           sut = new ErrorMessage(() => TestRes.TestToken);
            SingleValidationResult res = new SingleValidationResult(false, "Exp", "Act", "Source");

            Assert.That(sut.ToString(System.Globalization.CultureInfo.CreateSpecificCulture("It"), res),
                        Is.EqualTo("Atteso " + "Exp" + " Attuale " + "Act"));
        }
コード例 #4
0
        public void TestLocalizationWithResultLocalized()
        {
            ErrorMessage           sut = new ErrorMessage(() => TestRes.TestToken);
            SingleValidationResult res = new SingleValidationResult(false, "Exp", "Act", "Source");

            Assert.That(sut.ToString(res),
                        Is.EqualTo("Expected " + "Exp" + " Actual " + "Act"));
        }
コード例 #5
0
        public void TestMessageWithResult()
        {
            ErrorMessage           sut = new ErrorMessage("Expected " + ErrorMessage.sTokenExpectedValue + " actual " + ErrorMessage.sTokenActualValue);
            SingleValidationResult res = new SingleValidationResult(false, "Exp", "Act", "Source");

            Assert.That(sut.ToString(res),
                        Is.EqualTo("Expected " + "Exp" + " actual " + "Act"));
        }
コード例 #6
0
 public String FormatMessage(
     ErrorMessage				errorMessage,
     SingleValidationResult	validationResult,
     CultureInfo					cultureInfo)
 {
     String baseMessage = GetBaseMessage(errorMessage, cultureInfo);
     String formattedBaseMessages = PostProcessMessage(baseMessage, validationResult, cultureInfo);
     return formattedBaseMessages;
 }
コード例 #7
0
        public String FormatMessage(
            ErrorMessage errorMessage,
            SingleValidationResult validationResult,
            CultureInfo cultureInfo)
        {
            String baseMessage           = GetBaseMessage(errorMessage, cultureInfo);
            String formattedBaseMessages = PostProcessMessage(baseMessage, validationResult, cultureInfo);

            return(formattedBaseMessages);
        }
コード例 #8
0
 private static string FormatMessage(string rawMessage, SingleValidationResult result)
 {
     if (rawMessage.Contains("$"))
     {
         StringBuilder sb = new StringBuilder(rawMessage);
         sb.Replace(sTokenActualValue, result.ActualValue.ToString());
         sb.Replace(sTokenExpectedValue, result.ExpectedValue.ToString());
         rawMessage = sb.ToString();
     }
     return(rawMessage);
 }
コード例 #9
0
        public void TestValidString()
        {
            IValueExtractor ive = MockRepository.GenerateStub <IValueExtractor>();

            ive.Expect(o => o.ExtractValue(null)).Return("String OK");
            ive.Expect(o => o.SourceName).Return("property");
            var rv = new RangeLengthValidator(ive, 1, 10);
            SingleValidationResult res = rv.Validate(null);

            Assert.IsTrue(res);
        }
コード例 #10
0
        public void TestInvalidStringTooLength()
        {
            IValueExtractor ive = MockRepository.GenerateStub <IValueExtractor>();

            ive.Expect(o => o.ExtractValue(null)).Return("This string exceeds 10 charachters");
            ive.Expect(o => o.SourceName).Return("property");
            var rv = new RangeLengthValidator(ive, 1, 10);
            SingleValidationResult res = rv.Validate(null);

            Assert.IsFalse(res);
            Assert.That(res.ExpectedValue, Text.Contains("[1,10]"));
        }
コード例 #11
0
        /// <summary>
        /// This method does a little of post processing handling to insert some basic content to the
        /// base message string.
        /// </summary>
        /// <param name="baseMessage"></param>
        /// <param name="validationResult"></param>
        /// <returns></returns>
        private String PostProcessMessage(
            String baseMessage,
            SingleValidationResult validationResult,
            CultureInfo cultureInfo)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(baseMessage);
            sb.Replace(sTokenActualValue, validationResult.ActualValue.ToString());
            sb.Replace(sTokenExpectedValue, validationResult.ExpectedValue.ToString());
            return(sb.ToString());
        }
コード例 #12
0
        public void CoreTestIValidatorReturnsSourceName()
        {
            var             rng       = new RFTestClass1();
            IValueExtractor extractor = MockRepository.GenerateStub <IValueExtractor>();

            extractor.Expect(obj => obj.ExtractValue(rng)).Return(100000.0f);
            extractor.Expect(obj => obj.SourceName).Return("TESTPNAME");
            var v = new RangeValueValidator(extractor, 0.0, 1.0);
            SingleValidationResult res = v.Validate(rng);

            Assert.IsFalse(res, "Range Object does wrong validation.");
            Assert.That(res.SourceName, Is.EqualTo("TESTPNAME"));
        }
コード例 #13
0
        /// <summary>
        /// this is the real function that performs validation.
        /// </summary>
        /// <param name="actualResult"></param>
        /// <param name="objToValidate"></param>
        /// <param name="validationFlag"></param>
        /// <param name="cultureInfo"></param>
        /// <returns></returns>
        public override Boolean Validate(
            ValidationResult actualResult,
            object objToValidate,
            ValidationFlags validationFlag,
            CultureInfo cultureInfo)
        {
            SingleValidationResult res = mValidator.Validate(objToValidate);

            if (!res)
            {
                actualResult.Success = false;
                actualResult.AddErrorMessage(GetErrorMessage(res, cultureInfo), res.SourceName);
            }
            return(res);
        }
コード例 #14
0
        /// <summary>
        /// Parse clang-tidy output to acquire list of errors and warnings in usable format.
        /// </summary>
        public static void AcquireTagsFromOutput(string message)
        {
            ValidationResults.Clear();

            // Clang-tidy output pattern is as goes:
            // (file name full path):(line):(column): (warning/error): (description) [clang-tidy check name]
            //     (indented code line)
            //                   (^ character pointing at warning/error in code line)
            string pattern = @"(.*):(\d+):(\d+):\s(.*):\s(.*)\s\[(.*)\]\r\n(.*)\r";

            ValidationResultsLock.EnterWriteLock();

            var matches = Regex.Matches(message, pattern);

            foreach (Match match in matches)
            {
                if (match.Groups.Count == 8)
                {
                    SingleValidationResult res = new SingleValidationResult();
                    res.File = match.Groups[1].Value;
                    // use Microsoft's favorite backslashes in paths instead of standard slashes
                    res.File = res.File.Replace('/', '\\');
                    int.TryParse(match.Groups[2].Value, out res.Line);
                    int.TryParse(match.Groups[3].Value, out res.Column);
                    // line and column number start from 1 but in MEF components numbering starts with 0
                    res.Line          -= 1;
                    res.Column        -= 1;
                    res.Classification = match.Groups[4].Value;
                    res.Description    = match.Groups[5].Value;
                    res.TidyCheckName  = match.Groups[6].Value;
                    res.CodeLine       = match.Groups[7].Value;
                    // Extract symbol where warning/error is present using given column number
                    // as start and searching for ending delimiter
                    res.HighlightSymbol = res.CodeLine.Substring(res.Column);
                    res.HighlightSymbol = Regex.Match(res.HighlightSymbol, @"^([a-zA-z0-9_]+)").ToString();

                    ValidationResults.Add(res);
                }
            }

            ValidationResultsLock.ExitWriteLock();
        }
コード例 #15
0
 public string ToString(CultureInfo cultureInfo, SingleValidationResult result)
 {
     String rawMessage = GetRawMessage(cultureInfo);
     return FormatMessage(rawMessage, result);
 }
コード例 #16
0
 public void TestLocalizationWithResultLocalizedIt()
 {
     ErrorMessage sut = new ErrorMessage(() => TestRes.TestToken);
     SingleValidationResult res = new SingleValidationResult(false, "Exp", "Act", "Source");
     Assert.That(sut.ToString(System.Globalization.CultureInfo.CreateSpecificCulture("It"), res),
         Is.EqualTo("Atteso " + "Exp" + " Attuale " + "Act"));
 }
コード例 #17
0
 public void TestLocalizationWithResultLocalized()
 {
     ErrorMessage sut = new ErrorMessage(() => TestRes.TestToken);
     SingleValidationResult res = new SingleValidationResult(false, "Exp", "Act", "Source");
     Assert.That(sut.ToString(res),
         Is.EqualTo("Expected " + "Exp" + " Actual " + "Act"));
 }
コード例 #18
0
 public void TestMessageWithResult()
 {
     ErrorMessage sut = new ErrorMessage("Expected " + ErrorMessage.sTokenExpectedValue + " actual " + ErrorMessage.sTokenActualValue);
     SingleValidationResult res = new SingleValidationResult(false, "Exp", "Act", "Source");
     Assert.That(sut.ToString(res),
         Is.EqualTo("Expected " + "Exp" + " actual " + "Act"));
 }
コード例 #19
0
 /// <summary>
 /// This method does a little of post processing handling to insert some basic content to the
 /// base message string.
 /// </summary>
 /// <param name="baseMessage"></param>
 /// <param name="validationResult"></param>
 /// <returns></returns>
 private String PostProcessMessage(
     String						baseMessage,
     SingleValidationResult	validationResult,
     CultureInfo					cultureInfo)
 {
     StringBuilder sb = new StringBuilder();
     sb.Append(baseMessage);
     sb.Replace(sTokenActualValue, validationResult.ActualValue.ToString());
     sb.Replace(sTokenExpectedValue, validationResult.ExpectedValue.ToString());
     return sb.ToString();
 }
コード例 #20
0
 /// <summary>
 /// This method retrieve the error message if the validation fail
 /// </summary>
 /// <returns></returns>
 public String GetErrorMessage(
     SingleValidationResult result,
     CultureInfo cultureInfo)
 {
     return(ErrorMessageFormatter.instance.FormatMessage(ErrorMessage, result, cultureInfo));
 }
コード例 #21
0
        public string ToString(SingleValidationResult result)
        {
            String rawMessage = ToString();

            return(FormatMessage(rawMessage, result));
        }
コード例 #22
0
 public string ToString(SingleValidationResult result)
 {
     String rawMessage = ToString();
     return FormatMessage(rawMessage, result);
 }
コード例 #23
0
 /// <summary>
 /// This method retrieve the error message if the validation fail
 /// </summary>
 /// <returns></returns>
 public String GetErrorMessage(
     SingleValidationResult result,
     CultureInfo cultureInfo)
 {
     return ErrorMessageFormatter.instance.FormatMessage(ErrorMessage, result, cultureInfo);
 }
コード例 #24
0
 private static string FormatMessage(string rawMessage, SingleValidationResult result)
 {
     if (rawMessage.Contains("$"))
     {
         StringBuilder sb = new StringBuilder(rawMessage);
         sb.Replace(sTokenActualValue, result.ActualValue.ToString());
         sb.Replace(sTokenExpectedValue, result.ExpectedValue.ToString());
         rawMessage = sb.ToString();
     }
     return rawMessage;
 }
コード例 #25
0
        public string ToString(CultureInfo cultureInfo, SingleValidationResult result)
        {
            String rawMessage = GetRawMessage(cultureInfo);

            return(FormatMessage(rawMessage, result));
        }