public void ViewModel_must_be_invalid_when_created() { var mainViewModelValidator = new MainViewModelValidator (); var repository = new Mock<IRepository> (); var vm = new MainViewModel (mainViewModelValidator, repository.Object); vm.IsValid.ShouldBeFalse (); }
private bool IsValid() { var result = new MainViewModelValidator().Validate(this); this.ValidationErrors = new ObservableCollection <ValidationError>(result.ValidationErrors); this.RaisePropertyChanged(nameof(ValidationErrors)); return(result.IsValid); }
public MainPage() { var viewModelValidator = new MainViewModelValidator (); //This really should be an Dependency Injection container var repository = new Repository (new InstructorModelValidator(), new ClassModelValidator()); _viewModel = new MainViewModel (viewModelValidator, repository); this.BindingContext = _viewModel; InitializeComponent (); agreementSwitch.Toggled += (sender, args) => { ageValidator.Validate(null, null); }; }
public void Email_must_be_a_valid_address_format() { var fixture = new Fixture(); var mainViewModelValidator = new MainViewModelValidator (); var repository = new Mock<IRepository> (); var vm = new MainViewModel (mainViewModelValidator, repository.Object); fixture.Customizations.Add(new RandomNumericSequenceGenerator(1, 17)); vm.Age = fixture.Create<int> (); vm.IsAgreementAccepted = false; vm.EmailAddress = fixture.Create<string>(); vm.IsValid.ShouldBeFalse (); }
public void Agreement_can_be_false_when_age_is_less_than_18() { var fixture = new Fixture(); var mainViewModelValidator = new MainViewModelValidator (); var repository = new Mock<IRepository> (); var vm = new MainViewModel (mainViewModelValidator, repository.Object); fixture.Customizations.Add(new RandomNumericSequenceGenerator(1, 17)); vm.Age = fixture.Create<int> (); vm.IsAgreementAccepted = false; vm.EmailAddress = fixture.Create<string>() + "@foobar.com"; vm.IsValid.ShouldBeTrue (); }
public void ViewModel_must_not_save_models_when_invalid() { var mainViewModelValidator = new MainViewModelValidator (); var repository = new Mock<IRepository> (); var vm = new MainViewModel (mainViewModelValidator, repository.Object); vm.Save.Execute (null); repository.Verify (x => x.Save (), Times.Never); }
public void ViewModel_must_save_models_when_valid() { var fixture = new Fixture(); var mainViewModelValidator = new MainViewModelValidator (); var repository = new Mock<IRepository> (); var vm = new MainViewModel (mainViewModelValidator, repository.Object); fixture.Customizations.Add(new RandomNumericSequenceGenerator(1, 17)); vm.Age = fixture.Create<int> (); vm.IsAgreementAccepted = true; vm.EmailAddress = fixture.Create<string>() + "@foobar.com"; vm.Save.Execute (null); repository.Verify (x => x.Save (), Times.Once); }