Esempio n. 1
0
        public async Task SendEmailConfirmation_ShouldReturnInternalServerErrorAndLogError_WhenUsersServiceIsNull()
        {
            var controller = new ManageUsersController(null, null, null, mockedLogger.Object);

            var result = await controller.SendEmailConfirmation(null);

            Assert.IsInstanceOfType(result, typeof(InternalServerErrorResult));
            mockedLogger.Verify(x => x.LogError(It.IsAny <Exception>(), "", controllerName, "SendEmailConfirmation"));
        }
Esempio n. 2
0
        public async Task SendEmailConfirmation_ShouldReturnOkResult()
        {
            mapper.Execute();
            string testEmail       = "testEmail";
            string testId          = "testId";
            string testCode        = "testCode";
            string testRoute       = "/testRoute";
            string fullCallbackUrl = $"{GlobalConstants.AppDomainPath}/confirmemail?userid={testId}&code={testCode}";

            var usersMock = new Mock <IUsersService>();

            usersMock.Setup(x => x.GetByEmail(testEmail)).Returns(() => new User()
            {
                Id = testId, Email = testEmail
            });

            var userStore       = new Mock <IUserStore <User> >();
            var userManagerMock = new Mock <ApplicationUserManager>(userStore.Object);

            userManagerMock.Setup(x => x.GenerateEmailConfirmationTokenAsync(testId)).ReturnsAsync(testCode);

            var emailsMock = new Mock <IEmailsService>();

            emailsMock.Setup(x => x.SendEmail(testEmail, GlobalConstants.ConfirmEmailSubject,
                                              string.Format(GlobalConstants.ConfirmEmailBody, fullCallbackUrl), GlobalConstants.SMTPServer,
                                              GlobalConstants.EmailPrimary, GlobalConstants.EmailPrimaryPassword));

            var urlMock = new Mock <UrlHelper>();

            urlMock.Setup(m => m.Route(It.IsAny <string>(), It.IsAny <object>())).Returns(testRoute);

            AccountEmailRequestModel request = new AccountEmailRequestModel()
            {
                Email = testEmail
            };
            var controller = new ManageUsersController(usersMock.Object, emailsMock.Object, userManagerMock.Object, null)
            {
                Url = urlMock.Object
            };

            var result = await controller.SendEmailConfirmation(request);

            Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <string>));
            var responseContent = ((OkNegotiatedContentResult <string>)result).Content;

            Assert.AreEqual(fullCallbackUrl, responseContent);
            usersMock.VerifyAll();
            userManagerMock.VerifyAll();
            emailsMock.VerifyAll();
        }