public IDisposable Subscribe(IObserver <T> observer)
        {
            var parent = new ToObservableObserver(observer);

            source.Subscribe(parent);
            return(parent);
        }
Пример #2
0
        public IEnumerator ToObservable() => UniTask.ToCoroutine(async() =>
        {
            var completedTaskObserver = new ToObservableObserver <AsyncUnit>();
            completedTaskObserver.OnNextCalled.Should().BeFalse();
            completedTaskObserver.OnCompletedCalled.Should().BeFalse();
            completedTaskObserver.OnErrorCalled.Should().BeFalse();
            UniTask.CompletedTask.ToObservable().Subscribe(completedTaskObserver);
            completedTaskObserver.OnNextCalled.Should().BeTrue();
            completedTaskObserver.OnCompletedCalled.Should().BeTrue();
            completedTaskObserver.OnErrorCalled.Should().BeFalse();

            var delayFrameTaskObserver = new ToObservableObserver <AsyncUnit>();
            UniTask.DelayFrame(1).ToObservable().Subscribe(delayFrameTaskObserver);
            delayFrameTaskObserver.OnNextCalled.Should().BeFalse();
            delayFrameTaskObserver.OnCompletedCalled.Should().BeFalse();
            delayFrameTaskObserver.OnErrorCalled.Should().BeFalse();
            await UniTask.DelayFrame(1);
            delayFrameTaskObserver.OnNextCalled.Should().BeTrue();
            delayFrameTaskObserver.OnCompletedCalled.Should().BeTrue();
            delayFrameTaskObserver.OnErrorCalled.Should().BeFalse();
        });