public void ExceptionThrownInDisposedShouldBeReportedToSinkExceptionHandler() { Promises.ResetSinkExceptionHandler(e => exceptions.Add(e)); var source = new Deferred <TWrapper <int> > (); source.Disposed(() => { throw new Exception(); }); source.Disposed(() => { throw new Exception(); }); source.Dispose(); source.Disposed(() => { throw new Exception(); }); source.Disposed(() => { throw new Exception(); }); Assert.That(exceptions.Count, Is.EqualTo(4)); }
protected override Promise <CUnit> DoHide() { animator.ResetTrigger("TriggerHide"); animator.ResetTrigger("TriggerShow"); animatorEventSubject.OnNext("Reset"); var result = new Deferred <CUnit> (); animator.SetTrigger("TriggerHide"); animatorEventSubject.Take(1).Subscribe(e => { if (e == "Hidden") { result.Resolve(CUnit.Default); } else { result.Dispose(); } }).AddTo(this); result.Disposed(DoForceHide); return(result); }