Exemple #1
0
        public static ValidationResult Validate(RentalListing rentalListing,
                                                string ruleSet = RentalListingValidator.NormalRuleSet)
        {
            var validator = new RentalListingValidator();

            return(string.IsNullOrWhiteSpace(ruleSet)
                ? validator.Validate(rentalListing)
                : validator.Validate(rentalListing, ruleSet: ruleSet));
        }
            public void GivenARentalListing_Validate_ShouldNotHaveAnyValidationErrors()
            {
                // Arrange.
                var validator = new RentalListingValidator();
                var listing = CreateListing();

                // Act.
                var result = validator.Validate(listing, ruleSet: RentalListingValidator.MinimumRuleSet);

                // Assert.
                result.Errors.Count.ShouldBe(0);
            }
Exemple #3
0
            public void GivenARentalListing_Validate_ShouldNotHaveAnyValidationErrors()
            {
                // Arrange.
                var validator = new RentalListingValidator();
                var listing   = CreateListing();

                // Act.
                var result = validator.Validate(listing, ruleSet: RentalListingValidator.MinimumRuleSet);

                // Assert.
                result.Errors.Count.ShouldBe(0);
            }
        public static ValidationResult Validate(Listing listing, string ruleSet = null)
        {
            if (listing is ResidentialListing)
            {
                var validator = new ResidentialListingValidator();
                return(string.IsNullOrWhiteSpace(ruleSet)
                    ? validator.Validate(listing as ResidentialListing)
                    : validator.Validate(listing as ResidentialListing, ruleSet: RentalListingValidator.MinimumRuleSet));
            }

            if (listing is RentalListing)
            {
                var validator = new RentalListingValidator();
                return(string.IsNullOrWhiteSpace(ruleSet)
                    ? validator.Validate(listing as RentalListing)
                    : validator.Validate(listing as RentalListing, ruleSet: RentalListingValidator.MinimumRuleSet));
            }

            if (listing is RuralListing)
            {
                var validator = new RuralListingValidator();
                return(string.IsNullOrWhiteSpace(ruleSet)
                    ? validator.Validate(listing as RuralListing)
                    : validator.Validate(listing as RuralListing, ruleSet: RentalListingValidator.MinimumRuleSet));;
            }

            if (listing is LandListing)
            {
                var validator = new LandListingValidator();
                return(string.IsNullOrWhiteSpace(ruleSet)
                    ? validator.Validate(listing as LandListing)
                    : validator.Validate(listing as LandListing, ruleSet: RentalListingValidator.MinimumRuleSet));
            }

            var errorMessage =
                string.Format(
                    "Tried to validate an unhandled Listing type: {0}. Only Residental, Rental, Rural and Land listing types are supported.",
                    listing.GetType());

            throw new Exception(errorMessage);
        }
        public static ValidationResult Validate(Listing listing, bool isTheMinimumDataToStoreAListing = true)
        {
            if (listing is ResidentialListing)
            {
                var validator = new ResidentialListingValidator();
                return(isTheMinimumDataToStoreAListing
                    ? validator.Validate(listing as ResidentialListing, ruleSet: ResidentialListingValidator.MinimumRuleSet)
                    : validator.Validate(listing as ResidentialListing));
            }

            if (listing is RentalListing)
            {
                var validator = new RentalListingValidator();
                return(isTheMinimumDataToStoreAListing
                    ? validator.Validate(listing as RentalListing, ruleSet: RentalListingValidator.MinimumRuleSet)
                    : validator.Validate(listing as RentalListing));
            }

            if (listing is RuralListing)
            {
                var validator = new RuralListingValidator();
                return(isTheMinimumDataToStoreAListing
                    ? validator.Validate(listing as RuralListing, ruleSet: RuralListingValidator.MinimumRuleSet)
                    : validator.Validate(listing as RuralListing));;
            }

            if (listing is LandListing)
            {
                var validator = new LandListingValidator();
                return(isTheMinimumDataToStoreAListing
                    ? validator.Validate(listing as LandListing, ruleSet: LandListingValidator.MinimumRuleSet)
                    : validator.Validate(listing as LandListing));
            }

            var errorMessage =
                string.Format(
                    "Tried to validate an unhandled Listing type: {0}. Only Residental, Rental, Rural and Land listing types are supported.",
                    listing.GetType());

            throw new Exception(errorMessage);
        }
Exemple #6
0
            public void GivenAnIncompleteRentalListing_Validate_ShouldHaveAnyValidationErrors()
            {
                // Arrange.
                var validator = new RentalListingValidator();

                // Act.
                var result = validator.Validate(new RentalListing(),
                                                ruleSet: RentalListingValidator.MinimumRuleSet);

                // Assert.
                result.Errors.Count.ShouldBe(9);
                result.Errors.ShouldContain(x => x.PropertyName == "AgencyId");
                result.Errors.ShouldContain(x => x.PropertyName == "StatusType");
                result.Errors.ShouldContain(x => x.PropertyName == "CreatedOn");
                result.Errors.ShouldContain(x => x.PropertyName == "Id");
                result.Errors.ShouldContain(x => x.PropertyName == "UpdatedOn");
                result.Errors.ShouldContain(x => x.PropertyName == "Title");
                result.Errors.ShouldContain(x => x.PropertyName == "Description");
                result.Errors.ShouldContain(x => x.PropertyName == "Address");
                result.Errors.ShouldContain(x => x.PropertyName == "PropertyType");
            }
Exemple #7
0
        public void GivenANonCurrentReaRentalFileAndAnExistingListing_Parse_ReturnsTheUpdatedListing(string fileName,
                                                                                                     StatusType expectedStatusType)
        {
            // Arrange.
            var existingListing       = FakeListings.CreateAFakeRentalListing();
            var reaXml                = File.ReadAllText(FakeDataFolder + fileName);
            var reaXmlTransmorgrifier = new ReaXmlTransmorgrifier();

            // Arrange.
            var result = reaXmlTransmorgrifier.Parse(reaXml, existingListing);

            // Assert.
            var listing = result.Listings.First().Listing as RentalListing;

            listing.StatusType.ShouldBe(expectedStatusType);

            var validator        = new RentalListingValidator();
            var validationResult = validator.Validate(listing, ruleSet: RentalListingValidator.StrictRuleSet);

            validationResult.IsValid.ShouldBeTrue();
        }
        public static ValidationResult Validate(Listing listing, bool isTheMinimumDataToStoreAListing = true)
        {
            if (listing is ResidentialListing)
            {
                var validator = new ResidentialListingValidator();
                return isTheMinimumDataToStoreAListing
                    ? validator.Validate(listing as ResidentialListing, ruleSet: ResidentialListingValidator.MinimumRuleSet)
                    : validator.Validate(listing as ResidentialListing);
            }

            if (listing is RentalListing)
            {
                var validator = new RentalListingValidator();
                return isTheMinimumDataToStoreAListing
                    ? validator.Validate(listing as RentalListing, ruleSet: RentalListingValidator.MinimumRuleSet)
                    : validator.Validate(listing as RentalListing);
            }

            if (listing is RuralListing)
            {
                var validator = new RuralListingValidator();
                return isTheMinimumDataToStoreAListing
                    ? validator.Validate(listing as RuralListing, ruleSet: RuralListingValidator.MinimumRuleSet)
                    : validator.Validate(listing as RuralListing);;
            }

            if (listing is LandListing)
            {
                var validator = new LandListingValidator();
                return isTheMinimumDataToStoreAListing
                    ? validator.Validate(listing as LandListing, ruleSet: LandListingValidator.MinimumRuleSet)
                    : validator.Validate(listing as LandListing);
            }

            var errorMessage =
                string.Format(
                    "Tried to validate an unhandled Listing type: {0}. Only Residental, Rental, Rural and Land listing types are supported.",
                    listing.GetType());
            throw new Exception(errorMessage);
        }
            public void GivenAnIncompleteRentalListing_Validate_ShouldHaveAnyValidationErrors()
            {
                // Arrange.
                var validator = new RentalListingValidator();
                
                // Act.
                var result = validator.Validate(new RentalListing(),
                    ruleSet: RentalListingValidator.MinimumRuleSet);

                // Assert.
                result.Errors.Count.ShouldBe(10);
                result.Errors.ShouldContain(x => x.PropertyName == "AgencyId");
                result.Errors.ShouldContain(x => x.PropertyName == "StatusType");
                result.Errors.ShouldContain(x => x.PropertyName == "CreatedOn");
                result.Errors.ShouldContain(x => x.PropertyName == "Id");
                result.Errors.ShouldContain(x => x.PropertyName == "UpdatedOn");
                result.Errors.ShouldContain(x => x.PropertyName == "Title");
                result.Errors.ShouldContain(x => x.PropertyName == "Description");
                result.Errors.ShouldContain(x => x.PropertyName == "Address");
                result.Errors.ShouldContain(x => x.PropertyName == "PropertyType");
                result.Errors.ShouldContain(x => x.PropertyName == "Pricing");
            }
 public SimpleValidationFacts()
 {
     _validator = new RentalListingValidator();
 }
Exemple #11
0
 public SimpleValidationFacts()
 {
     _validator = new RentalListingValidator();
 }