public void IsPaused() { var schedulerProvider = new TestSchedulerProvider(); using (var testData = new DataProviderStub()) using (var sut = new ViewModel(testData, schedulerProvider)) { sut.IsPaused = true; schedulerProvider.TestScheduler.Start(); //push scheduler forward //add data after pause has started testData.Data.AddOrUpdate(Enumerable.Range(1, 10).Select(i => new Item(i))); schedulerProvider.TestScheduler.AdvanceBy(1); //check no data has been pipelined sut.BindingData.Count.Should().Be(0); //turn pause off and check the updates have been pushed through sut.IsPaused = false; schedulerProvider.TestScheduler.AdvanceBy(1); sut.BindingData.Count.Should().Be(10); } }
public void Binding() { var schedulerProvider = new TestSchedulerProvider(); using (var testData = new DataProviderStub()) using (var sut = new ViewModel(testData, schedulerProvider)) { //Act var items = Enumerable.Range(1, 10).Select(i => new Item(i)).ToArray(); testData.Data.AddOrUpdate(items); schedulerProvider.TestScheduler.Start(); //push scheduler forward //1. Check count of data sut.BindingData.Count.Should().Be(10); //2. Check Transform and Sort var expectedData = items .Select(i => new ItemViewModel(i)) .OrderByDescending(vm => vm.Item.Id); sut.BindingData.ShouldAllBeEquivalentTo(expectedData); } }