@@ -253,7 +253,7 @@ class FirebaseFirestoreTest {
253253 assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
254254 assertEquals(" ccc" , firstPage[2 ].get(" prop1" ))
255255
256- val secondPage = query.startAfter(listOf ( " bbb" ) ).get().documents
256+ val secondPage = query.startAfter(" bbb" ).get().documents
257257 assertEquals(1 , secondPage.size)
258258 assertEquals(" ccc" , secondPage[0 ].get(" prop1" ))
259259 }
@@ -292,12 +292,90 @@ class FirebaseFirestoreTest {
292292 assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
293293 assertEquals(" ccc" , firstPage[2 ].get(" prop1" ))
294294
295- val secondPage = query.startAt(listOf ( " bbb" ) ).get().documents
295+ val secondPage = query.startAt(" bbb" ).get().documents
296296 assertEquals(2 , secondPage.size)
297297 assertEquals(" bbb" , secondPage[0 ].get(" prop1" ))
298298 assertEquals(" ccc" , secondPage[1 ].get(" prop1" ))
299299 }
300300
301+ @Test
302+ fun testEndBeforeDocumentSnapshot () = runTest {
303+ setupFirestoreData()
304+ val query = Firebase .firestore
305+ .collection(" testFirestoreQuerying" )
306+ .orderBy(" prop1" , Direction .ASCENDING )
307+
308+ val firstPage = query.limit(2 ).get().documents // First 2 results
309+ assertEquals(2 , firstPage.size)
310+ assertEquals(" aaa" , firstPage[0 ].get(" prop1" ))
311+ assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
312+
313+ val lastDocumentSnapshot = firstPage.lastOrNull()
314+ assertNotNull(lastDocumentSnapshot)
315+
316+ val secondPage = query.endBefore(lastDocumentSnapshot).get().documents
317+ assertEquals(1 , secondPage.size)
318+ assertEquals(" aaa" , secondPage[0 ].get(" prop1" ))
319+ }
320+
321+ @Test
322+ fun testEndBeforeFieldValues () = runTest {
323+ setupFirestoreData()
324+ val query = Firebase .firestore
325+ .collection(" testFirestoreQuerying" )
326+ .orderBy(" prop1" , Direction .ASCENDING )
327+
328+ val firstPage = query.get().documents
329+ assertEquals(3 , firstPage.size)
330+ assertEquals(" aaa" , firstPage[0 ].get(" prop1" ))
331+ assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
332+ assertEquals(" ccc" , firstPage[2 ].get(" prop1" ))
333+
334+ val secondPage = query.endBefore(" bbb" ).get().documents
335+ assertEquals(1 , secondPage.size)
336+ assertEquals(" aaa" , secondPage[0 ].get(" prop1" ))
337+ }
338+
339+ @Test
340+ fun testEndAtDocumentSnapshot () = runTest {
341+ setupFirestoreData()
342+ val query = Firebase .firestore
343+ .collection(" testFirestoreQuerying" )
344+ .orderBy(" prop1" , Direction .ASCENDING )
345+
346+ val firstPage = query.limit(2 ).get().documents // First 2 results
347+ assertEquals(2 , firstPage.size)
348+ assertEquals(" aaa" , firstPage[0 ].get(" prop1" ))
349+ assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
350+
351+ val lastDocumentSnapshot = firstPage.lastOrNull()
352+ assertNotNull(lastDocumentSnapshot)
353+
354+ val secondPage = query.endAt(lastDocumentSnapshot).get().documents
355+ assertEquals(2 , secondPage.size)
356+ assertEquals(" aaa" , secondPage[0 ].get(" prop1" ))
357+ assertEquals(" bbb" , secondPage[1 ].get(" prop1" ))
358+ }
359+
360+ @Test
361+ fun testEndAtFieldValues () = runTest {
362+ setupFirestoreData()
363+ val query = Firebase .firestore
364+ .collection(" testFirestoreQuerying" )
365+ .orderBy(" prop1" , Direction .ASCENDING )
366+
367+ val firstPage = query.get().documents // First 2 results
368+ assertEquals(3 , firstPage.size)
369+ assertEquals(" aaa" , firstPage[0 ].get(" prop1" ))
370+ assertEquals(" bbb" , firstPage[1 ].get(" prop1" ))
371+ assertEquals(" ccc" , firstPage[2 ].get(" prop1" ))
372+
373+ val secondPage = query.endAt(" bbb" ).get().documents
374+ assertEquals(2 , secondPage.size)
375+ assertEquals(" aaa" , secondPage[0 ].get(" prop1" ))
376+ assertEquals(" bbb" , secondPage[1 ].get(" prop1" ))
377+ }
378+
301379 @Test
302380 fun testIncrementFieldValue () = runTest {
303381 val doc = Firebase .firestore
0 commit comments