예제 #1
0
        public async Task <IActionResult> ResendVerificationAsync([FromBody] ResendVerificationModel model)
        {
            var user = await _userService.FindOneAsync(new UserFilter
            {
                Email        = model.Email,
                AsNoTracking = true
            },
                                                       x => new User
            {
                FirstName   = x.FirstName,
                SignupToken = x.SignupToken
            });

            if (user != null)
            {
                await _emailService.SendSignUpAsync(new SignUpEmailModel
                {
                    Email       = model.Email,
                    FirstName   = user.FirstName,
                    SignUpToken = user.SignupToken
                });
            }

            return(Ok());
        }
        public async Task ResendVerificationShouldSendSignUpEmail()
        {
            // Arrange
            var model = new ResendVerificationModel
            {
                Email = "*****@*****.**"
            };
            var user = new User
            {
                FirstName   = "firstName",
                SignupToken = "test token"
            };

            _userService.Setup(service => service.FindOneAsync(
                                   It.Is <UserFilter>(filter => filter.Email == model.Email && filter.AsNoTracking),
                                   It.IsAny <Expression <Func <User, User> > >()))
            .ReturnsAsync(user);

            var controller = CreateInstance();

            // Act
            var result = await controller.ResendVerificationAsync(model);

            // Assert
            _emailService.Verify(service => service.SendSignUpAsync(
                                     It.Is <SignUpEmailModel>(m =>
                                                              m.Email == model.Email &&
                                                              m.SignUpToken == user.SignupToken &&
                                                              m.FirstName == user.FirstName
                                                              ))
                                 );
            Assert.IsType <OkResult>(result);
        }
        public async Task <IActionResult> ResendVerificationAsync([FromBody] ResendVerificationModel model)
        {
            var user = await _userService.FindByEmailAsync(model.Email);

            if (user != null)
            {
                await _emailService.SendSignUpAsync(new SignUpEmailModel
                {
                    Email       = model.Email,
                    FirstName   = user.FirstName,
                    SignUpToken = user.SignupToken
                });
            }

            return(Ok());
        }