public void ChangeTrackingModelBase_BasicFunctionalityTest() { using (var verify = new Verify()) { var person = new ChangeTrackingPerson(); var eventAssert = new PropertyChangedEventTest(verify, person); Assert.IsNull(person.FirstName); Assert.AreEqual("", person.LastName); eventAssert.ExpectNothing(); person.FirstName = "John"; eventAssert.ExpectEvent("FirstName"); eventAssert.ExpectEvent("FullName"); eventAssert.ExpectEvent("IsChangedLocal"); eventAssert.ExpectEvent("IsChanged"); person.LastName = "Doe"; eventAssert.ExpectEvent("LastName"); eventAssert.ExpectEvent("FullName"); person.InvokeGoodPropertyMessage(); eventAssert.ExpectEvent("FullName"); person.InvokeAllPropertyMessage(); eventAssert.ExpectEvent(""); } }
public void ChildPropertyChangesWithRevert() { using (var verify = new Verify()) { var customer = CreateCustomer(verify); var eventAssertCustomer = new PropertyChangedEventTest(verify, customer); //changes to a child in a collection var eventAssertOrder0 = new PropertyChangedEventTest(verify, customer.Orders[0]); var newOrderDate = new DateTime(2010, 5, 5); customer.Orders[0].OrderDate = newOrderDate; eventAssertOrder0.ExpectEvent("OrderDate"); eventAssertOrder0.ExpectEvent("IsChangedLocal"); eventAssertOrder0.ExpectEvent("IsChanged"); eventAssertOrder0.ExpectNothing(); //eventAssertCustomer.ExpectEvent("IsChanged"); //eventAssertCustomer.ExpectNothing(); //rollback customer.RejectChanges(); verify.AreEqual(OrderDate1, customer.Orders[0].OrderDate, "Order date didn't roll back"); verify.IsFalse(customer.IsChanged, ""); eventAssertCustomer.ExpectEvent("IsChanged"); } }
public void EditableObjectModelBase_IsChanged_GraphTest() { using (var verify = new Verify()) { var person = new EditablePerson(); Assert.IsNotNull(person.Boss); var eventAssert = new PropertyChangedEventTest(verify, person); var eventAssert2 = new PropertyChangedEventTest(verify, person.Boss); person.Boss.FirstName = "Tom"; eventAssert2.ExpectEvent("FirstName"); eventAssert2.ExpectEvent("FullName"); eventAssert2.ExpectEvent("IsChangedLocal"); eventAssert2.ExpectEvent("IsChanged"); eventAssert.ExpectEvent("IsChanged"); person.Boss.FirstName = "Tim"; eventAssert2.ExpectEvent("FirstName"); eventAssert2.ExpectEvent("FullName"); eventAssert2.ExpectNothing(); eventAssert.ExpectNothing(); } }
public void LocalChangesWithRevert() { using (var verify = new Verify()) { var customer = CreateCustomer(verify); //more setup customer.FirstName = "Tom"; customer.LastName = "Doe"; verify.AreEqual(2, customer.ChangedProperties().Count, "There should be two changed properties"); verify.IsTrue(customer.ChangedProperties().Contains("FirstName"), "FirstName should be marked as changed"); verify.IsTrue(customer.ChangedProperties().Contains("LastName"), "FirstName should be marked as changed"); customer.AcceptChanges(); if (customer.IsChanged) { verify.Inconclusive("setup failed"); } var eventAssertCustomer = new PropertyChangedEventTest(verify, customer); customer.PropertyChanged += (s, e) => Debug.WriteLine(e.PropertyName); //local changes customer.FirstName = "Bob"; eventAssertCustomer.ExpectEvent("FirstName"); eventAssertCustomer.ExpectEvent("FullName"); eventAssertCustomer.ExpectEvent("IsChangedLocal"); eventAssertCustomer.ExpectEvent("IsChanged"); eventAssertCustomer.ExpectNothing(); verify.IsTrue(customer.IsChanged, ""); verify.IsTrue(customer.IsChangedLocal, ""); verify.AreEqual(1, customer.ChangedProperties().Count, "There should be one changed property"); verify.AreEqual("FirstName", customer.ChangedProperties()[0], "The property should be FirstName"); //this time IsChanged shouldn't be raised again customer.LastName = "Jones"; eventAssertCustomer.ExpectEvent("LastName"); eventAssertCustomer.ExpectEvent("FullName"); eventAssertCustomer.ExpectNothing(); verify.IsTrue(customer.IsChanged, ""); verify.IsTrue(customer.IsChangedLocal, ""); //reject changes customer.RejectChanges(); verify.IsFalse(customer.IsChanged, ""); verify.IsFalse(customer.IsChangedLocal, ""); eventAssertCustomer.ExpectUnordered("FirstName", "LastName", "FullName", "FullName"); eventAssertCustomer.ExpectEvent("IsChangedLocal"); eventAssertCustomer.ExpectEvent("IsChanged"); eventAssertCustomer.ExpectNothing(); verify.AreEqual("Tom", customer.FirstName, ""); verify.AreEqual("Doe", customer.LastName, ""); verify.AreEqual(0, customer.ChangedProperties().Count, "There shouldn't be any changed properties"); } }
public void LocalChangesWithCommit() { using (var verify = new Verify()) { var customer = CreateCustomer(verify); var eventAssertCustomer = new PropertyChangedEventTest(verify, customer); //local changes customer.FirstName = "Tom"; eventAssertCustomer.ExpectEvent("FirstName"); eventAssertCustomer.ExpectEvent("FullName"); eventAssertCustomer.ExpectEvent("IsChangedLocal"); eventAssertCustomer.ExpectEvent("IsChanged"); eventAssertCustomer.ExpectNothing(); verify.IsTrue(customer.IsChanged, ""); verify.IsTrue(customer.IsChangedLocal, ""); //accept changes customer.AcceptChanges(); eventAssertCustomer.ExpectEvent("IsChangedLocal"); eventAssertCustomer.ExpectEvent("IsChanged"); eventAssertCustomer.ExpectNothing(); verify.IsFalse(customer.IsChanged, ""); verify.IsFalse(customer.IsChangedLocal, ""); //more local changes customer.FirstName = "Bob"; eventAssertCustomer.ExpectEvent("FirstName"); eventAssertCustomer.ExpectEvent("FullName"); eventAssertCustomer.ExpectEvent("IsChangedLocal"); eventAssertCustomer.ExpectEvent("IsChanged"); eventAssertCustomer.ExpectNothing(); verify.IsTrue(customer.IsChanged, ""); verify.IsTrue(customer.IsChangedLocal, ""); //this time IsChanged shouldn't be raised again customer.LastName = "Jones"; eventAssertCustomer.ExpectEvent("LastName"); eventAssertCustomer.ExpectEvent("FullName"); eventAssertCustomer.ExpectNothing(); verify.IsTrue(customer.IsChanged, ""); verify.IsTrue(customer.IsChangedLocal, ""); //accept changes customer.AcceptChanges(); verify.IsFalse(customer.IsChanged, ""); verify.IsFalse(customer.IsChangedLocal, ""); eventAssertCustomer.ExpectEvent("IsChangedLocal"); eventAssertCustomer.ExpectEvent("IsChanged"); eventAssertCustomer.ExpectNothing(); verify.AreEqual("Bob", customer.FirstName, ""); verify.AreEqual("Jones", customer.LastName, ""); } }
public void ExtendedReadOnlyObservableCollection_OnSourcePropertyChanged2() { using (var verify = new Verify()) { var list = new NotifierCollection(); var result = new ReadOnlyObservableCollectionExtended <Notifier>(list); var propertyAssert = new PropertyChangedEventTest(verify, result); list.RaisePropertyName(""); propertyAssert.ExpectEvent(""); } }
public void ExtendedReadOnlyObservableCollection_OnSourcePropertyChanged() { using (var verify = new Verify()) { var list = new FooCollection(); var result = new ReadOnlyFooCollection(list); var propertyAssert = new PropertyChangedEventTest(verify, result); list.Boom = 10; propertyAssert.ExpectEvent("Boom"); verify.AreEqual(10, result.Boom, "Boom"); } }
public void ChildPropertyChangesWithCommit() { using (var verify = new Verify()) { var customer = CreateCustomer(verify); //more setup customer.FirstName = "Tom"; customer.LastName = "Doe"; customer.AcceptChanges(); if (customer.IsChanged) verify.Inconclusive("setup failed"); var eventAssertCustomer = new PropertyChangedEventTest(verify, customer); customer.PropertyChanged += (s, e) => Debug.WriteLine(e.PropertyName); //local changes customer.FirstName = "Bob"; eventAssertCustomer.ExpectEvent("FirstName"); eventAssertCustomer.ExpectEvent("FullName"); eventAssertCustomer.ExpectEvent("IsChangedLocal"); eventAssertCustomer.ExpectEvent("IsChanged"); eventAssertCustomer.ExpectNothing(); verify.IsTrue(customer.IsChanged, ""); verify.IsTrue(customer.IsChangedLocal, ""); verify.AreEqual(1, customer.ChangedProperties().Count, "There should be one changed property"); verify.AreEqual("FirstName", customer.ChangedProperties()[0], "The property should be FirstName"); //this time IsChanged shouldn't be raised again customer.LastName = "Jones"; eventAssertCustomer.ExpectEvent("LastName"); eventAssertCustomer.ExpectEvent("FullName"); eventAssertCustomer.ExpectNothing(); verify.IsTrue(customer.IsChanged, ""); verify.IsTrue(customer.IsChangedLocal, ""); //accept changes customer.AcceptChanges(); verify.IsFalse(customer.IsChanged, ""); verify.IsFalse(customer.IsChangedLocal, ""); eventAssertCustomer.ExpectEvent("IsChangedLocal"); eventAssertCustomer.ExpectEvent("IsChanged"); eventAssertCustomer.ExpectNothing(); verify.AreEqual("Bob", customer.FirstName, ""); verify.AreEqual("Jones", customer.LastName, ""); verify.AreEqual(0, customer.ChangedProperties().Count, "There shouldn't be any changed properties"); } }
public void ModelBase_ValidationTest2() { using (var verify = new Verify()) { var person = new SimplePerson(); var eventAssert = new PropertyChangedEventTest(verify, person); person.Validate(); Assert.IsTrue(person.HasErrors); eventAssert.ExpectEvent("HasErrors"); var errors = person.GetErrors("FirstName"); Assert.AreEqual(1, errors.Count); person.ClearErrors(); Assert.IsFalse(person.HasErrors); var errors2 = person.GetErrors("FirstName"); Assert.AreEqual(0, errors2.Count); } }
public void EditableObjectModelCollection_BasicFunctionalityTest() { using (var verify = new Verify()) { var person = new EditablePersonCollection(); var eventAssert = new PropertyChangedEventTest(verify, person); Assert.IsNull(person.FirstName); Assert.AreEqual("", person.LastName); person.FirstName = "John"; eventAssert.ExpectUnordered("FirstName", "FullName", "IsChanged", "IsChangedLocal"); person.LastName = "Doe"; eventAssert.ExpectUnordered("LastName", "FullName"); person.InvokeGoodPropertyMessage(); eventAssert.ExpectEvent("FullName"); } }
public void EditableObjectModelBase_BasicFunctionalityTest() { using (var verify = new Verify()) { var person = new EditablePerson(); var eventAssert = new PropertyChangedEventTest(verify, person); Assert.IsNull(person.FirstName); Assert.AreEqual("", person.LastName); person.FirstName = "John"; eventAssert.ExpectUnordered("FirstName", "IsChangedLocal", "IsChanged", "FullName"); person.LastName = "Doe"; eventAssert.ExpectUnordered("LastName", "FullName"); person.InvokeGoodPropertyMessage(); eventAssert.ExpectEvent("FullName"); } }
public void ModelBaseCollection_BasicFunctionalityTest() { using (var verify = new Verify()) { var person = new SimplePersonCollection(); var eventAssert = new PropertyChangedEventTest(verify, person); Assert.IsNull(person.FirstName); Assert.AreEqual("", person.LastName); person.FirstName = "John"; person.LastName = "Doe"; eventAssert.ExpectEvent("FirstName"); eventAssert.ExpectEvent("FullName"); eventAssert.ExpectEvent("LastName"); eventAssert.ExpectEvent("FullName"); person.InvokeGoodPropertyMessage(); eventAssert.ExpectEvent("FullName"); } }
public void ExtendedReadOnlyObservableCollection_OnSourcePropertyChanged2() { using (var verify = new Verify()) { var list = new NotifierCollection(); var result = new ReadOnlyObservableCollectionExtended<Notifier>(list); var propertyAssert = new PropertyChangedEventTest(verify, result); list.RaisePropertyName(""); propertyAssert.ExpectEvent(""); } }