public async Task ForgetPassword_UserIsActive()
        {
            _repository.Setup(repo => repo.GetById <UserModel, string>(HelperConstants.TestEmailAddress, null)).Returns(HelperObjects.GetUser(UserStatesEnum.NotConfirmed));

            var controller = new EmailController(_emailService.Object, _message.Object, _dataProvider.Object, _config.Object,
                                                 _emailAddress.Object, _repository.Object, _emailTemplate.Object, _confirmationEmail.Object, _registrationEmail.Object, _forgotPassword.Object);
            var result = await controller.ForgetPassword(HelperConstants.TestEmailAddress) as StatusCodeResult;

            Assert.Equal(404, (int)result.StatusCode);
        }
        public async Task ForgetPassword_Success()
        {
            _repository.Setup(repo => repo.GetById <UserModel, string>(HelperConstants.TestEmailAddress, null)).Returns(HelperObjects.GetUser(UserStatesEnum.Active));
            _emailService.Setup(email => email.Send(_message.Object));
            _message.SetupProperty(m => m.ToAddresses);
            _message.Object.ToAddresses = new List <EmailAddress>();
            var controller = new EmailController(_emailService.Object, _message.Object, _dataProvider.Object, _config.Object,
                                                 _emailAddress.Object, _repository.Object, _emailTemplate.Object, _confirmationEmail.Object, _registrationEmail.Object, _forgotPassword.Object);
            var result = await controller.ForgetPassword(HelperConstants.TestEmailAddress);

            Assert.IsType <ViewResult>(result);
        }
        public async Task ForgetPassword_WrongEmailAddress()
        {
            var mockedProtector = new Mock <IDataProtector>();

            mockedProtector.Setup(protector => protector.Unprotect(It.IsAny <byte[]>())).Returns(Encoding.UTF8.GetBytes("*****@*****.**"));
            _dataProvider.Setup(s => s.CreateProtector(It.IsAny <string>())).Returns(mockedProtector.Object);
            _repository.Setup(repo => repo.GetById <UserModel, string>(HelperConstants.TestEmailAddress, null)).Returns(HelperObjects.GetUser(UserStatesEnum.NotConfirmed));

            var controller = new EmailController(_emailService.Object, _message.Object, _dataProvider.Object, _config.Object,
                                                 _emailAddress.Object, _repository.Object, _emailTemplate.Object, _confirmationEmail.Object, _registrationEmail.Object, _forgotPassword.Object);
            var result = await controller.ForgetPassword(string.Empty) as StatusCodeResult;

            Assert.Equal(404, (int)result.StatusCode);
        }