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");
        }
Example #2
0
        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);
        }
Example #3
0
        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);
            }
        }