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('<', '>')); }
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, '>'); }
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)); }