public void CollectionIsVirtualized(int pageSize) { var items = new List <TestEntity> { new TestEntity(1), new TestEntity(2) }; DbContext.Set <TestEntity>().AddRange(items); // ReSharper disable once CollectionNeverUpdated.Local var collection = new TestPagedList(new TestRepoProvider(DbContext), pageSize); collection.Pages.Should().BeEmpty(); var fecthedItems = new List <TestEntity>(); foreach (var item in items) { // fetch element var element = collection[items.IndexOf(item)]; element.Should().Be(item); fecthedItems.Add(element); // number of pages depends on no of items fetched and the pageSize var expectedPagesCount = Math.Max(fecthedItems.Count / pageSize, 1); collection.Pages.Count.Should().Be(expectedPagesCount); collection.Pages[expectedPagesCount - 1].Should().Contain(element); collection.PageTouchTimes.Count.Should().Be(expectedPagesCount); } }
public void ResetsOnProviderCollectionChanged() { var provider = new TestRepoProvider(DbContext); // ReSharper disable once CollectionNeverUpdated.Local var collection = new TestPagedList(provider, 1); bool wasChanged = false; collection.CollectionChangedObservable().Subscribe(_ => wasChanged = true); collection.WasResetPagesCalled.Should().BeFalse(); collection.WasLoadCountCalled.Should().BeFalse(); provider.SignalReset(); collection.WasResetPagesCalled.Should().BeTrue(); collection.WasLoadCountCalled.Should().BeTrue(); wasChanged.Should().BeTrue(); }