@@ -15,9 +15,6 @@ namespace UnitTests.UI
15
15
[ TestClass ]
16
16
public class Test_IncrementalLoadingCollection
17
17
{
18
- private const int PageSize = 20 ;
19
- private const int Pages = 5 ;
20
-
21
18
private static readonly DataSource < int > . PageOperation [ ] FailPassSequence
22
19
= new DataSource < int > . PageOperation [ ]
23
20
{
@@ -28,76 +25,83 @@ private static readonly DataSource<int>.PageOperation[] FailPassSequence
28
25
DataSource < int > . ThrowException , DataSource < int > . PassThrough ,
29
26
} ;
30
27
31
- private static readonly int [ ] AllData
32
- = Enumerable . Range ( 0 , Pages * PageSize ) . ToArray ( ) ;
33
-
34
- [ DataRow ]
35
- [ DataRow ( 2500 , 1000 , 1000 , 1000 , 1000 ) ]
36
28
[ 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 )
38
33
{
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 ) ;
41
37
42
- for ( int pageNum = 1 ; pageNum <= Pages ; pageNum ++ )
38
+ for ( var pageNum = 1 ; pageNum <= pages ; pageNum ++ )
43
39
{
44
40
await collection . LoadMoreItemsAsync ( 0 ) ;
45
- CollectionAssert . AreEqual ( Enumerable . Range ( 0 , PageSize * pageNum ) . ToArray ( ) , collection ) ;
41
+ CollectionAssert . AreEqual ( Enumerable . Range ( 0 , pageSize * pageNum ) . ToArray ( ) , collection ) ;
46
42
}
47
43
}
48
44
49
- [ DataRow ]
50
- [ DataRow ( 2500 , 1000 , 1000 , 1000 , 1000 ) ]
51
45
[ 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 )
53
50
{
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 ) ;
56
54
57
55
var requests = new List < Task > ( ) ;
58
56
59
- for ( int pageNum = 1 ; pageNum <= Pages ; pageNum ++ )
57
+ for ( var pageNum = 1 ; pageNum <= pages ; pageNum ++ )
60
58
{
61
59
requests . Add ( collection . LoadMoreItemsAsync ( 0 ) . AsTask ( )
62
60
. ContinueWith ( t => Assert . IsTrue ( t . IsCompletedSuccessfully ) ) ) ;
63
61
}
64
62
65
63
await Task . WhenAll ( requests ) ;
66
64
67
- CollectionAssert . AreEqual ( AllData , collection ) ;
65
+ CollectionAssert . AreEqual ( allData , collection ) ;
68
66
}
69
67
70
68
[ TestMethod ]
71
- public async Task FirstRequestFails ( )
69
+ [ DataRow ( 5 , 5 ) ]
70
+ [ DataRow ( 20 , 5 ) ]
71
+ public async Task FirstRequestFails ( int pageSize , int pages )
72
72
{
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 ) ;
75
76
76
77
await Assert . ThrowsExceptionAsync < AggregateException > ( collection . LoadMoreItemsAsync ( 0 ) . AsTask ) ;
77
78
78
79
Assert . IsTrue ( ! collection . Any ( ) ) ;
79
80
80
81
var requests = new List < Task > ( ) ;
81
82
82
- for ( int pageNum = 1 ; pageNum <= Pages ; pageNum ++ )
83
+ for ( var pageNum = 1 ; pageNum <= pages ; pageNum ++ )
83
84
{
84
85
requests . Add ( collection . LoadMoreItemsAsync ( 0 ) . AsTask ( )
85
86
. ContinueWith ( t => Assert . IsTrue ( t . IsCompletedSuccessfully ) ) ) ;
86
87
}
87
88
88
89
await Task . WhenAll ( requests ) ;
89
90
90
- CollectionAssert . AreEqual ( AllData , collection ) ;
91
+ CollectionAssert . AreEqual ( allData , collection ) ;
91
92
}
92
93
93
94
[ TestMethod ]
94
- public async Task EveryOtherRequestFails ( )
95
+ [ DataRow ( 5 , 5 ) ]
96
+ [ DataRow ( 20 , 5 ) ]
97
+ public async Task EveryOtherRequestFails ( int pageSize , int pages )
95
98
{
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 ) ;
98
102
99
103
var willFail = true ;
100
- for ( int submitedRequests = 0 ; submitedRequests < Pages * 2 ; submitedRequests ++ )
104
+ for ( var submitedRequests = 0 ; submitedRequests < pages * 2 ; submitedRequests ++ )
101
105
{
102
106
if ( willFail )
103
107
{
@@ -111,19 +115,22 @@ public async Task EveryOtherRequestFails()
111
115
willFail = ! willFail ;
112
116
}
113
117
114
- CollectionAssert . AreEqual ( AllData , collection ) ;
118
+ CollectionAssert . AreEqual ( allData , collection ) ;
115
119
}
116
120
117
121
[ TestMethod ]
118
- public async Task EveryOtherRequestFailsAsync ( )
122
+ [ DataRow ( 5 , 5 ) ]
123
+ [ DataRow ( 20 , 5 ) ]
124
+ public async Task EveryOtherRequestFailsAsync ( int pageSize , int pages )
119
125
{
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 ) ;
122
129
123
130
var requests = new List < Task > ( ) ;
124
131
125
132
var willFail = true ;
126
- for ( int submitedRequests = 0 ; submitedRequests < Pages * 2 ; submitedRequests ++ )
133
+ for ( var submitedRequests = 0 ; submitedRequests < pages * 2 ; submitedRequests ++ )
127
134
{
128
135
if ( willFail )
129
136
{
@@ -139,7 +146,7 @@ public async Task EveryOtherRequestFailsAsync()
139
146
140
147
await Task . WhenAll ( requests ) ;
141
148
142
- CollectionAssert . AreEqual ( AllData , collection ) ;
149
+ CollectionAssert . AreEqual ( allData , collection ) ;
143
150
}
144
151
}
145
152
}
0 commit comments