public void AddError_CreatesAndAddsCorrectError()
        {
            var target    = new EmployeeVM();
            var validator = Mock <IValidator>();

            var message = "Test error message";
            var details = new Object();

            var args = CreateArgs(target, target, validator);

            args.AddError(message, details);

            var expectedError = new ValidationError(
                validator,
                ValidationTarget.ForError(
                    ValidationStep.ViewModel,
                    target,
                    null,
                    null
                    ),
                message,
                details
                );

            ValidationAssert.HasErrors(args.Result, ValidationAssert.FullErrorComparer, expectedError);
        }
        public void AddError_ArgsWithProperty_CreatesAndAddsCorrectError()
        {
            var item      = new EmployeeVM();
            var owner     = new EmployeeListVM(item);
            var validator = Mock <IValidator>();
            var step      = ValidationStep.Value;

            var message = "Test error message";
            var details = new Object();

            var args = CreateArgsWithProperty(owner, step, validator);

            args.AddError(item, message, details);

            var expectedError = new ValidationError(
                validator,
                ValidationTarget.ForError(
                    step,
                    item,
                    owner.GetValue(x => x.Employees),
                    EmployeeVM.ClassDescriptor.Name
                    ),
                message,
                details
                );

            ValidationAssert.HasErrors(args.Result, ValidationAssert.FullErrorComparer, expectedError);
        }