protected override void Act()
            {
                // Execute code under test
                var explicitValidator = new FluentValidationObjectValidator(
                    new IValidator[]
                {
                    // Does not apply to Pets or define validations for the "ShortNames" ruleset
                    new EvenAgeValidator(),

                    // Has a "ShortNames" ruleset, but does not apply to Pets
                    new ShortFirstNameValidator(),

                    // Has a "ShortNames" ruleset, but does not apply to Pets
                    new ShortLastNameValidator(),

                    // Applies to Pets, but does not have a "ShortNames" ruleset
                    new CatsAndDogsOnlyValidator()
                });

                var pet = new Pet
                {
                    Name = "Fido", AnimalType = "Hamster"
                };

                _actualValidationResults = explicitValidator.ValidateObject(pet, "ShortNames");
            }
            protected override void Act()
            {
                var explicitValidator = new FluentValidationObjectValidator(
                    new IValidator[]
                {
                    new EvenAgeValidator(), new ShortFirstNameValidator(), new ShortLastNameValidator(), new CatsAndDogsOnlyValidator()
                });

                var pet = new Pet
                {
                    Name = "Fido", AnimalType = "Hamster"
                };

                _actualValidationResults = explicitValidator.ValidateObject(pet);
            }
예제 #3
0
            protected override void Act()
            {
                // Execute code under test
                var explicitValidator = new FluentValidationObjectValidator(
                    new IValidator[]
                {
                    new EvenAgeValidator(), new ShortFirstNameValidator(), new ShortLastNameValidator(), new CatsAndDogsOnlyValidator()
                });

                var person = new Person
                {
                    FirstName = "Wolfgang", LastName = "Mozart", Age = 261
                };

                _actualValidationResults = explicitValidator.ValidateObject(person, "ShortNames");
            }
예제 #4
0
        private void ValidateModel()
        {
            EnsureDomainModelIsNotNull();

            var validator = new FluentValidationObjectValidator(
                new IValidator[]
            {
                new SchemaValidator(_domainModel),
                new EntityValidator(_domainModel),
                new AssociationValidator(_domainModel),
                new AggregateValidator(_domainModel)
            });

            var validationResults =

                // Validate the Schemas
                _domainModel.Schemas.SelectMany(schema => validator.ValidateObject(schema))

                // Validate the Aggregates
                .Concat(_domainModel.Aggregates.SelectMany(aggregate => validator.ValidateObject(aggregate)))

                // Validate the Entities
                .Concat(_domainModel.Entities.SelectMany(entity => validator.ValidateObject(entity)))

                // Validate the Associations
                .Concat(_domainModel.Associations.SelectMany(association => validator.ValidateObject(association)))
                .ToList();

            if (validationResults.Any())
            {
                throw new Exception(
                          string.Format(
                              "Domain model is invalid.{0}{1}",
                              Environment.NewLine,
                              string.Join("\t" + Environment.NewLine, validationResults.GetAllMessages())));
            }
        }