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

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

            cursor.MoveNext();
            Assert.Throws <InvalidPatternException>(() => cursor.GetEmbeddedPattern('<', '>'));
        }
Beispiel #3
0
        public void GetEmbeddedPattern_Invalid(string text)
        {
            var cursor = new PatternCursor(text);

            cursor.MoveNext();
            Assert.Throws <InvalidPatternException>(() => cursor.GetEmbeddedPattern());
        }
        private static void HandleOffset(PatternCursor pattern,
                                         SteppedPatternBuilder <OffsetDateTime, OffsetDateTimeParseBucket> builder)
        {
            builder.AddField(PatternFields.EmbeddedOffset, pattern.Current);
            string embeddedPattern = pattern.GetEmbeddedPattern();
            var    offsetPattern   = OffsetPattern.Create(embeddedPattern, builder.FormatInfo).UnderlyingPattern;

            builder.AddEmbeddedPattern(offsetPattern, (bucket, offset) => bucket.Offset = offset, zdt => zdt.Offset);
        }
        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, '>');
        }
Beispiel #7
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, '>');
        }
        private static void HandleOffset(PatternCursor pattern,
                                         SteppedPatternBuilder <OffsetDateTime, OffsetDateTimeParseBucket> builder)
        {
            builder.AddField(PatternFields.EmbeddedOffset, pattern.Current);
            string embeddedPattern = pattern.GetEmbeddedPattern('<', '>');
            var    offsetPattern   = OffsetPattern.Create(embeddedPattern, builder.FormatInfo).UnderlyingPattern;

            builder.AddParseAction((value, bucket) =>
            {
                var result = offsetPattern.ParsePartial(value);
                if (!result.Success)
                {
                    return(result.ConvertError <OffsetDateTime>());
                }
                bucket.Offset = result.Value;
                return(null);
            });
            builder.AddFormatAction((value, sb) => offsetPattern.AppendFormat(value.Offset, sb));
        }