public void DoesNotSendRemovedNoticeIfUserDoesNotAllowEmails()
            {
                var to = new User {
                    Username = "******", EmailAddress = "*****@*****.**", EmailAllowed = false
                };
                var from = new User {
                    Username = "******", EmailAddress = "*****@*****.**"
                };
                var package = new PackageRegistration {
                    Id = "CoolStuff"
                };

                var messageService = new TestableMessageService();

                messageService.SendPackageOwnerRemovedNotice(from, to, package);

                Assert.Empty(messageService.MockMailSender.Sent);
            }
            public void SendsPackageOwnerRemovedNotice()
            {
                var to = new User {
                    Username = "******", EmailAddress = "*****@*****.**", EmailAllowed = true
                };
                var from = new User {
                    Username = "******", EmailAddress = "*****@*****.**"
                };
                var package = new PackageRegistration {
                    Id = "CoolStuff"
                };

                var messageService = new TestableMessageService();

                messageService.SendPackageOwnerRemovedNotice(from, to, package);
                var message = messageService.MockMailSender.Sent.Last();

                Assert.Equal("*****@*****.**", message.To[0].Address);
                Assert.Equal(TestGalleryNoReplyAddress.Address, message.From.Address);
                Assert.Equal("*****@*****.**", message.ReplyToList.Single().Address);
                Assert.Contains("The user 'Existing' has removed you as an owner of the package 'CoolStuff'.", message.Subject);
                Assert.Contains("The user 'Existing' removed you as an owner of the package 'CoolStuff'", message.Body);
            }
            public void DoesNotSendRemovedNoticeIfUserDoesNotAllowEmails()
            {
                var to = new User { Username = "******", EmailAddress = "*****@*****.**", EmailAllowed = false };
                var from = new User { Username = "******", EmailAddress = "*****@*****.**" };
                var package = new PackageRegistration { Id = "CoolStuff" };

                var messageService = new TestableMessageService();
                messageService.SendPackageOwnerRemovedNotice(from, to, package);

                Assert.Empty(messageService.MockMailSender.Sent);
            }
            public void SendsPackageOwnerRemovedNotice()
            {
                var to = new User { Username = "******", EmailAddress = "*****@*****.**", EmailAllowed = true };
                var from = new User { Username = "******", EmailAddress = "*****@*****.**" };
                var package = new PackageRegistration { Id = "CoolStuff" };

                var messageService = new TestableMessageService();
                messageService.SendPackageOwnerRemovedNotice(from, to, package);
                var message = messageService.MockMailSender.Sent.Last();

                Assert.Equal("*****@*****.**", message.To[0].Address);
                Assert.Equal(TestGalleryOwner.Address, message.From.Address);
                Assert.Equal("*****@*****.**", message.ReplyToList.Single().Address);
                Assert.Contains("The user 'Existing' has removed you as an owner of the package 'CoolStuff'.", message.Subject);
                Assert.Contains("The user 'Existing' removed you as an owner of the package 'CoolStuff'", message.Body);
            }