public void Reset_DoesNothingIfNoChanges() { var mockItem = new Mock <ChangeTrackingObject>(MockBehavior.Strict); var expectedTarget = ChangeTarget.Collection; var subject = new ChangeContainerItem <ChangeTrackingObject>(mockItem.Object, ChangeTarget.Collection); subject.Reset(); Assert.Same(mockItem.Object, subject.Item); Assert.Equal(expectedTarget, subject.Target); Assert.Equal(ChangeAction.None, subject.Action); }
public void Reset_RevertsItemChanges() { var expectedItem = ChangeTrackingObject.CreateTrackable <TestItem>(); var subject = new ChangeContainerItem <TestItem>(expectedItem, ChangeTarget.Collection); subject.Item.StringValue = "My new value"; Assert.True(subject.HasChanges); Assert.Equal(ChangeAction.Update, subject.Action); subject.Reset(); Assert.Same(expectedItem, subject.Item); Assert.False(subject.HasChanges); Assert.Equal(ChangeAction.None, subject.Action); }
public void Reset_RevertsDirectChanges() { var expectedItem = new TestItem { StringValue = "Orginal" }; var subject = new ChangeContainerItem <TestItem>(expectedItem, ChangeTarget.Collection); subject.Item = new TestItem(); subject.Reset(); Assert.False(subject.HasChanges); Assert.Same(expectedItem, subject.Item); Assert.Equal(ChangeAction.None, subject.Action); }