public void ShouldSeeChangeToBasePropertyWhenBaseObject() { var detector = new DerivedChangeDetector(); var tracker = new EntityChangeTracker <TestEntity>(detector); DerivedEntity entity = new DerivedEntity() { IntValue = 123 }; tracker.Attach(entity); entity.IntValue = 234; var changes = tracker.DetectChanges(); Assert.AreEqual(1, changes.Count(), "The wrong number of changes were detected."); IEntityChange <TestEntity> change = changes.Single(); Assert.AreSame(entity, change.Entity, "A change was detected on the wrong entity."); Assert.AreEqual(EntityState.Modified, change.State, "The entity should have been modified."); Assert.AreEqual(1, change.GetChanges().Count(), "The wrong number of properties were seen as changed."); var propertyChange = change.GetChanges().Single(); Assert.AreEqual(TestEntityChangeDetector.IntDescription, propertyChange.DisplayName, "The wrong property was recorded."); bool hasBaseChange = change.HasChange(x => x.IntValue); Assert.IsTrue(hasBaseChange, "The change was not detected."); bool hasDerivedChange = change.As <DerivedEntity>().HasChange(x => x.IntValue); Assert.IsTrue(hasDerivedChange, "The change was not detected."); }
public void ShouldSeeChangeToNonDerivedProperty() { var detector = new DerivedChangeDetector(); DerivedEntity original = new DerivedEntity() { IntValue = 123 }; DerivedEntity updated = new DerivedEntity() { IntValue = 234 }; bool hasChange = detector.As <DerivedEntity>().HasChange(x => x.IntValue, original, updated); Assert.IsTrue(hasChange, "The change was not detected."); }
public void ShouldDetectChangeToDerivedProperty_OriginalNull() { var detector = new DerivedChangeDetector(); DerivedEntity original = null; DerivedEntity updated = new DerivedEntity() { DerivedValue = 234 }; var changes = detector.GetChanges(original, updated); Assert.AreEqual(1, changes.Count(), "The wrong number of changes were detected."); IPropertyChange change = changes.Single(); Assert.AreEqual(DerivedChangeDetector.DerivedDescription, change.DisplayName, "The wrong property was recorded."); Assert.AreEqual(null, change.FormatOriginalValue(), "The old value was not recorded."); Assert.AreEqual(Formatters.FormatInt32(updated.DerivedValue), change.FormatUpdatedValue(), "The new value was not recorded."); }
public void ShouldDetectChangeToDerivedPropertyWhenAdding() { var detector = new DerivedChangeDetector(); var tracker = new EntityChangeTracker <TestEntity>(detector); DerivedEntity entity = new DerivedEntity() { DerivedValue = 123 }; tracker.Add(entity); var changes = tracker.DetectChanges(); Assert.AreEqual(1, changes.Count(), "The wrong number of changes were detected."); IEntityChange <TestEntity> change = changes.Single(); Assert.AreSame(entity, change.Entity, "A change was detected on the wrong entity."); Assert.AreEqual(EntityState.Added, change.State, "The entity should have been modified."); Assert.AreEqual(1, change.GetChanges().Count(), "The wrong number of properties were seen as changed."); }