예제 #1
0
        public void Arrange()
        {
            _command = new RenameEmployerAccountCommand
            {
                HashedAccountId = HashedAccountId,
                NewName         = "Renamed account"
            };

            _owner = new MembershipView
            {
                AccountId = 1234,
                UserId    = 9876,
                UserRef   = Guid.NewGuid().ToString(),
                Email     = "*****@*****.**",
                FirstName = "Bob",
                LastName  = "Green"
            };

            _membershipRepository = new Mock <IMembershipRepository>();
            _membershipRepository.Setup(x => x.GetCaller(It.IsAny <string>(), It.IsAny <string>()))
            .ReturnsAsync(_owner);

            _hashingService = new Mock <IHashingService>();
            _hashingService.Setup(x => x.DecodeValue(It.Is <string>(s => s == HashedAccountId)))
            .Returns(AccountId);

            _repository = new Mock <IEmployerAccountRepository>();
            _repository.Setup(x => x.GetAccountById(It.IsAny <long>()))
            .ReturnsAsync(new Account
            {
                Id       = AccountId,
                HashedId = HashedAccountId,
                Name     = AccountName
            });

            _validator = new Mock <IValidator <RenameEmployerAccountCommand> >();

            _validator.Setup(x => x.ValidateAsync(It.IsAny <RenameEmployerAccountCommand>()))
            .ReturnsAsync(new ValidationResult());

            _mediator            = new Mock <IMediator>();
            _genericEventFactory = new Mock <IGenericEventFactory>();
            _accountEventFactory = new Mock <IAccountEventFactory>();
            _eventPublisher      = new TestableEventPublisher();

            _commandHandler = new RenameEmployerAccountCommandHandler(
                _eventPublisher,
                _repository.Object,
                _membershipRepository.Object,
                _validator.Object,
                _hashingService.Object,
                _mediator.Object,
                _genericEventFactory.Object,
                _accountEventFactory.Object);
        }
        public async Task ThenNewAccountNameIsValidIfNotEmpty()
        {
            //Arrange
            var command = new RenameEmployerAccountCommand
            {
                NewName = "Test Renamed Account"
            };

            //Act
            var result = await _validator.ValidateAsync(command);

            //Assert
            Assert.IsTrue(result.IsValid());
        }
        public async Task ThenNewAccountNameCannotBeEmpty()
        {
            //Arrange
            var command = new RenameEmployerAccountCommand
            {
                NewName = String.Empty
            };

            //Act
            var result = await _validator.ValidateAsync(command);

            //Assert
            Assert.IsFalse(result.IsValid());
        }