public void MultipleSubscribesShouldntResultInMultipleNotifications() { var input = new[] { 1, 2, 1, 2 }; var sched = new TestScheduler(); var fixture = new ReactiveCommand(null, sched); var odd_list = new List<int>(); var even_list = new List<int>(); fixture.Where(x => ((int)x) % 2 != 0).Subscribe(x => odd_list.Add((int)x)); fixture.Where(x => ((int)x) % 2 == 0).Subscribe(x => even_list.Add((int)x)); input.Run(x => fixture.Execute(x)); sched.RunToMilliseconds(1000); new[]{1,1}.AssertAreEqual(odd_list); new[]{2,2}.AssertAreEqual(even_list); }
public void MultipleSubscribesShouldntResultInMultipleNotifications() { var input = new[] { 1, 2, 1, 2 }; var fixture = new ReactiveCommand(null, null); var odd_list = new List<int>(); var even_list = new List<int>(); fixture.Where(x => ((int)x) % 2 != 0).Subscribe(x => odd_list.Add((int)x)); fixture.Where(x => ((int)x) % 2 == 0).Subscribe(x => even_list.Add((int)x)); input.Run(x => fixture.Execute(x)); new[]{1,1}.Zip(odd_list, (expected, actual) => new { expected, actual }) .Run(x => Assert.AreEqual(x.expected, x.actual)); new[]{2,2}.Zip(even_list, (expected, actual) => new { expected, actual }) .Run(x => Assert.AreEqual(x.expected, x.actual)); }