Пример #1
0
        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);
        }