Files
R3/tests/R3.Tests/FactoryTests/EveryUpdateTest.cs
2024-01-09 03:03:43 +09:00

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]);
}
}