public void SampleParsedSuccessfully() { var data = File.Open("./assets/sample.xml", FileMode.Open); var result = EnvelopeParser.Parse(data); result.Should().NotBeNull(); result.Subject.Should().Be("Reference rates"); result.Sender.Name.Should().Be("European Central Bank"); result.Data.Value.Count.Should().Be(3); result.Data.Value[0].Time.Should().Be("2021-03-23"); result.Data.Value[0].Values.Count.Should().Be(2); result.Data.Value[0].Values[0].Currency.Should().Be("USD"); result.Data.Value[0].Values[0].Rate.Should().Be("1.1883"); result.Data.Value[0].Values[1].Currency.Should().Be("JPY"); result.Data.Value[0].Values[1].Rate.Should().Be("128.99"); result.Data.Value[1].Time.Should().Be("2021-03-22"); result.Data.Value[1].Values.Count.Should().Be(2); result.Data.Value[1].Values[0].Currency.Should().Be("USD"); result.Data.Value[1].Values[0].Rate.Should().Be("1.1926"); result.Data.Value[1].Values[1].Currency.Should().Be("JPY"); result.Data.Value[1].Values[1].Rate.Should().Be("129.77"); result.Data.Value[2].Time.Should().Be("2021-03-19"); result.Data.Value[2].Values.Count.Should().Be(2); result.Data.Value[2].Values[0].Currency.Should().Be("USD"); result.Data.Value[2].Values[0].Rate.Should().Be("1.1891"); result.Data.Value[2].Values[1].Currency.Should().Be("JPY"); result.Data.Value[2].Values[1].Rate.Should().Be("129.54"); }
public void ParseEnvelopeWithBracketsInContactString() { var parser = new EnvelopeParser(); var b = (Envelope)parser.Parse("(\"Sun, 23 Aug 2009 05:01:56 -0700\" \"Access Gmail on your mobile phone\" ((\"Gmail Team(22222)\" NIL \"mail-noreply\" \"google.com\")) ((\"Gmail Team(222)\" NIL \"mail-noreply\" \"google.com\")) ((\"Gmail Team(Bla)\" NIL \"mail-noreply\" \"google.com\")) ((\"reg.wieser\" NIL \"reg.wieser\" \"crystalbyte.de\")) NIL NIL NIL \"<*****@*****.**>\"))", null); Assert.IsTrue(b.ReplyTo.Count() == 1); Assert.IsTrue(b.From.Count() == 1); }
private static void AddNestedMessage(MessageInfo message, BodyPart current, string token, int sn, string original) { var nested = new MessageInfo { SequenceNumber = sn, Token = token, OriginalString = original }; nested.Token = token; nested.SequenceNumber = sn; var envelope = original.Substring(current.EnvelopeBounds[0], current.EnvelopeBounds[1]); var parser = new EnvelopeParser(); nested.Envelope = (Envelope)parser.Parse(envelope, null); ((List <MessageInfo>)message.NestedMessages).Add(nested); var i = 0; foreach (var child in current.Children) { i += 1; var childToken = (token + "." + i).TrimStart('.'); ProcessChild(nested, child, childToken, sn, original); } }