public async Task Then_The_Command_Is_Handled_And_Endpoint_Called(
            ActivateUserCommand command,
            [Frozen] Mock <IApimDeveloperApiClient <ApimDeveloperApiConfiguration> > apimDeveloperApiClient,
            ActivateUserCommandHandler handler)
        {
            await handler.Handle(command, CancellationToken.None);

            apimDeveloperApiClient.Verify(x => x.Put(It.Is <PutUpdateUserRequest>(c =>
                                                                                  c.PutUrl.Contains(command.Id.ToString()) &&
                                                                                  ((UserRequestData)c.Data).State.Equals(1)
                                                                                  )), Times.Once);
        }
Example #2
0
        public void ActivateUserCommandHandler_Succeeds()
        {
            var handler = new ActivateUserCommandHandler(_repository);
            var command = new ActivateUserCommand("*****@*****.**", "999999");
            var user    = Substitute.For <User>();

            user.Email.Returns("*****@*****.**");
            user.ActivationCode.Returns(999999);
            user.Status.Returns(UserStatus.New);

            _context.Users.Add(user);

            var result = handler.Execute(command);

            result.Errors.Should().BeEmpty();
            user.Received().Activate();
            user.DidNotReceive().ActivationFailed();
        }
Example #3
0
        public void ActivateUserCommandHandler_Fails_For_Inactive_User()
        {
            var handler = new ActivateUserCommandHandler(_repository);
            var command = new ActivateUserCommand("*****@*****.**", "999999");
            var user    = Substitute.For <User>();

            user.Email.Returns("*****@*****.**");
            user.ActivationCode.Returns(999999);
            user.Status.Returns(UserStatus.Inactive);

            _context.Users.Add(user);

            var result = handler.Execute(command);

            result.Errors.Should().HaveCount(1);
            result.Errors[0].Expression.ToString().Should().Be("p => p.ActivationCode");
            result.Errors[0].Message.Should().Be("This activation code is invalid");
            user.DidNotReceive().Activate();
            user.Received().ActivationFailed();
        }
        public void Arrange()
        {
            _activateUserCommandValidator = new Mock <IValidator <ActivateUserCommand> >();
            _activateUserCommandValidator.Setup(x => x.ValidateAsync(It.IsAny <ActivateUserCommand>()))
            .ReturnsAsync(new ValidationResult {
                ValidationDictionary = new Dictionary <string, string>()
            });

            _user = new User
            {
                SecurityCodes = new[]
                {
                    new SecurityCode
                    {
                        Code      = AccessCode,
                        CodeType  = SecurityCodeType.AccessCode,
                        ReturnUrl = ReturnUrl
                    }
                }
            };
            _userRepository = new Mock <IUserRepository>();
            _userRepository.Setup(x => x.GetById(It.IsAny <string>())).ReturnsAsync(_user);
            _userRepository.Setup(x => x.GetByEmailAddress(It.IsAny <string>())).ReturnsAsync(_user);

            _auditService = new Mock <IAuditService>();

            _logger = new Mock <ILogger>();

            _handler = new ActivateUserCommandHandler(_activateUserCommandValidator.Object, _userRepository.Object, _auditService.Object, _logger.Object);

            _command = new ActivateUserCommand
            {
                AccessCode = AccessCode,
                UserId     = UserId
            };
        }