public void ThenItShouldPassValidation()
        {
            //Arrange
            var command = new SaveUserReminderSuppressionFlagCommand
            {
                EmployerAccountId = "ABC123",
                UserId            = "DEF123",
                TaskType          = TaskType.AgreementToSign.ToString()
            };

            //Act
            var result = _validator.Validate(command);

            //Assert
            Assert.IsTrue(result.IsValid());
        }
        public void Arrange()
        {
            _taskType = TaskType.LevyDeclarationDue;

            _repository = new Mock <ITaskRepository>();
            _logger     = new Mock <ILog>();
            _validator  = new Mock <IValidator <SaveUserReminderSuppressionFlagCommand> >();

            _validator.Setup(x => x.Validate(It.IsAny <SaveUserReminderSuppressionFlagCommand>()))
            .Returns(new ValidationResult());

            _handler = new SaveUserReminderSuppressionFlagCommandHandler(_repository.Object, _logger.Object, _validator.Object);
            _command = new SaveUserReminderSuppressionFlagCommand
            {
                EmployerAccountId = "ABC123",
                UserId            = "DEF123",
                TaskType          = _taskType.ToString()
            };
        }
        public void ThenItShouldFailValidationIfTheCommandIsInvalid()
        {
            //Arrange
            var command = new SaveUserReminderSuppressionFlagCommand
            {
                EmployerAccountId = string.Empty,
                UserId            = string.Empty,
                TaskType          = "Not Supported"
            };

            //Act
            var result = _validator.Validate(command);

            //Assert
            Assert.IsFalse(result.IsValid());
            Assert.IsTrue(result.ValidationDictionary.ContainsKey(nameof(command.EmployerAccountId)));
            Assert.IsTrue(result.ValidationDictionary.ContainsKey(nameof(command.UserId)));
            Assert.IsTrue(result.ValidationDictionary.ContainsKey(nameof(command.TaskType)));
        }