Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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();
        }