@@ -156,6 +156,50 @@ public void testListenUnlistenRelistenSequenceOfMirrorQueries() {
156
156
assertEquals (asList (map ("k" , "e" , "sort" , -1L ), map ("k" , "a" , "sort" , -2L )), data );
157
157
}
158
158
159
+ @ Test
160
+ public void testLimitToLastQueriesWithCursors () {
161
+ CollectionReference collection =
162
+ testCollectionWithDocs (
163
+ map (
164
+ "a" , map ("k" , "a" , "sort" , 0 ),
165
+ "b" , map ("k" , "b" , "sort" , 1 ),
166
+ "c" , map ("k" , "c" , "sort" , 1 ),
167
+ "d" , map ("k" , "d" , "sort" , 2 )));
168
+
169
+ Query query = collection .limitToLast (3 ).orderBy ("sort" ).endBefore (2 );
170
+ QuerySnapshot set = waitFor (query .get ());
171
+ List <Map <String , Object >> data = querySnapshotToValues (set );
172
+ assertEquals (
173
+ asList (map ("k" , "a" , "sort" , 0L ), map ("k" , "b" , "sort" , 1L ), map ("k" , "c" , "sort" , 1L )),
174
+ data );
175
+
176
+ query = collection .limitToLast (3 ).orderBy ("sort" ).endAt (1 );
177
+ set = waitFor (query .get ());
178
+ data = querySnapshotToValues (set );
179
+ assertEquals (
180
+ asList (map ("k" , "a" , "sort" , 0L ), map ("k" , "b" , "sort" , 1L ), map ("k" , "c" , "sort" , 1L )),
181
+ data );
182
+
183
+ query = collection .limitToLast (3 ).orderBy ("sort" ).startAt (2 );
184
+ set = waitFor (query .get ());
185
+ data = querySnapshotToValues (set );
186
+ assertEquals (asList (map ("k" , "d" , "sort" , 2L )), data );
187
+
188
+ query = collection .limitToLast (3 ).orderBy ("sort" ).startAfter (0 );
189
+ set = waitFor (query .get ());
190
+ data = querySnapshotToValues (set );
191
+ assertEquals (
192
+ asList (map ("k" , "b" , "sort" , 1L ), map ("k" , "c" , "sort" , 1L ), map ("k" , "d" , "sort" , 2L )),
193
+ data );
194
+
195
+ query = collection .limitToLast (3 ).orderBy ("sort" ).startAfter (-1 );
196
+ set = waitFor (query .get ());
197
+ data = querySnapshotToValues (set );
198
+ assertEquals (
199
+ asList (map ("k" , "b" , "sort" , 1L ), map ("k" , "c" , "sort" , 1L ), map ("k" , "d" , "sort" , 2L )),
200
+ data );
201
+ }
202
+
159
203
@ Test
160
204
public void testKeyOrderIsDescendingForDescendingInequality () {
161
205
CollectionReference collection =
0 commit comments