public void The_validator_should_collect_all_errors_and_throw_a_exception()
        {
            var argumentsValidators = new[] { Fake<IValidateArguments>() };
            A.CallTo(() => argumentsValidators[0].Validate()).Returns(new[] { "ArgumentError" });

            var validator = new ArgumentsValidator(argumentsValidators);

            var ex = Assert.Catch<ArgumentsValidationException>(() => validator.Validate());

            StringAssert.Contains("ArgumentError", ex.Message);
        }
        public void The_validator_should_collect_all_errors_and_throw_a_exception()
        {
            var tasks = new[]
            {
                new RegisteredTask(typeof (ExampleTask0)),
                new RegisteredTask(typeof (ExampleTask1))
            };
            A.CallTo(() => Fake<ITaskRegistration>().Tasks).Returns(tasks);

            var taskRegistrationValidators = new[] { Fake<IValidateTaskRegistration>()};

            A.CallTo(() => taskRegistrationValidators[0].Validate(A<RegisteredTask[]>._))
                .Returns(new [] {"TaskRegistrationError"});

            var validator = new TaskRegistrationValidator(Fake<ITaskRegistration>(), taskRegistrationValidators);

            var ex = Assert.Catch<TaskRegistrationValidationException>(() => validator.Validate());

            StringAssert.Contains("TaskRegistrationError", ex.Message);
        }