public void ShouldRequirePhoneNumber(int?length, bool expectValid)
        {
            // Arrange.
            var phoneNumber = length.HasValue ? new string('0', length.Value) : null;
            var viewModel   = new SettingsViewModelBuilder().PhoneNumber(phoneNumber).Build();

            // Act.
            var validator = new SettingsViewModelClientValidator();

            // Assert.
            if (expectValid)
            {
                validator.ShouldNotHaveValidationErrorFor(vm => vm.PhoneNumber, viewModel);
            }
            else
            {
                validator.ShouldHaveValidationErrorFor(vm => vm.PhoneNumber, viewModel);
            }
        }
        public void ShouldRequireLastName(int?length, bool expectValid)
        {
            // Arrange.
            var lastName  = length.HasValue ? new string('X', length.Value) : null;
            var viewModel = new SettingsViewModelBuilder().Lastname(lastName).Build();

            // Act.
            var validator = new SettingsViewModelClientValidator();

            // Assert.
            if (expectValid)
            {
                validator.ShouldNotHaveValidationErrorFor(vm => vm.Lastname, viewModel);
            }
            else
            {
                validator.ShouldHaveValidationErrorFor(vm => vm.Lastname, viewModel);
            }
        }