Example #1
0
        public void AssignHeaderValuesSetsPropertiesForKnownHeaderValues()
        {
            // Arrange
            var message = new MailMessage();
            var headers = new[]
            {
                "cc:[email protected]", "bcc:[email protected],[email protected]", "from:[email protected]", "priority:high", "reply-to:[email protected],[email protected]",
                "sender: [email protected]", "to:[email protected]"
            };

            // Act
            WebMail.AssignHeaderValues(message, headers);

            // Assert
            Assert.Equal("*****@*****.**", message.CC.Single().Address);
            Assert.Equal("*****@*****.**", message.Bcc.First().Address);
            Assert.Equal("*****@*****.**", message.Bcc.Last().Address);
            Assert.Equal("*****@*****.**", message.From.Address);
            Assert.Equal(MailPriority.High, message.Priority);
            Assert.Equal("*****@*****.**", message.ReplyToList.First().Address);
            Assert.Equal("*****@*****.**", message.ReplyToList.Last().Address);
            Assert.Equal("*****@*****.**", message.Sender.Address);
            Assert.Equal("*****@*****.**", message.To.Single().Address);

            // Assert we transparently set header values
            Assert.Equal(headers.Count(), message.Headers.Count);
        }
Example #2
0
        public void AssignHeaderValuesIgnoresMalformedHeaders()
        {
            // Arrange
            var message = new MailMessage();
            var headers = new[] { "foo1:bar1", "foo2", "foo3|bar3", "foo4 bar4" };

            // Act
            WebMail.AssignHeaderValues(message, headers);

            // Assert
            Assert.Equal(1, message.Headers.Count);
            Assert.Equal("foo1", message.Headers.AllKeys[0]);
            Assert.Equal("bar1", message.Headers[0]);
        }
Example #3
0
        public void AssignHeaderDoesNotThrowIfKnownHeaderValuesAreEmptyOrMalformed()
        {
            // Arrange
            var message = new MailMessage();
            var headers = new[] { "to:", ":reply-to", "priority:false" };

            // Act
            WebMail.AssignHeaderValues(message, headers);

            // Assert
            Assert.Equal(0, message.To.Count);

            // Assert we transparently set header values
            Assert.Equal(1, message.Headers.Count);
            Assert.Equal("Priority", message.Headers.Keys[0]);
            Assert.Equal("false", message.Headers["Priority"]);
        }
Example #4
0
        public void AssignHeaderDoesNotThrowIfMailAddressIsInvalid()
        {
            // Arrange
            var message = new MailMessage();
            var headers = new[] { "to:not-#-email@@" };

            // Act
            WebMail.AssignHeaderValues(message, headers);

            // Assert
            Assert.Equal(0, message.To.Count);

            // Assert we transparently set header values
            Assert.Equal(1, message.Headers.Count);
            Assert.Equal("To", message.Headers.Keys[0]);
            Assert.Equal("not-#-email@@", message.Headers["To"]);
        }
Example #5
0
        public void AssignHeaderDoesNotThrowIfPriorityValueIsInvalid()
        {
            // Arrange
            var message = new MailMessage();
            var headers = new[] { "priority:invalid-value" };

            // Act
            WebMail.AssignHeaderValues(message, headers);

            // Assert
            Assert.Equal(MailPriority.Normal, message.Priority);

            // Assert we transparently set header values
            Assert.Equal(1, message.Headers.Count);
            Assert.Equal("Priority", message.Headers.Keys[0]);
            Assert.Equal("invalid-value", message.Headers["Priority"]);
        }