public void WillNotSendEmailToOwnerThatOptsOut()
            {
                // Arrange
                var packageRegistration = new PackageRegistration
                {
                    Id     = "smangit",
                    Owners = new[]
                    {
                        new User {
                            EmailAddress = "*****@*****.**", NotifyPackagePushed = true
                        },
                        new User {
                            EmailAddress = "*****@*****.**", NotifyPackagePushed = false
                        }
                    }
                };
                var package = new Package
                {
                    Version             = "1.2.3",
                    PackageRegistration = packageRegistration
                };

                packageRegistration.Packages.Add(package);

                // Act
                var messageService = new TestableMessageService();

                messageService.SendPackageAddedNotice(package, "http://dummy1", "http://dummy2", "http://dummy3");

                // Assert
                var message = messageService.MockMailSender.Sent.Last();

                Assert.Equal("*****@*****.**", message.To[0].Address);
                Assert.Equal(1, message.To.Count);
            }
            public void WillNotAttemptToSendIfNoOwnersAllow()
            {
                // Arrange
                var packageRegistration = new PackageRegistration
                {
                    Id     = "smangit",
                    Owners = new[]
                    {
                        new User {
                            EmailAddress = "*****@*****.**", EmailAllowed = false
                        },
                        new User {
                            EmailAddress = "*****@*****.**", EmailAllowed = false
                        }
                    }
                };
                var package = new Package
                {
                    Version             = "1.2.3",
                    PackageRegistration = packageRegistration
                };

                packageRegistration.Packages.Add(package);

                // Act
                var messageService = new TestableMessageService();

                messageService.SendPackageAddedNotice(package, "http://dummy1", "http://dummy2", "http://dummy3");

                // Assert
                Assert.Empty(messageService.MockMailSender.Sent);
            }
Beispiel #3
0
            public void WillSendEmailToAllOwners(string version)
            {
                // Arrange
                var nugetVersion        = new NuGetVersion(version);
                var packageRegistration = new PackageRegistration
                {
                    Id     = "smangit",
                    Owners = new[]
                    {
                        new User {
                            EmailAddress = "*****@*****.**", NotifyPackagePushed = true
                        },
                        new User {
                            EmailAddress = "*****@*****.**", NotifyPackagePushed = true
                        }
                    }
                };
                var package = new Package
                {
                    Version             = version,
                    PackageRegistration = packageRegistration
                };

                packageRegistration.Packages.Add(package);

                // Act
                var messageService   = new TestableMessageService();
                var packageUrl       = $"https://localhost/packages/{packageRegistration.Id}/{nugetVersion.ToNormalizedString()}";
                var supportUrl       = $"https://localhost/packages/{packageRegistration.Id}/{nugetVersion.ToNormalizedString()}/ReportMyPackage";
                var emailSettingsUrl = "https://localhost/account";

                messageService.SendPackageAddedNotice(package, packageUrl, supportUrl, emailSettingsUrl);

                // Assert
                var message = messageService.MockMailSender.Sent.Last();

                Assert.Equal("*****@*****.**", message.To[0].Address);
                Assert.Equal("*****@*****.**", message.To[1].Address);
                Assert.Equal(TestGalleryNoReplyAddress, message.From);
                Assert.Contains($"[Joe Shmoe] Package published - {packageRegistration.Id} {nugetVersion.ToNormalizedString()}", message.Subject);
                Assert.Contains(
                    $"The package [{packageRegistration.Id} {nugetVersion.ToFullString()}]({packageUrl}) was just published on Joe Shmoe. If this was not intended, please [contact support]({supportUrl}).", message.Body);
            }
            public void WillSendEmailToAllOwners()
            {
                // Arrange
                var packageRegistration = new PackageRegistration
                {
                    Id     = "smangit",
                    Owners = new[]
                    {
                        new User {
                            EmailAddress = "*****@*****.**", NotifyPackagePushed = true
                        },
                        new User {
                            EmailAddress = "*****@*****.**", NotifyPackagePushed = true
                        }
                    }
                };
                var package = new Package
                {
                    Version             = "1.2.3",
                    PackageRegistration = packageRegistration
                };

                packageRegistration.Packages.Add(package);

                // Act
                var messageService = new TestableMessageService();

                messageService.SendPackageAddedNotice(package, "http://dummy1", "http://dummy2", "http://dummy3");

                // Assert
                var message = messageService.MockMailSender.Sent.Last();

                Assert.Equal("*****@*****.**", message.To[0].Address);
                Assert.Equal("*****@*****.**", message.To[1].Address);
                Assert.Equal(TestGalleryNoReplyAddress, message.From);
                Assert.Contains("[Joe Shmoe] Package published - smangit 1.2.3", message.Subject);
                Assert.Contains(
                    "The package [smangit 1.2.3](http://dummy1) was just published on Joe Shmoe. If this was not intended, please [contact support](http://dummy2).", message.Body);
            }
            public void WillNotAttemptToSendIfNoOwnersAllow()
            {
                // Arrange
                var packageRegistration = new PackageRegistration
                {
                    Id = "smangit",
                    Owners = new[]
                    {
                        new User { EmailAddress = "*****@*****.**", EmailAllowed = false },
                        new User { EmailAddress = "*****@*****.**", EmailAllowed = false }
                    }
                };
                var package = new Package
                {
                    Version = "1.2.3",
                    PackageRegistration = packageRegistration
                };
                packageRegistration.Packages.Add(package);

                // Act
                var messageService = new TestableMessageService();
                messageService.SendPackageAddedNotice(package, "http://dummy1", "http://dummy2", "http://dummy3");

                // Assert
                Assert.Empty(messageService.MockMailSender.Sent);
            }
            public void WillNotSendEmailToOwnerThatOptsOut()
            {
                // Arrange
                var packageRegistration = new PackageRegistration
                {
                    Id = "smangit",
                    Owners = new[]
                    {
                        new User { EmailAddress = "*****@*****.**", NotifyPackagePushed = true },
                        new User { EmailAddress = "*****@*****.**", NotifyPackagePushed = false }
                    }
                };
                var package = new Package
                {
                    Version = "1.2.3",
                    PackageRegistration = packageRegistration
                };
                packageRegistration.Packages.Add(package);

                // Act
                var messageService = new TestableMessageService();
                messageService.SendPackageAddedNotice(package, "http://dummy1", "http://dummy2", "http://dummy3");

                // Assert
                var message = messageService.MockMailSender.Sent.Last();

                Assert.Equal("*****@*****.**", message.To[0].Address);
                Assert.Equal(1, message.To.Count);
            }
            public void WillSendEmailToAllOwners()
            {
                // Arrange
                var packageRegistration = new PackageRegistration
                {
                    Id = "smangit",
                    Owners = new[]
                    {
                        new User { EmailAddress = "*****@*****.**", NotifyPackagePushed = true },
                        new User { EmailAddress = "*****@*****.**", NotifyPackagePushed = true }
                    }
                };
                var package = new Package
                {
                    Version = "1.2.3",
                    PackageRegistration = packageRegistration
                };
                packageRegistration.Packages.Add(package);

                // Act
                var messageService = new TestableMessageService();
                messageService.SendPackageAddedNotice(package, "http://dummy1", "http://dummy2", "http://dummy3");

                // Assert
                var message = messageService.MockMailSender.Sent.Last();

                Assert.Equal("*****@*****.**", message.To[0].Address);
                Assert.Equal("*****@*****.**", message.To[1].Address);
                Assert.Equal(TestGalleryOwner, message.From);
                Assert.Contains("[Joe Shmoe] Package published - smangit 1.2.3", message.Subject);
                Assert.Contains(
                    "The package [smangit 1.2.3](http://dummy1) was just published on Joe Shmoe. If this was not intended, please [contact support](http://dummy2).", message.Body);
            }