Beispiel #1
0
        public void TestFasCommentCheckRestrictedSymbols()
        {
            const string AllChars = "abcdefghijklmnopqrstuvwxyz \n\t абвгдеёжзийклмнопрстуфхцчшщьыъэюя 1234567890 \\ \" .,;:~'`!? №@#$%^&|_ []{}()<> /*-+=";
            var          value    = new FasElementValue {
                Raw = "custom", Text = AllChars
            };
            var constraints = new PlainTextElementConstraints();

            TestHelpers.MakeValidationCheck <FasElementValue, NonBreakingSpaceSymbolError>(value, constraints, PlainTextValidator.CheckRestrictedSymbols, val => val.Text = "\x00A0");

            value.Text = AllChars.ToUpper();
            TestHelpers.MakeValidationCheck <FasElementValue, ControlCharactersInTextError>(value, constraints, PlainTextValidator.CheckRestrictedSymbols, val => val.Text = "\r");
        }
Beispiel #2
0
        public void TestAllChecks(string text, int?maxLength, int?maxWordLength, int?maxLines, bool containsRestrictedSymbols = true, int expectedErrorsCount = 5)
        {
            IObjectElementValue value = new TextElementValue {
                Raw = text
            };
            var constraints = new PlainTextElementConstraints {
                MaxLines = maxLines, MaxSymbols = maxLength, MaxSymbolsPerWord = maxWordLength
            };

            TestHelpers.InternalTextChecksTest(AllChecks, containsRestrictedSymbols, expectedErrorsCount, value, constraints);

            value = new FasElementValue {
                Raw = "custom", Text = text
            };
            TestHelpers.InternalTextChecksTest(AllChecks, containsRestrictedSymbols, expectedErrorsCount, value, constraints);
        }
Beispiel #3
0
        public void TestAllChecks(string text, int?maxLength, int?maxWordLength, int?maxLines, bool containsRestrictedSymbols = true, int expectedErrorsCount = 5)
        {
            IObjectElementValue value = new TextElementValue {
                Raw = text
            };
            var constraints = new FormattedTextElementConstraints {
                MaxLines = maxLines, MaxSymbols = maxLength, MaxSymbolsPerWord = maxWordLength
            };

            TestHelpers.InternalTextChecksTest(AllChecks, containsRestrictedSymbols, expectedErrorsCount, value, constraints);

            // FasComment cannot be formatted:
            value = new FasElementValue {
                Raw = "custom", Text = text
            };
            Assert.Throws <InvalidCastException>(() => TestHelpers.InternalTextChecksTest(AllChecks, containsRestrictedSymbols, expectedErrorsCount, value, constraints));
        }
Beispiel #4
0
        public void TestFasCommentCheckLength()
        {
            var value = new FasElementValue {
                Raw = "custom", Text = "text"
            };
            var constraints = new PlainTextElementConstraints {
                MaxSymbols = 5
            };

            var error = TestHelpers.MakeValidationCheck <FasElementValue, ElementTextTooLongError>(
                value,
                constraints,
                PlainTextValidator.CheckLength,
                val => val.Text = "long text");

            Assert.Equal(constraints.MaxSymbols, error.MaxLength);
            Assert.Equal(value.Text.Length, error.ActualLength);
            Assert.Equal(nameof(constraints.MaxSymbols), error.ErrorType);
        }
Beispiel #5
0
        public void TestFasCommentCheckMaxLines()
        {
            const int MaxLines = 10;
            var       value    = new FasElementValue {
                Raw = "custom", Text = new string('\n', MaxLines - 1)
            };
            var constraints = new PlainTextElementConstraints {
                MaxLines = MaxLines
            };

            var error = TestHelpers.MakeValidationCheck <FasElementValue, TooManyLinesError>(
                value,
                constraints,
                PlainTextValidator.CheckLinesCount,
                val => val.Text = new string('\n', MaxLines));

            Assert.Equal(MaxLines, error.MaxLinesCount);
            Assert.Equal(MaxLines + 1, error.ActualLinesCount);
            Assert.Equal(nameof(constraints.MaxLines), error.ErrorType);
        }
Beispiel #6
0
        public void TestFasCommentCheckLongWords()
        {
            const int MaxSymbols = 4;
            var       value      = new FasElementValue {
                Raw = "custom", Text = new string('a', MaxSymbols)
            };
            var constraints = new PlainTextElementConstraints {
                MaxSymbolsPerWord = MaxSymbols
            };

            var error = TestHelpers.MakeValidationCheck <FasElementValue, ElementWordsTooLongError>(
                value,
                constraints,
                PlainTextValidator.CheckWordsLength,
                val => val.Text = new string('b', MaxSymbols + 1));

            Assert.Equal(MaxSymbols, error.MaxWordLength);
            Assert.Equal(1, error.TooLongWords.Count);
            Assert.Equal(value.Text, error.TooLongWords.First());
            Assert.Equal(nameof(constraints.MaxSymbolsPerWord), error.ErrorType);
        }