예제 #1
0
        public void entityMemento_isTracking_with_service_and_registerAsTransient_false_should_be_true()
        {
            var memento = new ChangeTrackingService();
            var target  = new TestableMementoEntity(memento, false);

            target.GetIsTracking().Should().Be.True();
        }
예제 #2
0
        public void entityMemento_isTracking_with_service_should_be_true()
        {
            var memento = new ChangeTrackingService();
            var target  = new TestableMementoEntity(memento);

            target.GetIsTracking().Should().Be.True();
        }
예제 #3
0
        public void entityMemento_chacheChange_value_rejectCallback_commitCallback_addChangeBeahvior_without_service_should_not_be_called()
        {
            var target = new TestableMementoEntity();

            var change = target.InvokeCacheChange("Foo", cv => { }, cv => { }, AddChangeBehavior.Default);

            change.Should().Be.Null();
        }
예제 #4
0
        public void entityMemento_chacheChange_value_rejectCallback_without_service_should_not_be_called()
        {
            var target = new TestableMementoEntity();

            var change = target.InvokeCacheChange("Foo", cv => { });

            change.Should().Be.Null();
        }
예제 #5
0
        public void entityMemento_memento_changing_on_disposed_entity_using_base_iMemento_should_raise_ObjectDisposedException()
        {
            var memento = new ChangeTrackingService();
            var target  = new TestableMementoEntity(memento);

            target.Dispose();
            ((IMemento)target).Memento = null;
        }
예제 #6
0
        public void entityMemento_chacheChange_value_rejectCallback_commitCallback_addChangeBeahvior_on_disposed_object_should_raise_ObjectDisposedException()
        {
            var memento = new ChangeTrackingService();
            var target  = new TestableMementoEntity(memento);

            target.Dispose();

            target.InvokeCacheChange("Foo", cv => { }, cv => { }, AddChangeBehavior.Default);
        }
예제 #7
0
        public void entityMemento_chacheChange_value_rejectCallback_commitCallback_addChangeBeahvior_should_be_called()
        {
            var memento = new ChangeTrackingService();
            var target  = new TestableMementoEntity(memento);

            var change = target.InvokeCacheChange("Foo", cv => { }, cv => { }, AddChangeBehavior.Default);

            change.Should().Not.Be.Null();
        }
예제 #8
0
        public void entityMemento_isTracking_with_suspended_serviceand_registerAsTransient_true_should_be_false()
        {
            var memento = new ChangeTrackingService();

            memento.Suspend();

            var target = new TestableMementoEntity(memento, true);

            target.GetIsTracking().Should().Be.False();
        }
예제 #9
0
        public void entityMemento_chacheChange_value_rejectCallback_commitCallback_addChangeBeahvior_should_be_called_with_expected_values()
        {
            var memento = new ChangeTrackingService();
            var target  = new TestableMementoEntity(memento);

            var change = target.InvokeCacheChange("Foo", cv => { }, cv => { }, AddChangeBehavior.Default);

            change.IsCommitSupported.Should().Be.True();
            change.Owner.Should().Be.EqualTo(target);
            change.Description.Should().Be.EqualTo(string.Empty);
        }
예제 #10
0
        public void entityMemento_chacheChange_value_rejectCallback_commitCallback_with_suspended_service_should_not_be_called()
        {
            var memento = new ChangeTrackingService();

            memento.Suspend();

            var target = new TestableMementoEntity(memento);

            var change = target.InvokeCacheChange("Foo", cv => { }, cv => { });

            change.Should().Be.Null();
        }
예제 #11
0
        public void entityMemento_memento_normal_onMementoChanged_is_not_invoked_setting_same_reference()
        {
            var expected = 0;
            var actual   = 0;

            var memento = new ChangeTrackingService();

            var target = new TestableMementoEntity(memento);

            target.MementoChanged     += (s, e) => { actual++; };
            ((IMemento)target).Memento = memento;

            actual.Should().Be.EqualTo(expected);
        }
예제 #12
0
        public void entityMemento_cacheChangeOnRejectCallback_invalid_rejectReason_should_raise_EnumValueOutOfRangeException()
        {
            var iChange = A.Dummy <IChange>();
            var memento = A.Fake <IChangeTrackingService>();

            A.CallTo(() => memento.IsSuspended).Returns(false);

            var target = new TestableMementoEntity(memento);

            var value   = "foo";
            var rejArgs = new ChangeRejectedEventArgs <string>(target, value, iChange, (RejectReason)1000);

            target.InvokeCacheChangeOnRejectCallback(value, cv => { }, cv => { }, rejArgs);
        }
예제 #13
0
        public void entityMemento_chacheChangeOnRejectCallback_on_disposed_entity_should_raise_ObjectDisposedException()
        {
            var iChange = A.Dummy <IChange>();
            var memento = A.Fake <IChangeTrackingService>();

            A.CallTo(() => memento.IsSuspended).Returns(false);

            var target = new TestableMementoEntity(memento);

            target.Dispose();

            var value   = "foo";
            var rejArgs = new ChangeRejectedEventArgs <string>(target, value, iChange, RejectReason.Revert);

            target.InvokeCacheChangeOnRejectCallback(value, cv => { }, cv => { }, rejArgs);
        }
예제 #14
0
        public void entityMemento_cacheChangeOnRejectCallback_rejectReason_RejectChanges_should_return_null_iChange()
        {
            var iChange = A.Dummy <IChange>();
            var memento = A.Fake <IChangeTrackingService>();

            A.CallTo(() => memento.IsSuspended).Returns(false);

            var target = new TestableMementoEntity(memento);

            var value   = "foo";
            var rejArgs = new ChangeRejectedEventArgs <string>(target, value, iChange, RejectReason.RejectChanges);

            var actual = target.InvokeCacheChangeOnRejectCallback(value, cv => { }, cv => { }, rejArgs);

            actual.Should().Be.Null();
        }
예제 #15
0
        public void entityMemento_memento_changing_current_onMementoChanged_is_invoked_with_expected_values()
        {
            IChangeTrackingService expectedNew = new ChangeTrackingService();
            IChangeTrackingService expectedOld = new ChangeTrackingService();
            IChangeTrackingService actualNew   = null;
            IChangeTrackingService actualOld   = null;

            var target = new TestableMementoEntity(expectedOld);

            target.MementoChanged += (s, e) =>
            {
                actualNew = e.NewMemento;
                actualOld = e.OldMemento;
            };
            ((IMemento)target).Memento = expectedNew;

            actualNew.Should().Be.EqualTo(expectedNew);
            actualOld.Should().Be.EqualTo(expectedOld);
        }
예제 #16
0
        public void entityMemento_isTracking_without_service_should_be_false()
        {
            var target = new TestableMementoEntity();

            target.GetIsTracking().Should().Be.False();
        }
예제 #17
0
        public void entityMemento_isTracking_without_service_and_with_registerAsTransient_request_false_should_be_false()
        {
            var target = new TestableMementoEntity(false);

            target.GetIsTracking().Should().Be.False();
        }