public void ShouldNotRaisePropertyChangedEventIfPorpertyIsSetSomeValue() { var fired = false; var wrapper = new FriendWrapper(_friend); wrapper.PropertyChanged += (s, e) => { if (e.PropertyName == "FirstName") { fired = true; } }; wrapper.FirstName = "Thomas"; Assert.IsFalse(fired); }
public void ShouldSetIsChanged() { var wrapper = new FriendWrapper(_friend); Assert.IsFalse(wrapper.FirstNameIsChanged); Assert.IsFalse(wrapper.IsChanged); wrapper.FirstName = "Julia"; Assert.IsTrue(wrapper.FirstNameIsChanged); Assert.IsTrue(wrapper.IsChanged); wrapper.FirstName = "Thomas"; Assert.IsFalse(wrapper.FirstNameIsChanged); Assert.IsFalse(wrapper.IsChanged); }
public void ShouldRaisePropertyChangedEventOnPorpertyChange() { var fired = false; var wrapper = new FriendWrapper(_friend); wrapper.PropertyChanged += (s, e) => { if (e.PropertyName == "FirstName") { fired = true; } }; wrapper.FirstName = "Julia"; Assert.IsTrue(fired); }
public void ShouldRejectChanges() { FriendWrapper wrapper = new FriendWrapper(_friend); FriendEmailWrapper emailToModify = wrapper.Emails.First(); emailToModify.Email = "*****@*****.**"; Assert.IsTrue(wrapper.IsChanged); wrapper.RejectChanges(); Assert.IsFalse(wrapper.IsChanged); Assert.AreEqual("*****@*****.**", emailToModify.Email); Assert.AreEqual("*****@*****.**", emailToModify.EmailOriginalValue); }
public void ShouldRaisePropertyChangedEventForIsChangedPropertyOfFriendWrapper() { var fired = false; var wrapper = new FriendWrapper(_friend); wrapper.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(wrapper.IsChanged)) { fired = true; } }; wrapper.Address.City = "Salt Lake City"; Assert.IsTrue(fired); }
public void ShouldRejectChanges() { var wrapper = new FriendWrapper(_friend); wrapper.Address.City = "Vanadzor"; Assert.AreEqual("Yerevan", wrapper.Address.CityOriginalValue); //Assert.IsTrue(wrapper.Address.CityIsChanged); //Assert.IsTrue(wrapper.Address.IsChanged); wrapper.RejectChanges(); Assert.AreEqual("Yerevan", wrapper.Address.City); Assert.AreEqual("Yerevan", wrapper.Address.CityOriginalValue); //After AcceptChanges() all save //Assert.IsFalse(wrapper.Address.CityIsChanged); //Assert.IsFalse(wrapper.Address.IsChanged); }
public void ShouldAcceptChanges() { var wrapper = new FriendWrapper(_friend); var emailToModify = wrapper.Emails.First(); emailToModify.Email = "*****@*****.**"; Assert.True(wrapper.IsChanged); wrapper.AcceptChanges(); Assert.False(wrapper.IsChanged); Assert.Equal("*****@*****.**", emailToModify.Email); Assert.Equal("*****@*****.**", emailToModify.EmailOriginalValue); }
public async Task LoadAsync(int id) { var friend = await _friendDataService.GetByIdAsync(id); Friend = new FriendWrapper(friend); Friend.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(Friend.HasErrors)) { ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); } }; ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); }
public void ShouldRaisePropertyChangedEventForIsChangedPropertyOfFriendWrapper() { var fired = false; var wrapper = new FriendWrapper(_friend); wrapper.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(wrapper.IsChanged)) { fired = true; } }; wrapper.Emails.First().Email = "*****@*****.**"; Assert.IsTrue(fired); }
public void ShouldAcceptChanges() { var wrapper = new FriendWrapper(_friend); wrapper.FirstName = "Yana"; Assert.AreEqual("Yana", wrapper.FirstName); Assert.AreEqual("Levon", wrapper.FirstNameOriginalValue); // same in initialize() Assert.IsTrue(wrapper.FirstNameIsChanged); Assert.IsTrue(wrapper.IsChanged); wrapper.AcceptChanges(); Assert.AreEqual("Yana", wrapper.FirstName); Assert.AreEqual("Yana", wrapper.FirstNameOriginalValue); //After AcceptChanges() all save Assert.IsFalse(wrapper.FirstNameIsChanged); Assert.IsFalse(wrapper.IsChanged); }
public void ShouldAcceptChanges() { FriendWrapper wrapper = new FriendWrapper(_friend); wrapper.FirstName = "Julia"; Assert.AreEqual("Julia", wrapper.FirstName); Assert.AreEqual("Thomas", wrapper.FirstNameOriginalValue); Assert.IsTrue(wrapper.FirstNameIsChanged); Assert.IsTrue(wrapper.IsChanged); wrapper.AcceptChanges(); Assert.AreEqual("Julia", wrapper.FirstName); Assert.AreEqual("Julia", wrapper.FirstNameOriginalValue); Assert.IsFalse(wrapper.FirstNameIsChanged); Assert.IsFalse(wrapper.IsChanged); }
public void ShouldReturnValidationErrorIfFirstNameIsEmpty() { var wrapper = new FriendWrapper(_friend); Assert.False(wrapper.HasErrors); wrapper.FirstName = ""; Assert.True(wrapper.HasErrors); var errors = wrapper.GetErrors(nameof(wrapper.FirstName)).Cast <string>().ToList(); Assert.Equal(1, errors.Count); Assert.Equal("Firstname is required", errors.First()); wrapper.FirstName = "Julia"; Assert.False(wrapper.HasErrors); }
public void ShouldRaisePropertyChangedEventForIsValidOfRootWhenAddingInvalidItem() { var fired = false; var wrapper = new FriendWrapper(_friend); wrapper.PropertyChanged += (s, e) => { if (e.PropertyName == "IsValid") fired = true; }; var emailToAdd = new FriendEmailWrapper(new FriendEmail()); wrapper.Emails.Add(emailToAdd); Assert.True(fired); fired = false; emailToAdd.Email = "*****@*****.**"; Assert.True(fired); }
public void ShouldRaisePropertyChangedEventForIsChanged() { var fired = false; var wrapper = new FriendWrapper(_friend); wrapper.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(wrapper.IsChanged)) { fired = true; } }; wrapper.FirstName = "Julia"; Assert.True(fired); }
public void ShouldRefreshErrorsAndIsValidWhenRejectingChanges() { var wrapper = new FriendWrapper(_friend); Assert.True(wrapper.IsValid); Assert.False(wrapper.HasErrors); wrapper.FirstName = ""; Assert.False(wrapper.IsValid); Assert.True(wrapper.HasErrors); wrapper.RejectChanges(); Assert.True(wrapper.IsValid); Assert.False(wrapper.HasErrors); }
private void InitFriend(Friend model) { Friend = new FriendWrapper(model); Friend.PropertyChanged += (s, e) => { if (!HasChanges) { HasChanges = _friendRepository.HasChanges(); } if (e.PropertyName == nameof(Friend.HasErrors)) { (SaveCommand as DelegateCommand).RaiseCanExecuteChanged(); } }; (SaveCommand as DelegateCommand).RaiseCanExecuteChanged(); }
public async Task LoadAsync(int friendId) { var friend = await _repository.GetByIdAsync(friendId); Friend = new FriendWrapper(friend); Friend.PropertyChanged += (s, e) => { if (!HasChanges) { HasChanges = _repository.HasChanges(); } if (e.PropertyName == nameof(Friend.HasErrors)) { ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); } }; ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); }
public void ShouldRaisePropertyChangedEventForIsValidOfRootWhenRemovingInvalidItem() { var fired = false; var wrapper = new FriendWrapper(_friend); wrapper.PropertyChanged += (s, e) => { if (e.PropertyName == "IsValid") { fired = true; } }; wrapper.Emails.First().Email = ""; Assert.IsTrue(fired); fired = false; wrapper.Emails.Remove(wrapper.Emails.First()); Assert.IsTrue(fired); }
public void ShouldRaisePropertyChangedEventForIsValidOfRoot() { var fired = false; var wrapper = new FriendWrapper(_friend); wrapper.PropertyChanged += (s, e) => { if (e.PropertyName == "IsValid") { fired = true; } }; wrapper.Emails.First().Email = ""; Assert.IsTrue(fired); fired = false; wrapper.Emails.First().Email = "*****@*****.**"; Assert.IsTrue(fired); }
public void ShouldRaisePropertyChangedEventForIsValidOfRoot() { var fired = false; var wrapper = new FriendWrapper(_friend); wrapper.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(wrapper.IsValid)) { fired = true; } }; wrapper.Address.City = ""; Assert.IsTrue(fired); fired = false; wrapper.Address.City = "Salt Lake City"; Assert.IsTrue(fired); }
public void ShouldRejectChanges() { var wrapper = new FriendWrapper(_friend) { FirstName = "Julia" }; Assert.Equal("Julia", wrapper.FirstName); Assert.Equal("Thomas", wrapper.FirstNameOriginalValue); Assert.True(wrapper.FirstNameIsChanged); Assert.True(wrapper.IsChanged); wrapper.RejectChanges(); Assert.Equal("Thomas", wrapper.FirstName); Assert.Equal("Thomas", wrapper.FirstNameOriginalValue); Assert.False(wrapper.FirstNameIsChanged); Assert.False(wrapper.IsChanged); }
public void ShouldRaiseErrorsChangedEventWhenFirstNameIsSetToEmptyAndBack() { var fired = false; var wrapper = new FriendWrapper(_friend); wrapper.ErrorsChanged += (s, e) => { if (e.PropertyName == nameof(wrapper.FirstName)) { fired = true; } }; wrapper.FirstName = ""; Assert.True(fired); fired = false; wrapper.FirstName = "Julia"; Assert.True(fired); }
private void InitializeFriend(Friend friend) { Friend = new FriendWrapper(friend); Friend.PropertyChanged += (s, e) => { if (!HasChanges) { HasChanges = _friendRepository.HasChanges(); } if (e.PropertyName == nameof(Friend.HasErrors)) { ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); } }; ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); if (Friend.Id == 0) { // Little trick to trigger the validation Friend.FirstName = ""; } }
private void InitializeFriend(Friend friend) { Friend = new FriendWrapper(friend); Friend.PropertyChanged += (sender, args) => { if (!HasChanges) { HasChanges = _repository.HasChanges(); } if (args.PropertyName == nameof(Friend.HasErrors)) { SaveCommand.RaiseCanExecuteChanged(); } }; SaveCommand.RaiseCanExecuteChanged(); if (Friend.Id == 0) { Friend.FirstName = ""; } }
public void Load(int?friendId = null) { FriendGroupLookup = _friendGroupLookupProvider.GetLookup(); Friend friend = friendId.HasValue ? _friendDataProvider.GetFriendById(friendId.Value) : new Friend { Address = new Address(), Emails = new List <FriendEmail>() }; Friend = new FriendWrapper(friend); Friend.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(Friend.IsChanged) || e.PropertyName == nameof(Friend.IsValid)) { InvalidateCommands(); } }; InvalidateCommands(); }
public async Task LoadAsync(int friendId) { var friend = await _friendRepository.GetByIdAsync(friendId); Friend = new FriendWrapper(friend); // Raising the event to ensure that it's validated. Friend.PropertyChanged += (s, e) => { if (!HasChanges) { HasChanges = _friendRepository.HasChanges(); } if (e.PropertyName == nameof(Friend.HasErrors)) { ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); } }; ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); }
public void ShouldBeValidAgainWhenIsDeveloperIsSetBackToFalse() { var wrapper = new FriendWrapper(_friend); wrapper.Emails.Clear(); Assert.IsFalse(wrapper.IsDeveloper); Assert.IsTrue(wrapper.IsValid); wrapper.IsDeveloper = true; Assert.IsFalse(wrapper.IsValid); wrapper.IsDeveloper = false; Assert.IsTrue(wrapper.IsValid); var emailsErrors = wrapper.GetErrors(nameof(wrapper.Emails)).Cast <string>().ToList(); Assert.AreEqual(0, emailsErrors.Count); var isDeveloperErrors = wrapper.GetErrors(nameof(wrapper.IsDeveloper)).Cast <string>().ToList(); Assert.AreEqual(0, isDeveloperErrors.Count); }
public void ShouldHaveErrorsAndNotBeValidWhenIsDeveloperIsTrueAndNoEmailExists() { var expectedError = "A developer must have an email-address"; var wrapper = new FriendWrapper(_friend); wrapper.Emails.Clear(); Assert.IsFalse(wrapper.IsDeveloper); Assert.IsTrue(wrapper.IsValid); wrapper.IsDeveloper = true; Assert.IsFalse(wrapper.IsValid); var emailsErrors = wrapper.GetErrors(nameof(wrapper.Emails)).Cast <string>().ToList(); Assert.AreEqual(1, emailsErrors.Count); Assert.AreEqual(expectedError, emailsErrors.Single()); var isDeveloperErrors = wrapper.GetErrors(nameof(wrapper.IsDeveloper)).Cast <string>().ToList(); Assert.AreEqual(1, isDeveloperErrors.Count); Assert.AreEqual(expectedError, isDeveloperErrors.Single()); }
private void InitializeSelectedFriend(Friend friend) { SelectedFriend = new FriendWrapper(friend); // Deze functie wordt ook uitgevoerd als er properties changen SelectedFriend.PropertyChanged += (s, e) => { if (!HasChanges) { HasChanges = _friendRepository.HasChanges(); } //Als er errors zijn if (e.PropertyName == nameof(SelectedFriend.HasErrors)) { ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); // wordt hier voor 1x op true gezet } }; ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); // Als er errors zijn wordt true => false; Als er geen errors zijn wordt dit true if (SelectedFriend.Id == 0) { //Trick to trigger validation, mag niet null zijn SelectedFriend.FirstName = ""; } }
public void ShouldBeValidAgainWhenEmailIsAdded() { var wrapper = new FriendWrapper(_friend); wrapper.Emails.Clear(); Assert.IsFalse(wrapper.IsDeveloper); Assert.IsTrue(wrapper.IsValid); wrapper.IsDeveloper = true; Assert.IsFalse(wrapper.IsValid); wrapper.Emails.Add(new FriendEmailWrapper(new FriendEmail { Email = "*****@*****.**" })); Assert.IsTrue(wrapper.IsValid); var emailsErrors = wrapper.GetErrors(nameof(wrapper.Emails)).Cast <string>().ToList(); Assert.AreEqual(0, emailsErrors.Count); var isDeveloperErrors = wrapper.GetErrors(nameof(wrapper.IsDeveloper)).Cast <string>().ToList(); Assert.AreEqual(0, isDeveloperErrors.Count); }