public void ProhobitedDomainTargets(string targets, string[] allowedDomains)
        {
            var mailHelper = new MailConstraints(allowedDomains);
            var recipients = MailHelper.CreateAddressCollection(targets);

            Assert.Throws <ProhibitedEmailRecipientException>(() => { mailHelper.ValidateEmailAddresses(recipients); });
        }
        public void PermittedDomainTargets(string target, string[] allowedDomains)
        {
            var mailHelper = new MailConstraints(allowedDomains);
            var recipients = MailHelper.CreateAddressCollection(target);

            mailHelper.ValidateEmailAddresses(recipients);
        }
        public void FindSingleDomain(string email, string expected)
        {
            var addressCollection = MailHelper.CreateAddressCollection(email);
            var domain            = addressCollection[0].Host;

            Assert.Equal(expected, domain);
        }
        public void FindMultipleDomains(string emails, string[] expectedDomains)
        {
            var emailCollection = MailHelper.CreateAddressCollection(emails);

            for (int i = 0; i < emailCollection.Count; i++)
            {
                var email    = emailCollection[i];
                var expected = expectedDomains[i];

                Assert.Equal(expected, email.Host);
            }
        }
        public void MultipleDomainErrorMessage(string targets, string[] allowedDomains)
        {
            string message    = null;
            var    mailHelper = new MailConstraints(allowedDomains);

            try
            {
                var recipients = MailHelper.CreateAddressCollection(targets);
                mailHelper.ValidateEmailAddresses(recipients);
            }
            catch (ProhibitedEmailRecipientException e)
            {
                message = e.Message;
            }

            Assert.Equal("You may only send emails to email addresses addressed to users matching @mailinator.com, or @contoso.com", message);
        }