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); }
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); }
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); }
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(); }
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); }
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); }
internal IChange InvokeCacheChangeOnRejectCallback <T>(T value, RejectCallback <T> rejectCallback, CommitCallback <T> commitCallback, ChangeRejectedEventArgs <T> args) { return(base.CacheChangeOnRejectCallback("property-name", value, rejectCallback, commitCallback, args)); }
/// <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); }
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(); } }