Пример #1
0
        public void unchangedEntity_service_getEntityState_is_None()
        {
            EntityTrackingStates expected = EntityTrackingStates.None;

            ChangeTrackingService svc = new ChangeTrackingService();
            PersonCollection      p   = new PersonCollection(svc);

            EntityTrackingStates actual = svc.GetEntityState(p);

            Assert.AreEqual <EntityTrackingStates>(expected, actual);
        }
Пример #2
0
        public void entityMemento_ctor_requesting_transient_registration_using_base_iMemento_successfully_register_entity_as_transient()
        {
            EntityTrackingStates expected = EntityTrackingStates.IsTransient | EntityTrackingStates.AutoRemove;

            using (ChangeTrackingService svc = new ChangeTrackingService())
            {
                var target = new FakeMementoEntity(true);
                ((IMemento)target).Memento = svc;

                EntityTrackingStates actual = svc.GetEntityState(target);

                actual.Should().Be.EqualTo(expected);
            }
        }
Пример #3
0
        public void after_mutual_exclusive_actions_entity_state_is_HasBackwardChanges()
        {
            EntityTrackingStates expected = EntityTrackingStates.HasBackwardChanges;

            IChangeTrackingService svc = new ChangeTrackingService();

            PersonCollection p = new PersonCollection(svc);

            p.Add(new Person(svc, false));
            p.RemoveAt(0);

            EntityTrackingStates actual = svc.GetEntityState(p);

            Assert.AreEqual <EntityTrackingStates>(expected, actual);
        }
Пример #4
0
        public void after_add_GetEntityState_is_Changed()
        {
            EntityTrackingStates expected = EntityTrackingStates.HasBackwardChanges;

            ChangeTrackingService svc = new ChangeTrackingService();

            PersonCollection p = new PersonCollection(svc);

            p.Add(new Person(svc, false));
            p.Add(new Person(svc, false));

            EntityTrackingStates actual = svc.GetEntityState(p);

            actual.Should().Be.EqualTo(expected);
        }
Пример #5
0
        public void after_rejectChanges_entity_is_no_more_changed()
        {
            EntityTrackingStates expected = EntityTrackingStates.None;

            ChangeTrackingService svc = new ChangeTrackingService();

            PersonCollection p = new PersonCollection(svc);

            p.Add(new Person(null, false));

            svc.RejectChanges();

            EntityTrackingStates actual = svc.GetEntityState(p);

            Assert.AreEqual <EntityTrackingStates>(expected, actual);
        }
Пример #6
0
        public void entityMemento_ctor_requesting_transient_registration_using_base_iMemento_to_suspended_memento_do_not_register_entity_as_transient()
        {
            EntityTrackingStates expected = EntityTrackingStates.None;

            using (var svc = new ChangeTrackingService())
            {
                svc.Suspend();

                var target = new FakeMementoEntity(true);
                ((IMemento)target).Memento = svc;

                EntityTrackingStates actual = svc.GetEntityState(target);

                actual.Should().Be.EqualTo(expected);
            }
        }
Пример #7
0
        public void changeTrackingService_using_beginAtomicOperation_getEntityState_should_return_valid_entity_state()
        {
            var target = new ChangeTrackingService();

            var person = new Person(target);
            var list   = new PersonCollection(target);

            using (var op = target.BeginAtomicOperation())
            {
                person.Name = "Mauro";
                list.Add(person);
                person.Name = "Mauro Servienti";

                op.Complete();
            }

            var actual = target.GetEntityState(person);

            actual.Should().Be.EqualTo(EntityTrackingStates.HasBackwardChanges | EntityTrackingStates.IsTransient | EntityTrackingStates.AutoRemove);
        }
Пример #8
0
        public void changeTrackingService_using_atomicOperation_after_operation_complete_entityState_should_be_changed()
        {
            var target = new ChangeTrackingService();

            var person = new Person(target);

            target.AcceptChanges();

            using (var op = target.BeginAtomicOperation())
            {
                person.Name = "Mauro";

                op.Complete();
            }

            var state = target.GetEntityState(person);

            var actual = (state & EntityTrackingStates.HasBackwardChanges) == EntityTrackingStates.HasBackwardChanges;

            actual.Should().Be.True();
        }