mirror of https://github.com/Cysharp/UniTask
commit
50ba93f951
|
@ -395,6 +395,40 @@ namespace UniRx.AsyncTests
|
|||
yield return new WaitForSeconds(3);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
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<int>();
|
||||
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();
|
||||
});
|
||||
|
||||
class ToObservableObserver<T> : IObserver<T>
|
||||
{
|
||||
public bool OnNextCalled { get; private set; }
|
||||
public bool OnCompletedCalled { get; private set; }
|
||||
public bool OnErrorCalled { get; private set; }
|
||||
|
||||
public void OnNext(T value) => OnNextCalled = true;
|
||||
public void OnCompleted() => OnCompletedCalled = true;
|
||||
public void OnError(Exception error) => OnErrorCalled = true;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -257,6 +257,7 @@ namespace UniRx.Async
|
|||
public IDisposable Subscribe(IObserver<T> observer)
|
||||
{
|
||||
observer.OnNext(value);
|
||||
observer.OnCompleted();
|
||||
return EmptyDisposable.Instance;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue