public void WillSendEmailToAllOwners() { var from = new MailAddress("*****@*****.**", "flossy"); var package = new PackageRegistration { Id = "smangit" }; package.Owners = new[] { new User { EmailAddress = "*****@*****.**", EmailAllowed = true }, new User { EmailAddress = "*****@*****.**", EmailAllowed = true } }; var mailSender = new Mock<IMailSender>(); var setting = new GallerySetting { GalleryOwnerName = "NuGet Gallery", GalleryOwnerEmail = "*****@*****.**" }; var messageService = new MessageService(mailSender.Object, setting); MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.SendContactOwnersMessage(from, package, "Test message", "http://someurl/"); mailSender.Verify(m => m.Send(It.IsAny<MailMessage>())); Assert.Equal("*****@*****.**", message.To[0].Address); Assert.Equal("*****@*****.**", message.To[1].Address); Assert.Contains("[NuGet Gallery] Message for owners of the package 'smangit'", message.Subject); Assert.Contains("Test message", message.Body); Assert.Contains( "User flossy <[email protected]> sends the following message to the owners of Package 'smangit'.", message.Body); }
public void WillSendEmailToGalleryOwner() { var from = new MailAddress("*****@*****.**", "too"); var owner = new User { Username = "******", EmailAddress = "*****@*****.**", }; var package = new Package { PackageRegistration = new PackageRegistration { Id = "smangit", Owners = new Collection<User> { owner } }, Version = "1.42.0.1" }; var mailSender = new Mock<IMailSender>(); var config = new Mock<IConfiguration>(); config.Setup(x => x.GalleryOwnerName).Returns("NuGet Gallery"); config.Setup(x => x.GalleryOwnerEmail).Returns("*****@*****.**"); var messageService = new MessageService(mailSender.Object, config.Object); MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.ReportMyPackage( new ReportPackageRequest { FromAddress = from, Message = "Abuse!", Package = package, Reason = "Reason!", RequestingUser = owner, Url = TestUtility.MockUrlHelper(), }); Assert.Equal("*****@*****.**", message.To[0].Address); Assert.Equal("*****@*****.**", message.From.Address); Assert.Equal("*****@*****.**", message.ReplyToList.Single().Address); Assert.Equal("[NuGet Gallery] Owner 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); }
public void WillNotSendEmailToOwnerThatOptsOut() { var from = new MailAddress("*****@*****.**", "flossy"); var package = new PackageRegistration { Id = "smangit" }; package.Owners = new[] { new User { EmailAddress = "*****@*****.**", EmailAllowed = true }, new User { EmailAddress = "*****@*****.**", EmailAllowed = false } }; var mailSender = new Mock<IMailSender>(); var setting = new GallerySetting { GalleryOwnerName = "Joe Schmoe", GalleryOwnerEmail = "*****@*****.**" }; var messageService = new MessageService(mailSender.Object, setting); MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.SendContactOwnersMessage(from, package, "Test message", "http://someurl/"); Assert.Equal("*****@*****.**", message.To[0].Address); Assert.Equal(1, message.To.Count); }
public void WillSendEmailToGalleryOwner() { var from = new MailAddress("*****@*****.**", "too"); var package = new Package { PackageRegistration = new PackageRegistration { Id = "smangit" }, Version = "1.42.0.1" }; var mailSender = new Mock<IMailSender>(); var setting = new GallerySetting { GalleryOwnerName = "NuGet Gallery", GalleryOwnerEmail = "*****@*****.**" }; var messageService = new MessageService(mailSender.Object, setting); MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.ReportAbuse(from, package, "Abuse!"); Assert.Equal("*****@*****.**", message.To[0].Address); Assert.Equal("[NuGet Gallery] Abuse Report for Package 'smangit' Version '1.42.0.1'", message.Subject); Assert.Contains("Abuse!", message.Body); Assert.Contains("User too ([email protected]) reports the package 'smangit' version '1.42.0.1' as abusive", message.Body); }
public void WillSendEmailToGalleryOwner() { var from = new MailAddress("*****@*****.**", "too"); var package = new Package { PackageRegistration = new PackageRegistration { Id = "smangit" }, Version = "1.42.0.1" }; var mailSender = new Mock<IMailSender>(); var config = new Mock<IAppConfiguration>(); config.Setup(x => x.GalleryOwner).Returns(TestGalleryOwner); var messageService = new MessageService(mailSender.Object, config.Object); MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.ReportAbuse( new ReportPackageRequest { AlreadyContactedOwners = true, FromAddress = from, Message = "Abuse!", Package = package, Reason = "Reason!", RequestingUser = null, Url = TestUtility.MockUrlHelper(), }); Assert.Equal(TestGalleryOwner.Address, message.To[0].Address); Assert.Equal(TestGalleryOwner.Address, message.From.Address); Assert.Equal("*****@*****.**", message.ReplyToList.Single().Address); 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 WillNotAttemptToSendIfNoOwnersAllow() { var from = new MailAddress("*****@*****.**", "flossy"); var package = new PackageRegistration { Id = "smangit" }; package.Owners = new[] { new User { EmailAddress = "*****@*****.**", EmailAllowed = false }, new User { EmailAddress = "*****@*****.**", EmailAllowed = false } }; var mailSender = new Mock<IMailSender>(); mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Throws(new InvalidOperationException()); var setting = new GallerySetting { GalleryOwnerName = "Joe Schmoe", GalleryOwnerEmail = "*****@*****.**" }; var messageService = new MessageService(mailSender.Object, setting); MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.SendContactOwnersMessage(from, package, "Test message", "http://someurl/"); mailSender.Verify(m => m.Send(It.IsAny<MailMessage>()), Times.Never()); Assert.Null(message); }
public void WillSendInstructions() { var user = new User { EmailAddress = "*****@*****.**", Username = "******" }; var mailSender = new Mock<IMailSender>(); var setting = new GallerySetting { GalleryOwnerName = "NuGet Gallery", GalleryOwnerEmail = "*****@*****.**" }; var messageService = new MessageService(mailSender.Object, setting); MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.SendPasswordResetInstructions(user, "http://example.com/pwd-reset-token-url"); Assert.Equal("*****@*****.**", message.To[0].Address); Assert.Equal("[NuGet Gallery] Please reset your password.", message.Subject); Assert.Contains("Click the following link within the next", message.Body); Assert.Contains("http://example.com/pwd-reset-token-url", message.Body); }
public void DoesNotSendRequestIfUserDoesNotAllowEmails() { var to = new User { Username = "******", EmailAddress = "*****@*****.**", EmailAllowed = false }; var from = new User { Username = "******", EmailAddress = "*****@*****.**" }; var mailSender = new Mock<IMailSender>(); mailSender.Setup(s => s.Send(It.IsAny<MailMessage>())).Throws(new InvalidOperationException("Should not be called")); var setting = new GallerySetting { GalleryOwnerName = "NuGet Gallery", GalleryOwnerEmail = "*****@*****.**" }; var messageService = new MessageService(mailSender.Object, setting); var package = new PackageRegistration { Id = "CoolStuff" }; const string confirmationUrl = "http://example.com/confirmation-token-url"; MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.SendPackageOwnerRequest(from, to, package, confirmationUrl); Assert.Null(message); }
public void SendsPackageOwnerRequestConfirmationUrl() { var to = new User { Username = "******", EmailAddress = "*****@*****.**", EmailAllowed = true }; var from = new User { Username = "******", EmailAddress = "*****@*****.**" }; var mailSender = new Mock<IMailSender>(); var setting = new GallerySetting { GalleryOwnerName = "NuGet Gallery", GalleryOwnerEmail = "*****@*****.**" }; var messageService = new MessageService(mailSender.Object, setting); var package = new PackageRegistration { Id = "CoolStuff" }; const string confirmationUrl = "http://example.com/confirmation-token-url"; MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.SendPackageOwnerRequest(from, to, package, confirmationUrl); Assert.Equal("*****@*****.**", message.To[0].Address); Assert.Equal("*****@*****.**", message.From.Address); Assert.Equal("[NuGet Gallery] The user 'Existing' wants to add you as an owner of the package 'CoolStuff'.", message.Subject); Assert.Contains(confirmationUrl, message.Body); Assert.Contains("The user 'Existing' wants to add you as an owner of the package 'CoolStuff'.", message.Body); }
public void WillSendEmailToNewUser() { var to = new MailAddress("*****@*****.**", "too"); var mailSender = new Mock<IMailSender>(); var setting = new GallerySetting { GalleryOwnerName = "NuGet Gallery", GalleryOwnerEmail = "*****@*****.**" }; var messageService = new MessageService(mailSender.Object, setting); MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.SendNewAccountEmail(to, "http://example.com/confirmation-token-url"); Assert.Equal("*****@*****.**", message.To[0].Address); Assert.Equal("[NuGet Gallery] Please verify your account.", message.Subject); Assert.Contains("http://example.com/confirmation-token-url", message.Body); }
public void WillSendInstructions() { var user = new User { EmailAddress = "*****@*****.**", Username = "******" }; var mailSender = new Mock<IMailSender>(); var config = new Mock<IAppConfiguration>(); config.Setup(x => x.GalleryOwner).Returns(TestGalleryOwner); var messageService = new MessageService(mailSender.Object, config.Object); MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.SendPasswordResetInstructions(user, "http://example.com/pwd-reset-token-url"); Assert.Equal("*****@*****.**", message.To[0].Address); Assert.Equal(TestGalleryOwner.Address, message.From.Address); Assert.Equal("[Joe Shmoe] Please reset your password.", message.Subject); Assert.Contains("Click the following link within the next", message.Body); Assert.Contains("http://example.com/pwd-reset-token-url", message.Body); }
public void WillSendEmailToNewUser() { var to = new MailAddress("*****@*****.**", "too"); var mailSender = new Mock<IMailSender>(); var config = new Mock<IAppConfiguration>(); config.Setup(x => x.GalleryOwner).Returns(TestGalleryOwner); var messageService = new MessageService(mailSender.Object, config.Object); MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.SendNewAccountEmail(to, "http://example.com/confirmation-token-url"); Assert.Equal("*****@*****.**", message.To[0].Address); Assert.Equal(TestGalleryOwner.Address, message.From.Address); Assert.Equal("[Joe Shmoe] Please verify your account.", message.Subject); Assert.Contains("http://example.com/confirmation-token-url", message.Body); }
public void WillSendEmailToAllOwners() { var from = new MailAddress("*****@*****.**", "flossy"); var package = new PackageRegistration { Id = "smangit" }; package.Owners = new[] { new User { EmailAddress = "*****@*****.**", EmailAllowed = true }, new User { EmailAddress = "*****@*****.**", EmailAllowed = true } }; var mailSender = new Mock<IMailSender>(); var config = new Mock<IAppConfiguration>(); config.Setup(x => x.GalleryOwner).Returns(TestGalleryOwner); var messageService = new MessageService(mailSender.Object, config.Object); MailMessage message = null; mailSender.Setup(m => m.Send(It.IsAny<MailMessage>())).Callback<MailMessage>(m => { message = m; }); messageService.SendContactOwnersMessage(from, package, "Test message", "http://someurl/"); mailSender.Verify(m => m.Send(It.IsAny<MailMessage>())); Assert.Equal("*****@*****.**", message.To[0].Address); Assert.Equal("*****@*****.**", message.To[1].Address); Assert.Equal(TestGalleryOwner.Address, message.From.Address); Assert.Equal("*****@*****.**", message.ReplyToList.Single().Address); Assert.Contains("[Joe Shmoe] Message for owners of the package 'smangit'", message.Subject); Assert.Contains("Test message", message.Body); Assert.Contains( "User flossy <[email protected]> sends the following message to the owners of Package 'smangit'.", message.Body); }
protected override void SendEmailChangedConfirmationNotice(User account) { var confirmationUrl = Url.ConfirmEmail(account.Username, account.EmailConfirmationToken, relativeUrl: false); MessageService.SendEmailChangeConfirmationNotice(account, confirmationUrl); }