Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }
Example #4
0
        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))));
        }
Example #5
0
        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));