public IDisposable Subscribe(IObserver <T> observer) { var parent = new ToObservableObserver(observer); source.Subscribe(parent); return(parent); }
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(); });