@@ -133,6 +133,54 @@ public void pagedByPage() {
133
133
Truth .assertThat (requestCapture .getAllValues ()).containsExactly (0 , 2 , 4 ).inOrder ();
134
134
}
135
135
136
+ @ Test
137
+ public void streamValues_streamIsCorrectPerPage () {
138
+ ArgumentCaptor <Integer > requestCapture = ArgumentCaptor .forClass (Integer .class );
139
+ Mockito .when (callIntList .futureCall (requestCapture .capture (), Mockito .any ()))
140
+ .thenReturn (ApiFutures .immediateFuture (Arrays .asList (0 , 1 , 2 )))
141
+ .thenReturn (ApiFutures .immediateFuture (Arrays .asList (3 , 4 )))
142
+ .thenReturn (ApiFutures .immediateFuture (Collections .emptyList ()));
143
+
144
+ Page <Integer > page =
145
+ FakeCallableFactory .createPagedCallable (
146
+ callIntList ,
147
+ PagedCallSettings .newBuilder (new ListIntegersPagedResponseFactory ()).build (),
148
+ clientContext )
149
+ .call (0 )
150
+ .getPage ();
151
+
152
+ Truth .assertThat (page .streamValues ().count ()).isEqualTo (3 );
153
+ Truth .assertThat (page .hasNextPage ()).isTrue ();
154
+
155
+ page = page .getNextPage ();
156
+ Truth .assertThat (page .streamValues ().count ()).isEqualTo (2 );
157
+ Truth .assertThat (page .hasNextPage ()).isTrue ();
158
+
159
+ page = page .getNextPage ();
160
+ Truth .assertThat (page .streamValues ().count ()).isEqualTo (0 );
161
+ Truth .assertThat (page .hasNextPage ()).isFalse ();
162
+ Truth .assertThat (page .getNextPage ()).isNull ();
163
+ }
164
+
165
+ @ Test
166
+ public void streamAll_streamIsCorrectInAllPages () {
167
+ ArgumentCaptor <Integer > requestCapture = ArgumentCaptor .forClass (Integer .class );
168
+ Mockito .when (callIntList .futureCall (requestCapture .capture (), Mockito .any ()))
169
+ .thenReturn (ApiFutures .immediateFuture (Arrays .asList (0 , 1 , 2 )))
170
+ .thenReturn (ApiFutures .immediateFuture (Arrays .asList (3 , 4 )))
171
+ .thenReturn (ApiFutures .immediateFuture (Collections .emptyList ()));
172
+
173
+ Page <Integer > page =
174
+ FakeCallableFactory .createPagedCallable (
175
+ callIntList ,
176
+ PagedCallSettings .newBuilder (new ListIntegersPagedResponseFactory ()).build (),
177
+ clientContext )
178
+ .call (0 )
179
+ .getPage ();
180
+
181
+ Truth .assertThat (page .streamAll ().count ()).isEqualTo (5 );
182
+ }
183
+
136
184
@ Test
137
185
public void pagedByFixedSizeCollection () {
138
186
ArgumentCaptor <Integer > requestCapture = ArgumentCaptor .forClass (Integer .class );
0 commit comments