public void TestGetEmbeddedPattern_QuotedCloseCharacter()
        {
            var cursor = new PatternCursor("x<oops'>'");

            cursor.MoveNext();
            Assert.Throws <InvalidPatternException>(() => cursor.GetEmbeddedPattern('<', '>'));
        }
        public void TestGetRepeatCount_ExceedsMax()
        {
            var cursor = new PatternCursor("aaa");

            Assert.IsTrue(cursor.MoveNext());
            Assert.Throws <InvalidPatternException>(() => cursor.GetRepeatCount(2));
        }
Exemple #3
0
        public void GetEmbeddedPattern_Invalid(string text)
        {
            var cursor = new PatternCursor(text);

            cursor.MoveNext();
            Assert.Throws <InvalidPatternException>(() => cursor.GetEmbeddedPattern());
        }
        public void TestGetEmbeddedPattern_WrongOpenCharacter()
        {
            var cursor = new PatternCursor("x(oops)");

            cursor.MoveNext();
            Assert.Throws <InvalidPatternException>(() => cursor.GetEmbeddedPattern('<', '>'));
        }
        public void TestGetQuotedString_HandlesEscapedCloseQuote()
        {
            var    cursor    = new PatternCursor("'ab\\'c'");
            char   openQuote = GetNextCharacter(cursor);
            string actual    = cursor.GetQuotedString(openQuote);

            Assert.AreEqual("ab'c", actual);
            Assert.IsFalse(cursor.MoveNext());
        }
        public void TestGetQuotedString_HandlesDoubleQuote()
        {
            var    cursor    = new PatternCursor("\"abc\"");
            char   openQuote = GetNextCharacter(cursor);
            string actual    = cursor.GetQuotedString(openQuote);

            Assert.AreEqual("abc", actual);
            Assert.IsFalse(cursor.MoveNext());
        }
        public void TestGetQuotedString_Empty()
        {
            var    cursor    = new PatternCursor("''");
            char   openQuote = GetNextCharacter(cursor);
            string actual    = cursor.GetQuotedString(openQuote);

            Assert.AreEqual(string.Empty, actual);
            Assert.IsFalse(cursor.MoveNext());
        }
        public void TestGetQuotedString()
        {
            var cursor = new PatternCursor("'abc'");

            Assert.AreEqual('\'', GetNextCharacter(cursor));
            string actual = cursor.GetQuotedString('\'');

            Assert.AreEqual("abc", actual);
            Assert.IsFalse(cursor.MoveNext());
        }
        public void TestGetEmbeddedPattern_Valid_WithEscaping()
        {
            var cursor = new PatternCursor(@"x<HH:\Tmm>y");

            cursor.MoveNext();
            string embedded = cursor.GetEmbeddedPattern('<', '>');

            Assert.AreEqual(@"HH:\Tmm", embedded);
            Assert.AreEqual('>', cursor.Current);
        }
        public void TestGetEmbeddedPattern_Valid()
        {
            var cursor = new PatternCursor("x<HH:mm>y");

            cursor.MoveNext();
            string embedded = cursor.GetEmbeddedPattern('<', '>');

            Assert.AreEqual("HH:mm", embedded);
            ValidateCurrentCharacter(cursor, 7, '>');
        }
        public void TestGetRepeatCount_Three()
        {
            var cursor = new PatternCursor("aaa");

            Assert.IsTrue(cursor.MoveNext());
            int actual = cursor.GetRepeatCount(10);

            Assert.AreEqual(3, actual);
            ValidateCurrentCharacter(cursor, 2, 'a');
        }
Exemple #12
0
        public void GetRepeatCount_Valid(string text, int expectedCount)
        {
            var cursor = new PatternCursor(text);

            Assert.IsTrue(cursor.MoveNext());
            int actual = cursor.GetRepeatCount(10);

            Assert.AreEqual(expectedCount, actual);
            ValidateCurrentCharacter(cursor, expectedCount - 1, 'a');
        }
Exemple #13
0
        public void GetQuotedString_Valid(string pattern, string expected)
        {
            var cursor = new PatternCursor(pattern);

            Assert.AreEqual('\'', GetNextCharacter(cursor));
            string actual = cursor.GetQuotedString('\'');

            Assert.AreEqual(expected, actual);
            Assert.IsFalse(cursor.MoveNext());
        }
        public void TestGetQuotedString_HandlesOtherQuote()
        {
            var cursor = new PatternCursor("[abc]");

            GetNextCharacter(cursor);
            string actual = cursor.GetQuotedString(']');

            Assert.AreEqual("abc", actual);
            Assert.IsFalse(cursor.MoveNext());
        }
Exemple #15
0
        public void GetEmbeddedPattern_Valid(string pattern, string expectedEmbedded)
        {
            var cursor = new PatternCursor(pattern);

            cursor.MoveNext();
            string embedded = cursor.GetEmbeddedPattern();

            Assert.AreEqual(expectedEmbedded, embedded);
            ValidateCurrentCharacter(cursor, expectedEmbedded.Length + 2, '>');
        }
Exemple #16
0
        private static void AssertValidNodaPattern(CultureInfo culture, string pattern)
        {
            PatternCursor cursor = new PatternCursor(pattern);

            while (cursor.MoveNext())
            {
                if (cursor.Current == '\'')
                {
                    cursor.GetQuotedString('\'');
                }
                else
                {
                    Assert.IsTrue(ExpectedCharacters.Contains(cursor.Current),
                                  "Pattern '" + pattern + "' contains unquoted, unexpected characters");
                }
            }
            // Check that the pattern parses
            LocalTimePattern.Create(pattern, culture);
        }
        private static void AssertValidNodaPattern(CultureInfo culture, string pattern)
        {
            PatternCursor cursor = new PatternCursor(pattern);

            while (cursor.MoveNext())
            {
                if (cursor.Current == '\'')
                {
                    cursor.GetQuotedString('\'');
                }
                else
                {
                    // We'll never do anything "special" with non-ascii characters anyway,
                    // so we don't mind if they're not quoted.
                    if (cursor.Current < '\u0080')
                    {
                        Assert.IsTrue(ExpectedCharacters.Contains(cursor.Current),
                                      "Pattern '" + pattern + "' contains unquoted, unexpected characters");
                    }
                }
            }
            // Check that the pattern parses
            LocalTimePattern.Create(pattern, culture);
        }