public void TestContructorThrowsExceptionUponEmptyItemList() { Assert.Throws <ArgumentNullException>(() => { var en = new MultipleBatchEnumerator <int, int>( new IQueryable <int> [0], q => q ); }, "Items list cannot be empty"); }
public void TestContructorThrowsExceptionUponNullSelectedResponse() { Assert.Throws <ArgumentNullException>(() => { var en = new MultipleBatchEnumerator <int, int>( new[] { new [] { 1 }.AsQueryable() }, null ); }, "Selected Response cannot be empty"); }
public void TestMultipleBatchEnumeratorFetchesCorrectBatchItems3() { var itemList = new[] { new [] { 1, 2, 3 }.AsQueryable(), new [] { 4, 5, 6, }.AsQueryable(), new [] { 7, 8, 9, 10, 11, 12 }.AsQueryable(), new int[] { }.AsQueryable(), new [] { 12, 13, 14, 15, 16, 17, 18, }.AsQueryable(), new [] { 17, 18, 19, 20, 21, 22, 24 }.AsQueryable(), new int[] { }.AsQueryable(), new int[] { 42 }.AsQueryable(), }; var en = new MultipleBatchEnumerator <int, int>( itemList, q => q, qq => qq.OrderBy(q => q), null, 5 ); Assert.AreEqual(0, en.BatchNumber); Assert.True(en.MoveNext()); Assert.AreEqual(5, en.Current.Count()); Assert.AreEqual(new[] { 1, 2, 3, 4, 5 }, en.Current); Assert.AreEqual(1, en.BatchNumber); Assert.True(en.MoveNext()); Assert.AreEqual(5, en.Current.Count()); Assert.AreEqual(new[] { 6, 7, 8, 9, 10 }, en.Current); Assert.AreEqual(2, en.BatchNumber); Assert.True(en.MoveNext()); Assert.AreEqual(5, en.Current.Count()); Assert.AreEqual(new[] { 11, 12, 12, 13, 14 }, en.Current); Assert.AreEqual(3, en.BatchNumber); Assert.True(en.MoveNext()); Assert.AreEqual(5, en.Current.Count()); Assert.AreEqual(new[] { 15, 16, 17, 18, 17 }, en.Current); Assert.AreEqual(4, en.BatchNumber); Assert.True(en.MoveNext()); Assert.AreEqual(5, en.Current.Count()); Assert.AreEqual(new[] { 18, 19, 20, 21, 22 }, en.Current); Assert.AreEqual(5, en.BatchNumber); Assert.True(en.MoveNext()); Assert.AreEqual(2, en.Current.Count()); Assert.AreEqual(new[] { 24, 42 }, en.Current); Assert.AreEqual(6, en.BatchNumber); Assert.False(en.MoveNext()); }