public void ClonedCanBeginEdit() { person.BeginEdit(); person.FirstName = "Kevin"; var clone = person.Clone(); Assert.AreNotSame(person, clone); Assert.AreEqual(person.FirstName, clone.FirstName); clone.BeginEdit(); Assert.AreEqual(clone.IsChanged, false); clone.FirstName = "Bob"; Assert.AreEqual(clone.IsChanged, true); }
public void TestMEditableObject() { var clone = person.Clone(); person.BeginEdit(); Assert.IsTrue(clone.EqualsByValue(person)); person.FirstName = "New name1"; person.LastName = "New name2"; person.DateOfBirth = DateTime.Now; person.CancelEdit(); Assert.IsTrue(clone.EqualsByValue(person)); // idempotent person.EndEdit(); person.CancelEdit(); person.BeginEdit(); person.BeginEdit(); Assert.IsTrue(clone.EqualsByValue(person)); person.FirstName = "Alice"; person.EndEdit(); person.EndEdit(); Assert.AreEqual("Alice", person.FirstName); }