Skip to content

Commit 5e4b0b8

Browse files
Merge pull request #4023 from RosarioPulella/ilc-pageSize
Test IncrementalLoadingCollection itemsPerPage ctor param
2 parents 10e7668 + 8482a04 commit 5e4b0b8

File tree

1 file changed

+42
-35
lines changed

1 file changed

+42
-35
lines changed

UnitTests/UnitTests.UWP/UI/Collection/Test_IncrementalLoadingCollection.cs

Lines changed: 42 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ namespace UnitTests.UI
1515
[TestClass]
1616
public class Test_IncrementalLoadingCollection
1717
{
18-
private const int PageSize = 20;
19-
private const int Pages = 5;
20-
2118
private static readonly DataSource<int>.PageOperation[] FailPassSequence
2219
= new DataSource<int>.PageOperation[]
2320
{
@@ -28,76 +25,83 @@ private static readonly DataSource<int>.PageOperation[] FailPassSequence
2825
DataSource<int>.ThrowException, DataSource<int>.PassThrough,
2926
};
3027

31-
private static readonly int[] AllData
32-
= Enumerable.Range(0, Pages * PageSize).ToArray();
33-
34-
[DataRow]
35-
[DataRow(2500, 1000, 1000, 1000, 1000)]
3628
[TestMethod]
37-
public async Task Requests(params int[] pageDelays)
29+
[DataRow(20, 5)]
30+
[DataRow(5, 5)]
31+
[DataRow(20, 5, 2500, 1000, 1000, 1000, 1000)]
32+
public async Task Requests(int pageSize, int pages, params int[] pageDelays)
3833
{
39-
var source = new DataSource<int>(AllData, pageDelays.Select(DataSource<int>.MakeDelayOp));
40-
var collection = new IncrementalLoadingCollection<DataSource<int>, int>(source, PageSize);
34+
var allData = Enumerable.Range(0, pages * pageSize).ToArray();
35+
var source = new DataSource<int>(allData, pageDelays.Select(DataSource<int>.MakeDelayOp));
36+
var collection = new IncrementalLoadingCollection<DataSource<int>, int>(source, pageSize);
4137

42-
for (int pageNum = 1; pageNum <= Pages; pageNum++)
38+
for (var pageNum = 1; pageNum <= pages; pageNum++)
4339
{
4440
await collection.LoadMoreItemsAsync(0);
45-
CollectionAssert.AreEqual(Enumerable.Range(0, PageSize * pageNum).ToArray(), collection);
41+
CollectionAssert.AreEqual(Enumerable.Range(0, pageSize * pageNum).ToArray(), collection);
4642
}
4743
}
4844

49-
[DataRow]
50-
[DataRow(2500, 1000, 1000, 1000, 1000)]
5145
[TestMethod]
52-
public async Task RequestsAsync(params int[] pageDelays)
46+
[DataRow(20, 5)]
47+
[DataRow(5, 5)]
48+
[DataRow(20, 5, 2500, 1000, 1000, 1000, 1000)]
49+
public async Task RequestsAsync(int pageSize, int pages, params int[] pageDelays)
5350
{
54-
var source = new DataSource<int>(AllData, pageDelays.Select(DataSource<int>.MakeDelayOp));
55-
var collection = new IncrementalLoadingCollection<DataSource<int>, int>(source, PageSize);
51+
var allData = Enumerable.Range(0, pages * pageSize).ToArray();
52+
var source = new DataSource<int>(allData, pageDelays.Select(DataSource<int>.MakeDelayOp));
53+
var collection = new IncrementalLoadingCollection<DataSource<int>, int>(source, pageSize);
5654

5755
var requests = new List<Task>();
5856

59-
for (int pageNum = 1; pageNum <= Pages; pageNum++)
57+
for (var pageNum = 1; pageNum <= pages; pageNum++)
6058
{
6159
requests.Add(collection.LoadMoreItemsAsync(0).AsTask()
6260
.ContinueWith(t => Assert.IsTrue(t.IsCompletedSuccessfully)));
6361
}
6462

6563
await Task.WhenAll(requests);
6664

67-
CollectionAssert.AreEqual(AllData, collection);
65+
CollectionAssert.AreEqual(allData, collection);
6866
}
6967

7068
[TestMethod]
71-
public async Task FirstRequestFails()
69+
[DataRow(5, 5)]
70+
[DataRow(20, 5)]
71+
public async Task FirstRequestFails(int pageSize, int pages)
7272
{
73-
var source = new DataSource<int>(AllData, DataSource<int>.ThrowException);
74-
var collection = new IncrementalLoadingCollection<DataSource<int>, int>(source, PageSize);
73+
var allData = Enumerable.Range(0, pages * pageSize).ToArray();
74+
var source = new DataSource<int>(allData, DataSource<int>.ThrowException);
75+
var collection = new IncrementalLoadingCollection<DataSource<int>, int>(source, pageSize);
7576

7677
await Assert.ThrowsExceptionAsync<AggregateException>(collection.LoadMoreItemsAsync(0).AsTask);
7778

7879
Assert.IsTrue(!collection.Any());
7980

8081
var requests = new List<Task>();
8182

82-
for (int pageNum = 1; pageNum <= Pages; pageNum++)
83+
for (var pageNum = 1; pageNum <= pages; pageNum++)
8384
{
8485
requests.Add(collection.LoadMoreItemsAsync(0).AsTask()
8586
.ContinueWith(t => Assert.IsTrue(t.IsCompletedSuccessfully)));
8687
}
8788

8889
await Task.WhenAll(requests);
8990

90-
CollectionAssert.AreEqual(AllData, collection);
91+
CollectionAssert.AreEqual(allData, collection);
9192
}
9293

9394
[TestMethod]
94-
public async Task EveryOtherRequestFails()
95+
[DataRow(5, 5)]
96+
[DataRow(20, 5)]
97+
public async Task EveryOtherRequestFails(int pageSize, int pages)
9598
{
96-
var source = new DataSource<int>(AllData, FailPassSequence);
97-
var collection = new IncrementalLoadingCollection<DataSource<int>, int>(source, PageSize);
99+
var allData = Enumerable.Range(0, pages * pageSize).ToArray();
100+
var source = new DataSource<int>(allData, FailPassSequence);
101+
var collection = new IncrementalLoadingCollection<DataSource<int>, int>(source, pageSize);
98102

99103
var willFail = true;
100-
for (int submitedRequests = 0; submitedRequests < Pages * 2; submitedRequests++)
104+
for (var submitedRequests = 0; submitedRequests < pages * 2; submitedRequests++)
101105
{
102106
if (willFail)
103107
{
@@ -111,19 +115,22 @@ public async Task EveryOtherRequestFails()
111115
willFail = !willFail;
112116
}
113117

114-
CollectionAssert.AreEqual(AllData, collection);
118+
CollectionAssert.AreEqual(allData, collection);
115119
}
116120

117121
[TestMethod]
118-
public async Task EveryOtherRequestFailsAsync()
122+
[DataRow(5, 5)]
123+
[DataRow(20, 5)]
124+
public async Task EveryOtherRequestFailsAsync(int pageSize, int pages)
119125
{
120-
var source = new DataSource<int>(AllData, FailPassSequence);
121-
var collection = new IncrementalLoadingCollection<DataSource<int>, int>(source, PageSize);
126+
var allData = Enumerable.Range(0, pages * pageSize).ToArray();
127+
var source = new DataSource<int>(allData, FailPassSequence);
128+
var collection = new IncrementalLoadingCollection<DataSource<int>, int>(source, pageSize);
122129

123130
var requests = new List<Task>();
124131

125132
var willFail = true;
126-
for (int submitedRequests = 0; submitedRequests < Pages * 2; submitedRequests++)
133+
for (var submitedRequests = 0; submitedRequests < pages * 2; submitedRequests++)
127134
{
128135
if (willFail)
129136
{
@@ -139,7 +146,7 @@ public async Task EveryOtherRequestFailsAsync()
139146

140147
await Task.WhenAll(requests);
141148

142-
CollectionAssert.AreEqual(AllData, collection);
149+
CollectionAssert.AreEqual(allData, collection);
143150
}
144151
}
145152
}

0 commit comments

Comments
 (0)