@@ -83,6 +83,81 @@ public void GetWorkItems_ByIds_Succeeds()
83
83
Assert . Contains ( wis , ( x ) => x . Id . Value == 99 ) ;
84
84
}
85
85
86
+ List < WorkItem > GenerateWorkItems ( int startId , int count = 200 )
87
+ {
88
+ return Enumerable
89
+ . Range ( startId , count )
90
+ . Select ( i => new WorkItem
91
+ {
92
+ Id = i ,
93
+ Fields = new Dictionary < string , object > ( )
94
+ } ) . ToList ( ) ;
95
+ }
96
+
97
+ [ Fact ]
98
+ public void GetWorkItems_ByIds_LessThan200_Succeeds ( )
99
+ {
100
+ witClient . GetWorkItemsAsync ( Arg . Any < IEnumerable < int > > ( ) , expand : WorkItemExpand . All )
101
+ . Returns (
102
+ GenerateWorkItems ( 1 , 199 )
103
+ ) ;
104
+ var ids = Enumerable . Range ( 1 , 199 ) . ToArray ( ) ;
105
+
106
+ var context = new EngineContext ( clientsContext , clientsContext . ProjectId , clientsContext . ProjectName , logger , new RuleSettings ( ) ) ;
107
+ var sut = new WorkItemStore ( context ) ;
108
+
109
+ var wis = sut . GetWorkItems ( ids ) ;
110
+
111
+ Assert . NotEmpty ( wis ) ;
112
+ Assert . Equal ( ids . Length , wis . Count ) ;
113
+ Assert . Contains ( wis , ( x ) => x . Id . Value == 42 ) ;
114
+ Assert . Contains ( wis , ( x ) => x . Id . Value == 199 ) ;
115
+ }
116
+
117
+ [ Fact ]
118
+ public void GetWorkItems_ByIds_MoreThan200_Succeeds ( )
119
+ {
120
+ witClient . GetWorkItemsAsync ( Arg . Any < IEnumerable < int > > ( ) , expand : WorkItemExpand . All )
121
+ . Returns (
122
+ GenerateWorkItems ( 1 , 200 ) ,
123
+ GenerateWorkItems ( 201 , 150 )
124
+ ) ;
125
+ var ids = Enumerable . Range ( 1 , 350 ) . ToArray ( ) ;
126
+
127
+ var context = new EngineContext ( clientsContext , clientsContext . ProjectId , clientsContext . ProjectName , logger , new RuleSettings ( ) ) ;
128
+ var sut = new WorkItemStore ( context ) ;
129
+
130
+ var wis = sut . GetWorkItems ( ids ) ;
131
+
132
+ Assert . NotEmpty ( wis ) ;
133
+ Assert . Equal ( ids . Length , wis . Count ) ;
134
+ Assert . Contains ( wis , ( x ) => x . Id . Value == 42 ) ;
135
+ Assert . Contains ( wis , ( x ) => x . Id . Value == 299 ) ;
136
+ }
137
+
138
+ [ Fact ]
139
+ public void GetWorkItems_ByIds_MoreThan400_Succeeds ( )
140
+ {
141
+ witClient . GetWorkItemsAsync ( Arg . Any < IEnumerable < int > > ( ) , expand : WorkItemExpand . All )
142
+ . Returns (
143
+ GenerateWorkItems ( 1 , 200 ) ,
144
+ GenerateWorkItems ( 201 , 200 ) ,
145
+ GenerateWorkItems ( 401 , 33 )
146
+ ) ;
147
+ var ids = Enumerable . Range ( 1 , 433 ) . ToArray ( ) ;
148
+
149
+ var context = new EngineContext ( clientsContext , clientsContext . ProjectId , clientsContext . ProjectName , logger , new RuleSettings ( ) ) ;
150
+ var sut = new WorkItemStore ( context ) ;
151
+
152
+ var wis = sut . GetWorkItems ( ids ) ;
153
+
154
+ Assert . NotEmpty ( wis ) ;
155
+ Assert . Equal ( ids . Length , wis . Count ) ;
156
+ Assert . Contains ( wis , ( x ) => x . Id . Value == 42 ) ;
157
+ Assert . Contains ( wis , ( x ) => x . Id . Value == 299 ) ;
158
+ Assert . Contains ( wis , ( x ) => x . Id . Value == 410 ) ;
159
+ }
160
+
86
161
[ Fact ]
87
162
public async Task NewWorkItem_Succeeds ( )
88
163
{
0 commit comments