@@ -134,6 +134,49 @@ - (void)testListenUnlistenRelistenSequenceOfMirrorQueries {
134
134
XCTAssertEqualObjects (FIRQuerySnapshotGetData (snapshot), expected);
135
135
}
136
136
137
+ - (void )testLimitToLastQueriesWithCursors {
138
+ FIRCollectionReference *collRef = [self collectionRefWithDocuments: @{
139
+ @" a" : @{@" k" : @" a" , @" sort" : @0 },
140
+ @" b" : @{@" k" : @" b" , @" sort" : @1 },
141
+ @" c" : @{@" k" : @" c" , @" sort" : @1 },
142
+ @" d" : @{@" k" : @" d" , @" sort" : @2 },
143
+ }];
144
+
145
+ FIRQuerySnapshot *snapshot =
146
+ [self readDocumentSetForRef: [[[collRef queryOrderedByField: @" sort" ] queryLimitedToLast: 3 ]
147
+ queryEndingBeforeValues: @[ @2 ]]];
148
+ XCTAssertEqualObjects (
149
+ FIRQuerySnapshotGetData (snapshot), (@[
150
+ @{@" k" : @" a" , @" sort" : @0 }, @{@" k" : @" b" , @" sort" : @1 }, @{@" k" : @" c" , @" sort" : @1 }
151
+ ]));
152
+
153
+ snapshot = [self readDocumentSetForRef: [[[collRef queryOrderedByField: @" sort" ]
154
+ queryLimitedToLast: 3 ] queryEndingAtValues: @[ @1 ]]];
155
+ XCTAssertEqualObjects (
156
+ FIRQuerySnapshotGetData (snapshot), (@[
157
+ @{@" k" : @" a" , @" sort" : @0 }, @{@" k" : @" b" , @" sort" : @1 }, @{@" k" : @" c" , @" sort" : @1 }
158
+ ]));
159
+
160
+ snapshot = [self readDocumentSetForRef: [[[collRef queryOrderedByField: @" sort" ]
161
+ queryLimitedToLast: 3 ] queryStartingAtValues: @[ @2 ]]];
162
+ XCTAssertEqualObjects (FIRQuerySnapshotGetData (snapshot), (@[ @{@" k" : @" d" , @" sort" : @2 } ]));
163
+ snapshot =
164
+ [self readDocumentSetForRef: [[[collRef queryOrderedByField: @" sort" ] queryLimitedToLast: 3 ]
165
+ queryStartingAfterValues: @[ @0 ]]];
166
+ XCTAssertEqualObjects (
167
+ FIRQuerySnapshotGetData (snapshot), (@[
168
+ @{@" k" : @" b" , @" sort" : @1 }, @{@" k" : @" c" , @" sort" : @1 }, @{@" k" : @" d" , @" sort" : @2 }
169
+ ]));
170
+
171
+ snapshot =
172
+ [self readDocumentSetForRef: [[[collRef queryOrderedByField: @" sort" ] queryLimitedToLast: 3 ]
173
+ queryStartingAfterValues: @[ @-1 ]]];
174
+ XCTAssertEqualObjects (
175
+ FIRQuerySnapshotGetData (snapshot), (@[
176
+ @{@" k" : @" b" , @" sort" : @1 }, @{@" k" : @" c" , @" sort" : @1 }, @{@" k" : @" d" , @" sort" : @2 }
177
+ ]));
178
+ }
179
+
137
180
- (void )testKeyOrderIsDescendingForDescendingInequality {
138
181
FIRCollectionReference *collRef = [self collectionRefWithDocuments: @{
139
182
@" a" : @{@" foo" : @42 },
0 commit comments