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 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 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 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 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 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 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); var message = 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 setting = new GallerySetting { GalleryOwnerName = "NuGet Gallery", GalleryOwnerEmail = "*****@*****.**" }; var messageService = new MessageService(mailSender.Object, setting); var message = 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); }
private static JsonApiController CreateJsonApiController( Mock<IPackageService> packageService = null, Mock<IUserService> userService = null, Mock<IEntityRepository<PackageOwnerRequest>> repository = null, Mock<IMessageService> messageService = null, Mock<IPrincipal> currentUser = null, bool confirmOwnerPackage = true) { packageService = packageService ?? new Mock<IPackageService>(); userService = userService ?? new Mock<IUserService>(); repository = repository ?? new Mock<IEntityRepository<PackageOwnerRequest>>(); messageService = messageService ?? new Mock<IMessageService>(); currentUser = currentUser ?? new Mock<IPrincipal>(); var httpContext = new Mock<HttpContextBase>(); httpContext.Setup(c => c.User).Returns(currentUser.Object); var settings = new GallerySetting { ConfirmOwnerPackage = confirmOwnerPackage }; var controller = new JsonApiController(packageService.Object, userService.Object, repository.Object, messageService.Object, settings); TestUtility.SetupHttpContextMockForUrlGeneration(httpContext, controller); return controller; }
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); var message = messageService.SendContactOwnersMessage(from, package, "Test message", "http://someurl/"); Assert.Equal("*****@*****.**", message.To[0].Address); Assert.Equal(1, message.To.Count); }
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); var message = messageService.SendContactOwnersMessage(from, package, "Test message", "http://someurl/"); Assert.Equal(0, message.To.Count); }
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); var message = 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 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); var message = 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 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" }; var confirmationUrl = "http://example.com/confirmation-token-url"; var message = 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" }; var confirmationUrl = "http://example.com/confirmation-token-url"; var message = 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 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); var message = 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 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); var message = 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); }