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.");
        }
Exemple #2
0
        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.");
        }
Exemple #3
0
        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.");
        }