public void CanClearAllModifications() { // Arrange var editContext = new EditContext(new object()); var field1 = editContext.Field("field1"); var field2 = editContext.Field("field2"); editContext.NotifyFieldChanged(field1); editContext.NotifyFieldChanged(field2); // Act editContext.MarkAsUnmodified(); // Assert Assert.False(editContext.IsModified()); Assert.False(editContext.IsModified(field1)); Assert.False(editContext.IsModified(field2)); }
public void TracksFieldsAsModifiedWhenValueChanged() { // Arrange var editContext = new EditContext(new object()); var fieldOnThisModel1 = editContext.Field("field1"); var fieldOnThisModel2 = editContext.Field("field2"); var fieldOnOtherModel = new FieldIdentifier(new object(), "field on other model"); // Act editContext.NotifyFieldChanged(fieldOnThisModel1); editContext.NotifyFieldChanged(fieldOnOtherModel); // Assert Assert.True(editContext.IsModified()); Assert.True(editContext.IsModified(fieldOnThisModel1)); Assert.False(editContext.IsModified(fieldOnThisModel2)); Assert.True(editContext.IsModified(fieldOnOtherModel)); }
public void CanClearIndividualModifications() { // Arrange var editContext = new EditContext(new object()); var fieldThatWasModified = editContext.Field("field1"); var fieldThatRemainsModified = editContext.Field("field2"); var fieldThatWasNeverModified = editContext.Field("field that was never modified"); editContext.NotifyFieldChanged(fieldThatWasModified); editContext.NotifyFieldChanged(fieldThatRemainsModified); // Act editContext.MarkAsUnmodified(fieldThatWasModified); editContext.MarkAsUnmodified(fieldThatWasNeverModified); // Assert Assert.True(editContext.IsModified()); Assert.False(editContext.IsModified(fieldThatWasModified)); Assert.True(editContext.IsModified(fieldThatRemainsModified)); Assert.False(editContext.IsModified(fieldThatWasNeverModified)); }
public void LookingUpModel_ThatOverridesGetHashCodeAndEquals_Works() { // Test for https://github.com/aspnet/AspNetCore/issues/18069 // Arrange var model = new EquatableModel(); var editContext = new EditContext(model); editContext.NotifyFieldChanged(editContext.Field(nameof(EquatableModel.Property))); model.Property = "new value"; Assert.True(editContext.IsModified(editContext.Field(nameof(EquatableModel.Property)))); }
public void IsInitiallyUnmodified() { var editContext = new EditContext(new object()); Assert.False(editContext.IsModified()); }
/// <summary> /// Determines whether the specified fields in this <see cref="EditContext"/> has been modified. /// </summary> /// <param name="editContext">The <see cref="EditContext"/>.</param> /// <param name="accessor">Identifies the field whose current validation messages should be returned.</param> /// <returns>True if the field has been modified; otherwise false.</returns> public static bool IsModified(this EditContext editContext, Expression <Func <object> > accessor) => editContext.IsModified(FieldIdentifier.Create(accessor));