@@ -239,11 +239,148 @@ class FirebaseFirestoreTest {
239
239
240
240
val lastDocumentSnapshot = firstPage.lastOrNull()
241
241
assertNotNull(lastDocumentSnapshot)
242
- val secondPage = query.startAfter(lastDocumentSnapshot).limit(2 ).get().documents // Second 2 results (only one left)
242
+
243
+ val secondPage = query.startAfter(lastDocumentSnapshot).get().documents
243
244
assertEquals(1 , secondPage.size)
244
245
assertEquals(" ccc" , secondPage[0 ].get(" prop1" ))
245
246
}
246
247
248
+ @Test
249
+ fun testStartAfterFieldValues () = runTest {
250
+ setupFirestoreData()
251
+ val query = Firebase .firestore
252
+ .collection(" testFirestoreQuerying" )
253
+ .orderBy(" prop1" , Direction .ASCENDING )
254
+
255
+ val firstPage = query.get().documents
256
+ assertEquals(3 , firstPage.size)
257
+ assertEquals(" aaa" , firstPage[0 ].get(" prop1" ))
258
+ assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
259
+ assertEquals(" ccc" , firstPage[2 ].get(" prop1" ))
260
+
261
+ val secondPage = query.startAfter(" bbb" ).get().documents
262
+ assertEquals(1 , secondPage.size)
263
+ assertEquals(" ccc" , secondPage[0 ].get(" prop1" ))
264
+ }
265
+
266
+ @Test
267
+ fun testStartAtDocumentSnapshot () = runTest {
268
+ setupFirestoreData()
269
+ val query = Firebase .firestore
270
+ .collection(" testFirestoreQuerying" )
271
+ .orderBy(" prop1" , Direction .ASCENDING )
272
+
273
+ val firstPage = query.limit(2 ).get().documents // First 2 results
274
+ assertEquals(2 , firstPage.size)
275
+ assertEquals(" aaa" , firstPage[0 ].get(" prop1" ))
276
+ assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
277
+
278
+ val lastDocumentSnapshot = firstPage.lastOrNull()
279
+ assertNotNull(lastDocumentSnapshot)
280
+
281
+ val secondPage = query.startAt(lastDocumentSnapshot).get().documents
282
+ assertEquals(2 , secondPage.size)
283
+ assertEquals(" bbb" , secondPage[0 ].get(" prop1" ))
284
+ assertEquals(" ccc" , secondPage[1 ].get(" prop1" ))
285
+ }
286
+
287
+ @Test
288
+ fun testStartAtFieldValues () = runTest {
289
+ setupFirestoreData()
290
+ val query = Firebase .firestore
291
+ .collection(" testFirestoreQuerying" )
292
+ .orderBy(" prop1" , Direction .ASCENDING )
293
+
294
+ val firstPage = query.get().documents // First 2 results
295
+ assertEquals(3 , firstPage.size)
296
+ assertEquals(" aaa" , firstPage[0 ].get(" prop1" ))
297
+ assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
298
+ assertEquals(" ccc" , firstPage[2 ].get(" prop1" ))
299
+
300
+ val secondPage = query.startAt(" bbb" ).get().documents
301
+ assertEquals(2 , secondPage.size)
302
+ assertEquals(" bbb" , secondPage[0 ].get(" prop1" ))
303
+ assertEquals(" ccc" , secondPage[1 ].get(" prop1" ))
304
+ }
305
+
306
+ @Test
307
+ fun testEndBeforeDocumentSnapshot () = runTest {
308
+ setupFirestoreData()
309
+ val query = Firebase .firestore
310
+ .collection(" testFirestoreQuerying" )
311
+ .orderBy(" prop1" , Direction .ASCENDING )
312
+
313
+ val firstPage = query.limit(2 ).get().documents // First 2 results
314
+ assertEquals(2 , firstPage.size)
315
+ assertEquals(" aaa" , firstPage[0 ].get(" prop1" ))
316
+ assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
317
+
318
+ val lastDocumentSnapshot = firstPage.lastOrNull()
319
+ assertNotNull(lastDocumentSnapshot)
320
+
321
+ val secondPage = query.endBefore(lastDocumentSnapshot).get().documents
322
+ assertEquals(1 , secondPage.size)
323
+ assertEquals(" aaa" , secondPage[0 ].get(" prop1" ))
324
+ }
325
+
326
+ @Test
327
+ fun testEndBeforeFieldValues () = runTest {
328
+ setupFirestoreData()
329
+ val query = Firebase .firestore
330
+ .collection(" testFirestoreQuerying" )
331
+ .orderBy(" prop1" , Direction .ASCENDING )
332
+
333
+ val firstPage = query.get().documents
334
+ assertEquals(3 , firstPage.size)
335
+ assertEquals(" aaa" , firstPage[0 ].get(" prop1" ))
336
+ assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
337
+ assertEquals(" ccc" , firstPage[2 ].get(" prop1" ))
338
+
339
+ val secondPage = query.endBefore(" bbb" ).get().documents
340
+ assertEquals(1 , secondPage.size)
341
+ assertEquals(" aaa" , secondPage[0 ].get(" prop1" ))
342
+ }
343
+
344
+ @Test
345
+ fun testEndAtDocumentSnapshot () = runTest {
346
+ setupFirestoreData()
347
+ val query = Firebase .firestore
348
+ .collection(" testFirestoreQuerying" )
349
+ .orderBy(" prop1" , Direction .ASCENDING )
350
+
351
+ val firstPage = query.limit(2 ).get().documents // First 2 results
352
+ assertEquals(2 , firstPage.size)
353
+ assertEquals(" aaa" , firstPage[0 ].get(" prop1" ))
354
+ assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
355
+
356
+ val lastDocumentSnapshot = firstPage.lastOrNull()
357
+ assertNotNull(lastDocumentSnapshot)
358
+
359
+ val secondPage = query.endAt(lastDocumentSnapshot).get().documents
360
+ assertEquals(2 , secondPage.size)
361
+ assertEquals(" aaa" , secondPage[0 ].get(" prop1" ))
362
+ assertEquals(" bbb" , secondPage[1 ].get(" prop1" ))
363
+ }
364
+
365
+ @Test
366
+ fun testEndAtFieldValues () = runTest {
367
+ setupFirestoreData()
368
+ val query = Firebase .firestore
369
+ .collection(" testFirestoreQuerying" )
370
+ .orderBy(" prop1" , Direction .ASCENDING )
371
+
372
+ val firstPage = query.get().documents // First 2 results
373
+ assertEquals(3 , firstPage.size)
374
+ assertEquals(" aaa" , firstPage[0 ].get(" prop1" ))
375
+ assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
376
+ assertEquals(" ccc" , firstPage[2 ].get(" prop1" ))
377
+
378
+ val secondPage = query.endAt(" bbb" ).get().documents
379
+ assertEquals(2 , secondPage.size)
380
+ assertEquals(" aaa" , secondPage[0 ].get(" prop1" ))
381
+ assertEquals(" bbb" , secondPage[1 ].get(" prop1" ))
382
+ }
383
+
247
384
@Test
248
385
fun testIncrementFieldValue () = runTest {
249
386
val doc = Firebase .firestore
0 commit comments