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")); }
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(); }