Example #1
0
        public void TestAggregateBatchIteratesInBatchesWithDbContext()
        {
            var parentBatch = Context.Batch <TestParent, string>(
                pp => pp.OrderBy(p => p.Id),
                p => "Parent: " + p.FirstName + " " + p.LastName,
                null,
                50
                );
            var childrenBatch = Context.Batch <TestChild, string>(
                pp => pp.OrderBy(p => p.Id),
                p => "Child: " + p.FirstName + " " + p.LastName,
                null,
                50
                );
            var intList     = new[] { 10, 20, 30, 40, 50, 60, 70 };
            var intBatch    = intList.Batch <int, string>(i => i.ToString());
            var stringList  = new[] { "TestName1", "TestName2", "TestName3", "TestName4" };
            var stringBatch = stringList.Batch <string>();
            var aggregator  = Aggregate.Enumerable.AggregateBatch <string>(
                new IBatchEnumerable <string>[] {
                parentBatch,
                childrenBatch,
                intBatch,
                stringBatch,
            }
                );

            int count = 0;
            int sum   = 0;

            foreach (var b in aggregator)
            {
                count++;
                sum += b.Count();
            }
            Assert.AreEqual(6, count);
            var expectedSum = Context.TestParents.Count() +
                              Context.TestChildren.Count() +
                              intList.Count() +
                              stringList.Count();

            Assert.AreEqual(expectedSum, sum);
        }
        public void TestContextBatchEnumerableIteratesInBatches()
        {
            var items = Context.Batch <TestDbModel, string>(
                ot => ot.OrderBy(t => t.Id),
                t => t.Name,
                null,
                100000
                );
            var counter = 0;

            foreach (var itemBatch in items)
            {
                Assert.AreEqual(100000, itemBatch.Count());
                counter++;
                Assert.AreEqual(100000, itemBatch.Count());
            }
            Assert.AreEqual(10, counter);
        }