public void Setup()
        {
            _command = new ResendInvitationCommand
            {
                Email          = "*****@*****.**",
                AccountId      = ExpectedHashedId,
                ExternalUserId = Guid.NewGuid().ToString(),
            };

            var owner = new MembershipView
            {
                AccountId       = ExpectedAccountId,
                UserId          = 2,
                Role            = Role.Owner,
                HashedAccountId = ExpectedHashedId
            };

            _userRepository = new Mock <IUserAccountRepository>();
            _userRepository.Setup(x => x.Get(ExpectedExistingUserEmail)).ReturnsAsync(new User {
                Email = ExpectedExistingUserEmail, UserRef = Guid.NewGuid().ToString()
            });

            _membershipRepository = new Mock <IMembershipRepository>();
            _membershipRepository.Setup(x => x.GetCaller(owner.HashedAccountId, _command.ExternalUserId)).ReturnsAsync(owner);
            _invitationRepository = new Mock <IInvitationRepository>();
            _mediator             = new Mock <IMediator>();

            _config = new EmployerAccountsConfiguration();

            _handler = new ResendInvitationCommandHandler(_invitationRepository.Object, _membershipRepository.Object, _mediator.Object, _config, _userRepository.Object);
        }
        public void InvalidCommandThrowsException()
        {
            //Arrange
            var command = new ResendInvitationCommand();

            //Act
            var exception = Assert.ThrowsAsync <InvalidRequestException>(() => _handler.Handle(command));

            //Assert
            Assert.That(exception.ErrorMessages.Count, Is.EqualTo(3));
            Assert.That(exception.ErrorMessages.FirstOrDefault(x => x.Key == "Id"), Is.Not.Null);
            Assert.That(exception.ErrorMessages.FirstOrDefault(x => x.Key == "AccountId"), Is.Not.Null);
            Assert.That(exception.ErrorMessages.FirstOrDefault(x => x.Key == "ExternalUserId"), Is.Not.Null);
        }