Beispiel #1
0
        public void AddDeliveredEmail_ShouldAddDeliveredEmailEntityToDb()
        {
            //SeedEmailAddresses();
            var repository = new EmailRepository(_context);

            var testDeliveredEmail = new DeliveredEmail()
            {
                Email = new Email()
                {
                    Subject     = "This is a test email sent from XUnit",
                    MessageText = "Hey man, reply when you have the chance.",
                    DateSent    = DateTime.Now,
                    MessageHtml = "Some HTML"
                },
                Receiver = new EmailAddress()
                {
                    Name  = "Me",
                    Email = "*****@*****.**"
                },
                Sender = new EmailAddress()
                {
                    Name  = "Michelle",
                    Email = "*****@*****.**"
                }
            };

            repository.AddDeliveredEmail(testDeliveredEmail);
            _context.SaveChanges();

            Assert.Equal(1, _context.DeliveredEmails.Count());
            Assert.Equal(2, _context.EmailAddresses.Count());
            Assert.Equal(1, _context.Emails.Count());
        }
        /// <summary>
        ///     Changes the state of the given email to delivered.
        /// </summary>
        /// <param name="email">The email.</param>
        private void EmailDelivered(IScheduledEmail email)
        {
            // delete the email from scheduled store and move it to delivered store.
            var deliveredEmail = new DeliveredEmail {
                RecipientAddress = email.RecipientAddress, DeliveredDateTime = DateTime.UtcNow, Subject = email.Subject, Body = email.Body
            };

            using (var transaction = _databaseContext.DemandTransaction())
            {
                _databaseContext.ScheduledEmails.Delete(email);
                _databaseContext.DeliveredEmails.Insert(deliveredEmail);
                transaction.Commit();
            }
        }
Beispiel #3
0
        public void TestDeliveredEmail()
        {
            // arrange
            var email = new DeliveredEmail {
                RecipientAddress = "*****@*****.**", Body = "body", DeliveredDateTime = Truncate(DateTime.UtcNow), Subject = "subject"
            };

            // act
            var result = RunTest(email, _databaseContext.DeliveredEmails, x => ((DeliveredEmail)x).Id);

            // assert
            result.Body.ShouldBe(email.Body);
            result.RecipientAddress.ShouldBe(email.RecipientAddress);
            result.DeliveredDateTime.ShouldBe(email.DeliveredDateTime);
            result.Subject.ShouldBe(email.Subject);
        }
Beispiel #4
0
 public void AddDeliveredEmail(DeliveredEmail deliveredEmail)
 {
     _context.DeliveredEmails.Add(deliveredEmail);
 }