Esempio n. 1
0
            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 &lt;[email protected]&gt; sends the following message to the owners of Package 'smangit'.", message.Body);
            }
Esempio n. 2
0
            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);
            }
Esempio n. 3
0
            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);
            }
Esempio n. 4
0
            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);
            }
Esempio n. 5
0
            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);
            }
Esempio n. 6
0
            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);
            }
Esempio n. 7
0
            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);
            }
Esempio n. 8
0
            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;
        }
Esempio n. 10
-1
            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);
            }
Esempio n. 11
-1
            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);
            }
Esempio n. 12
-1
            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 &lt;[email protected]&gt; sends the following message to the owners of Package 'smangit'.", message.Body);
            }
Esempio n. 13
-1
            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);
            }
Esempio n. 14
-1
            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);
            }
Esempio n. 15
-1
            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);
            }
Esempio n. 16
-1
            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);
            }
Esempio n. 17
-1
            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);
            }