mirror of
https://github.com/Cysharp/R3.git
synced 2026-10-23 02:00:54 +08:00
46 lines
928 B
C#
46 lines
928 B
C#
|
|
namespace R3.Tests.FactoryTests;
|
|
|
|
public class EveryValueChangedTest
|
|
{
|
|
[Fact]
|
|
public void EveryValueChanged()
|
|
{
|
|
var frameProvider = new FakeFrameProvider();
|
|
|
|
var t = new Target();
|
|
t.MyProperty = 99;
|
|
|
|
var list = Observable.EveryValueChanged(t, x => x.MyProperty, frameProvider).ToLiveList();
|
|
|
|
list.AssertEqual([99]);
|
|
|
|
t.MyProperty = 100;
|
|
frameProvider.Advance();
|
|
|
|
list.AssertEqual([99, 100]);
|
|
|
|
t.MyProperty = 100;
|
|
frameProvider.Advance();
|
|
|
|
list.AssertEqual([99, 100]);
|
|
|
|
t.MyProperty = 1000;
|
|
frameProvider.Advance();
|
|
|
|
list.AssertEqual([99, 100, 1000]);
|
|
|
|
frameProvider.GetRegisteredCount().Should().Be(1);
|
|
|
|
list.Dispose();
|
|
frameProvider.Advance();
|
|
|
|
frameProvider.GetRegisteredCount().Should().Be(0);
|
|
}
|
|
}
|
|
|
|
file class Target
|
|
{
|
|
public int MyProperty { get; set; }
|
|
}
|