public void WillSendEmailToGalleryOwner()
            {
                // Arrange
                var from    = new MailAddress("*****@*****.**", "too");
                var package = new Package
                {
                    PackageRegistration = new PackageRegistration {
                        Id = "smangit"
                    },
                    Version = "1.42.0.1"
                };

                var messageService = new TestableMessageService();

                // Act
                messageService.ReportAbuse(
                    new ReportPackageRequest
                {
                    AlreadyContactedOwners = true,
                    FromAddress            = from,
                    Message        = "Abuse!",
                    Package        = package,
                    Reason         = "Reason!",
                    RequestingUser = null,
                    Signature      = "Joe Schmoe",
                    Url            = TestUtility.MockUrlHelper(),
                });
                var message = messageService.MockMailSender.Sent.Last();

                // Assert
                Assert.Equal(TestGalleryOwner, message.To.Single());
                Assert.Equal(TestGalleryOwner, message.From);
                Assert.Equal(from, message.ReplyToList.Single());
                Assert.Equal("[Joe Shmoe] Support Request for 'smangit' version 1.42.0.1 (Reason: Reason!)", message.Subject);
                Assert.Contains("Reason!", message.Body);
                Assert.Contains("Abuse!", message.Body);
                Assert.Contains("too ([email protected])", message.Body);
                Assert.Contains("smangit", message.Body);
                Assert.Contains("1.42.0.1", message.Body);
                Assert.Contains("Yes", message.Body);
            }
            public void WillCopySenderIfAsked()
            {
                var from    = new MailAddress("*****@*****.**", "too");
                var package = new Package
                {
                    PackageRegistration = new PackageRegistration {
                        Id = "smangit"
                    },
                    Version = "1.42.0.1",
                };

                var messageService = new TestableMessageService();

                var reportPackageRequest = new ReportPackageRequest
                {
                    AlreadyContactedOwners = true,
                    FromAddress            = from,
                    Message        = "Abuse!",
                    Package        = package,
                    Reason         = "Reason!",
                    RequestingUser = new User
                    {
                        Username     = "******",
                        EmailAddress = "*****@*****.**"
                    },
                    Signature  = "Joe Schmoe",
                    Url        = TestUtility.MockUrlHelper(),
                    CopySender = true,
                };

                messageService.ReportAbuse(reportPackageRequest);

                var message = messageService.MockMailSender.Sent.Single();

                Assert.Equal(TestGalleryOwner, message.To.Single());
                Assert.Equal(TestGalleryOwner, message.From);
                Assert.Equal(reportPackageRequest.FromAddress, message.ReplyToList.Single());
                Assert.Equal(reportPackageRequest.FromAddress, message.CC.Single());
                Assert.DoesNotContain("Owners", message.Body);
            }
            public void WillSendEmailToGalleryOwner()
            {
                // Arrange
                var from = new MailAddress("*****@*****.**", "too");
                var package = new Package
                    {
                        PackageRegistration = new PackageRegistration { Id = "smangit" },
                        Version = "1.42.0.1"
                    };

                var messageService = new TestableMessageService();

                // Act
                messageService.ReportAbuse(
                    new ReportPackageRequest
                    {
                        AlreadyContactedOwners = true,
                        FromAddress = from,
                        Message = "Abuse!",
                        Package = package,
                        Reason = "Reason!",
                        RequestingUser = null,
                        Signature = "Joe Schmoe",
                        Url = TestUtility.MockUrlHelper(),
                    });
                var message = messageService.MockMailSender.Sent.Last();

                // Assert
                Assert.Equal(TestGalleryOwner, message.To.Single());
                Assert.Equal(TestGalleryOwner, message.From);
                Assert.Equal(from, message.ReplyToList.Single());
                Assert.Equal("[Joe Shmoe] Support Request for 'smangit' version 1.42.0.1 (Reason: Reason!)", message.Subject);
                Assert.Contains("Reason!", message.Body);
                Assert.Contains("Abuse!", message.Body);
                Assert.Contains("too ([email protected])", message.Body);
                Assert.Contains("smangit", message.Body);
                Assert.Contains("1.42.0.1", message.Body);
                Assert.Contains("Yes", message.Body);
            }
            public void WillCopySenderIfAsked()
            {
                var from = new MailAddress("*****@*****.**", "too");
                var package = new Package
                {
                    PackageRegistration = new PackageRegistration { Id = "smangit" },
                    Version = "1.42.0.1",
                };

                var messageService = new TestableMessageService();

                var reportPackageRequest = new ReportPackageRequest
                {
                    AlreadyContactedOwners = true,
                    FromAddress = from,
                    Message = "Abuse!",
                    Package = package,
                    Reason = "Reason!",
                    RequestingUser = new User
                    {
                        Username = "******",
                        EmailAddress = "*****@*****.**"
                    },
                    Signature = "Joe Schmoe",
                    Url = TestUtility.MockUrlHelper(),
                    CopySender = true,
                };
                messageService.ReportAbuse(reportPackageRequest);

                var message = messageService.MockMailSender.Sent.Single();
                Assert.Equal(TestGalleryOwner, message.To.Single());
                Assert.Equal(TestGalleryOwner, message.From);
                Assert.Equal(reportPackageRequest.FromAddress, message.ReplyToList.Single());
                Assert.Equal(reportPackageRequest.FromAddress, message.CC.Single());
                Assert.DoesNotContain("Owners", message.Body);
            }