mirror of
https://github.com/Cysharp/R3.git
synced 2026-10-22 00:46:12 +08:00
49 lines
1.2 KiB
C#
49 lines
1.2 KiB
C#
namespace R3.Tests.FactoryTests;
|
|
|
|
public class EveryUpdateTest
|
|
{
|
|
[Fact]
|
|
public void EveryUpdateCancelImmediate()
|
|
{
|
|
var cts = new CancellationTokenSource();
|
|
var frameProvider = new FakeFrameProvider();
|
|
|
|
var list = Observable.EveryUpdate(frameProvider, cts.Token).Select(_ => frameProvider.GetFrameCount()).ToLiveList();
|
|
|
|
list.AssertEqual([]);
|
|
|
|
frameProvider.Advance();
|
|
list.AssertEqual([0]);
|
|
|
|
frameProvider.Advance(3);
|
|
list.AssertEqual([0, 1, 2, 3]);
|
|
|
|
cts.Cancel();
|
|
list.AssertIsCompleted();
|
|
|
|
frameProvider.Advance();
|
|
list.AssertEqual([0, 1, 2, 3]);
|
|
list.AssertIsCompleted();
|
|
}
|
|
|
|
[Fact]
|
|
public void EveryUpdateDispose()
|
|
{
|
|
var frameProvider = new FakeFrameProvider();
|
|
|
|
var list = Observable.EveryUpdate(frameProvider).Select(_ => frameProvider.GetFrameCount()).ToLiveList();
|
|
|
|
list.AssertEqual([]);
|
|
|
|
frameProvider.Advance();
|
|
list.AssertEqual([0]);
|
|
|
|
frameProvider.Advance(3);
|
|
list.AssertEqual([0, 1, 2, 3]);
|
|
|
|
list.Dispose();
|
|
frameProvider.Advance();
|
|
list.AssertEqual([0, 1, 2, 3]);
|
|
}
|
|
}
|