Exemplo n.º 1
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);
        }
Exemplo n.º 2
0
        public void changeRejectedArgs_generic_ctor_normal_should_correctly_set_values()
        {
            var entity      = new Object();
            var cachedValue = new GenericParameterHelper();
            var iChange     = A.Dummy <IChange>();
            var reason      = RejectReason.Redo;

            var target = new ChangeRejectedEventArgs <GenericParameterHelper>(entity, cachedValue, iChange, reason);

            target.Entity.Should().Be.EqualTo(entity);
            target.CachedValue.Should().Be.EqualTo(cachedValue);
            target.Source.Should().Be.EqualTo(iChange);
            target.Reason.Should().Be.EqualTo(reason);
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
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();
        }
Exemplo n.º 5
0
        public void propertyValueChange_ctor_owner_value_rejectCallback_on_reject_should_return_expected_values()
        {
            var expected = "Foo";
            ChangeRejectedEventArgs <string> actual = null;
            var owner = new Object();

            var target = this.MockPropertyValue(owner, expected, cv => { actual = cv; });

            target.Reject(RejectReason.RejectChanges);

            actual.Should().Not.Be.Null();
            actual.CachedValue.Should().Be.EqualTo(expected);
            actual.Reason.Should().Be.EqualTo(RejectReason.RejectChanges);
            actual.Source.Should().Be.EqualTo(target);
            actual.Entity.Should().Be.EqualTo(owner);
        }
Exemplo n.º 6
0
        public void generic_iChange_rejectCallback_is_invoked_with_expected_values()
        {
            ChangeRejectedEventArgs <string> expected = null;

            var owner = new Object();
            var value = "Foo";
            RejectCallback <string> rc = e => { expected = e; };
            CommitCallback <string> cc = null;
            var description            = string.Empty;
            var reason = RejectReason.Undo;

            var target = new ChangeMock <string>(owner, value, rc, cc, description);

            target.Reject(reason);

            expected.Should().Not.Be.Null();
            expected.Source.Should().Be.EqualTo(target);
            expected.Reason.Should().Be.EqualTo(reason);
            expected.Entity.Should().Be.EqualTo(owner);
            expected.CachedValue.Should().Be.EqualTo(value);
        }
Exemplo n.º 7
0
 internal IChange InvokeCacheChangeOnRejectCallback <T>(T value, RejectCallback <T> rejectCallback, CommitCallback <T> commitCallback, ChangeRejectedEventArgs <T> args)
 {
     return(base.CacheChangeOnRejectCallback("property-name", value, rejectCallback, commitCallback, args));
 }
Exemplo n.º 8
0
        /// <summary>
        /// Called in order to reject this change.
        /// </summary>
        protected virtual void OnReject(RejectReason reason)
        {
            ChangeRejectedEventArgs <T> args = new ChangeRejectedEventArgs <T>(this.Owner, this.CachedValue, this, reason);

            this.RejectCallback(args);
        }
Exemplo n.º 9
0
        protected virtual IChange CacheChangeOnRejectCallback <T>(string propertyName, T value, RejectCallback <T> rejectCallback, CommitCallback <T> commitCallback, ChangeRejectedEventArgs <T> args)
        {
            this.EnsureNotDisposed();
            switch (args.Reason)
            {
            case RejectReason.Undo:
                return(this.CacheChange(propertyName, value, rejectCallback, commitCallback, AddChangeBehavior.UndoRequest));

            case RejectReason.Redo:
                return(this.CacheChange(propertyName, value, rejectCallback, commitCallback, AddChangeBehavior.RedoRequest));

            case RejectReason.RejectChanges:
            case RejectReason.Revert:
                return(null);

            case RejectReason.None:
                throw new ArgumentOutOfRangeException();

            default:
                throw new EnumValueOutOfRangeException();
            }
        }