public void Validate_When_properties_on_each_level_are_invalid_Then_returns_error_with_correct_argument_name_in_result()
        {
            var customerDto = new CustomerDtoBuilder()
                              .WithFirstName(null)
                              .Build();

            customerDto.Address.Street = null;

            customerDto.Children = new List <ChildDto>
            {
                new ChildDto {
                    FirstName = null, Age = 5
                },
                new ChildDto {
                    FirstName = null, Age = 6
                }
            };

            var result = _dtoValidatorVisitor.Validate(customerDto);

            Assert.IsFalse(result.IsValid);

            Assert.IsTrue(result.ArgumentErrors[0].ArgumentName == "FirstName");
            Assert.IsTrue(result.ArgumentErrors[1].ArgumentName == "Address.Street");
            Assert.IsTrue(result.ArgumentErrors[2].ArgumentName == "Children[0].FirstName");
            Assert.IsTrue(result.ArgumentErrors[3].ArgumentName == "Children[1].FirstName");
        }
Ejemplo n.º 2
0
        public void ToDomain()
        {
            Guid   customerId = Guid.NewGuid();
            string firstname  = "Tim";
            string lastname   = "Timmelston";

            string streetName  = "streetName";
            string houseNumber = "HouseNumber";
            string postalCode  = "postalCode";
            string country     = "country";

            AddressDto addressDto = new AddressDto()
                                    .WithStreetName(streetName)
                                    .WithHouseNumber(houseNumber)
                                    .WithPostalCode(postalCode)
                                    .WithCountry(country);

            string localpart = "localPart";
            string domain    = "domain";
            string complete  = "complete";

            EmailDto emailDto = new EmailDto()
                                .WithLocalPart(localpart)
                                .WithDomain(domain)
                                .WithComplete(complete);

            string countryCallingCode = "32";
            string number             = "number";

            PhoneNumberDto phoneNumberDto = new PhoneNumberDto()
                                            .WithCountryCallingCode(countryCallingCode)
                                            .WithNumber(number);

            // when
            Customer customer = _customerMapper.ToDomain(CustomerDtoBuilder.CustomerDto()
                                                         .WithId(customerId)
                                                         .WithFirstname(firstname)
                                                         .WithLastname(lastname)
                                                         .WithAddress(addressDto)
                                                         .WithEmail(emailDto)
                                                         .WithPhoneNumber(phoneNumberDto)
                                                         .Build());

            // then
            Assert.Equal(customerId, customer.Id);
            Assert.Equal(firstname, customer.FirstName);
            Assert.Equal(lastname, customer.LastName);

            Assert.Equal(streetName, customer.Address.StreetName);
            Assert.Equal(houseNumber, customer.Address.HouseNumber);
            Assert.Equal(postalCode, customer.Address.PostalCode);
            Assert.Equal(country, customer.Address.Country);

            Assert.Equal(localpart, customer.Email.LocalPart);
            Assert.Equal(domain, customer.Email.Domain);
            Assert.Equal(complete, customer.Email.Complete);

            Assert.Equal(number, customer.PhoneNumber.Number);
            Assert.Equal(countryCallingCode, customer.PhoneNumber.CountryCallingCode);
        }
        public void Validate_When_property_in_top_level_dto_is_invalid_Then_returns_errors_with_correct_argument_names_in_result()
        {
            var customerDto = new CustomerDtoBuilder()
                              .WithFirstName(null)
                              .Build();

            var result = _dtoValidatorVisitor.Validate(customerDto);

            Assert.IsFalse(result.IsValid);
            Assert.IsTrue(result.ArgumentErrors[0].ArgumentName == "FirstName");
        }
Ejemplo n.º 4
0
        public void Validate_When_ValidateInternal_creates_error_Then_error_returned_from_Validate()
        {
            var dto = new CustomerDtoBuilder().WithFirstName("aaaaa").Build();

            dto.Address.Street = null;

            CustomerDtoValidator dtoValidator = new CustomerDtoValidator();
            var result = dtoValidator.Validate(dto);

            Assert.IsTrue(result.ArgumentErrors[0].ArgumentError is ArgumentErrorStub);
        }
Ejemplo n.º 5
0
        public void Validate_When_fluent_validation_fails_on_required_field_Then_the_error_is_passed_to_ValidateInternal()
        {
            var dto = new CustomerDtoBuilder().WithFirstName(null).Build();

            dto.Address.Street = null;

            CustomerDtoValidator dtoValidator = new CustomerDtoValidator();
            var result = dtoValidator.Validate(dto);

            Assert.IsTrue(dtoValidator.FirstNameRequiredErrorIsPassedToValidateInternal);
        }
Ejemplo n.º 6
0
        public void Validate_When_fluent_validation_fails_on_required_field_on_dependent_object_Then_no_error_is_returned()
        {
            var dto = new CustomerDtoBuilder().Build();

            dto.Address.Street = null;

            CustomerDtoValidator dtoValidator = new CustomerDtoValidator();
            var result = dtoValidator.Validate(dto);

            Assert.IsTrue(result.IsValid);
        }
Ejemplo n.º 7
0
        public void Validate_When_fluent_validation_fails_on_required_field_Then_error_is_returned()
        {
            var dto = new CustomerDtoBuilder().WithFirstName(null).Build();

            CustomerDtoValidator dtoValidator = new CustomerDtoValidator();
            var result = dtoValidator.Validate(dto);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(1, result.ArgumentErrors.Count);
            Assert.IsTrue(result.ArgumentErrors[0].ArgumentError is RequiredArgumentError);
        }
        public void Validate_When_property_on_second_level_is_invalid_Then_returns_error_with_correct_argument_name_in_result()
        {
            var customerDto = new CustomerDtoBuilder()
                              .Build();

            customerDto.Address.Street = null;
            var result = _dtoValidatorVisitor.Validate(customerDto);

            Assert.IsFalse(result.IsValid);

            Assert.IsTrue(result.ArgumentErrors[0].ArgumentName == "Address.Street");
        }
Ejemplo n.º 9
0
        public void Set_When_set_simple_entity_and_get_Then_works()
        {
            var customerDto = new CustomerDtoBuilder().Build();

            _cache.Set("Key1", customerDto);

            var customer2Dto = _cache.Get <CustomerDto>("Key1");

            Assert.AreEqual(customerDto.FirstName, customer2Dto.FirstName);
            Assert.AreEqual(customerDto.Children.Count, customer2Dto.Children.Count);
            Assert.AreEqual(customerDto.Children[0].Age, customer2Dto.Children[0].Age);
        }
 private CustomerDto CreateCustomerDto()
 {
     return(CustomerDtoBuilder.CustomerDto()
            .WithFirstname("Bruce")
            .WithLastname("Wayne")
            .WithEmail(new EmailDto()
                       .WithLocalPart("brucy")
                       .WithDomain("bat.net")
                       .WithComplete("*****@*****.**"))
            .WithPhoneNumber(new PhoneNumberDto()
                             .WithNumber("485212121")
                             .WithCountryCallingCode("+32"))
            .WithAddress(new AddressDto()
                         .WithStreetName("Secretstreet")
                         .WithHouseNumber("841")
                         .WithPostalCode("1238")
                         .WithCountry("Gotham"))
            .Build());
 }
        public void Validate_When_enumerable_property__is_invalid_Then_returns_error_with_correct_argument_name_in_result()
        {
            var customerDto = new CustomerDtoBuilder()
                              .Build();

            customerDto.Children = new List <ChildDto>
            {
                new ChildDto {
                    FirstName = null, Age = 5
                },
                new ChildDto {
                    FirstName = null, Age = 6
                }
            };

            var result = _dtoValidatorVisitor.Validate(customerDto);

            Assert.IsFalse(result.IsValid);

            Assert.IsTrue(result.ArgumentErrors[0].ArgumentName == "Children[0].FirstName");
            Assert.IsTrue(result.ArgumentErrors[1].ArgumentName == "Children[1].FirstName");
        }