public void TestBatchEnumerableReturnsCorrectValuesWithBaseEnumeratorMultipleIterations()
        {
            var batchEnumerable = new BatchEnumerable <int, int>(
                ItemsList.AsQueryable(),
                i => i,
                null,
                null,
                5
                );

            for (var j = 0; j < 4; j++)
            {
                Assert.AreEqual(5, batchEnumerable.Count());
                var count          = 0;
                var baseEnumerable = (IEnumerable)batchEnumerable;
                var enumerator     = baseEnumerable.GetEnumerator();

                while (enumerator.MoveNext())
                {
                    var i = new[] {
                        (count * 5) + 1,
                        (count * 5) + 2,
                        (count * 5) + 3,
                        (count * 5) + 4,
                        (count * 5) + 5,
                    };
                    Assert.AreEqual(i, enumerator.Current);
                    count++;
                    Assert.AreEqual(count, batchEnumerable.BatchNumber);
                }
                enumerator.Reset();
            }
        }
        public void TestBatchEnumerableReturnsCorrectValuesUponMultipleIterations()
        {
            var batchEnumerable = new BatchEnumerable <int, int>(
                ItemsList.AsQueryable(),
                i => i,
                null,
                null,
                5
                );

            for (var j = 0; j < 4; j++)
            {
                Assert.AreEqual(5, batchEnumerable.Count());
                var count = 0;
                foreach (var items in batchEnumerable)
                {
                    var i = new[] {
                        (count * 5) + 1,
                        (count * 5) + 2,
                        (count * 5) + 3,
                        (count * 5) + 4,
                        (count * 5) + 5,
                    };
                    Assert.AreEqual(i, items);
                    count++;
                    Assert.AreEqual(count, batchEnumerable.BatchNumber);
                }
            }
        }
 public void TestBatchEnumerableThrowsExceptionUponNullItems()
 {
     Assert.Throws <ArgumentNullException>(() => {
         var batchEnumerable = new BatchEnumerable <int>(
             null,
             null,
             i => i < 4,
             5
             );
     });
 }
        public void TestBatchEnumerableReturnsCorrectNumber()
        {
            var batchEnumerable = new BatchEnumerable <int, int>(
                ItemsList.AsQueryable(),
                i => i,
                null,
                null,
                5
                );

            Assert.AreEqual(0, batchEnumerable.BatchNumber);
        }
        public void TestBatchEnumerableReturnsBatchSize()
        {
            var batchEnumerable = new BatchEnumerable <int, int>(
                ItemsList.AsQueryable(),
                i => i,
                null,
                null,
                5
                );

            Assert.AreEqual(5, batchEnumerable.BatchSize);
        }
        public void TestBatchEnumerableFiltersItems()
        {
            var batchEnumerable = new BatchEnumerable <int, int>(
                ItemsList.AsQueryable(),
                i => i,
                null,
                i => i < 4,
                5
                );

            Assert.AreEqual(1, batchEnumerable.Count());
            Assert.AreEqual(new[] { 1, 2, 3 }, batchEnumerable.First());
        }
        public void TestBatchEnumerableFiltersItemsWithMultipleCalls()
        {
            var batchEnumerable = new BatchEnumerable <int, int>(
                ItemsList.AsQueryable(),
                i => i,
                null,
                i => i < 4,
                5
                );

            for (var j = 0; j < 4; j++)
            {
                Assert.AreEqual(1, batchEnumerable.Count());
                Assert.AreEqual(new[] { 1, 2, 3 }, batchEnumerable.First());
            }
        }