@@ -94,6 +94,25 @@ class BundleTest : public FirestoreIntegrationTest {
94
94
MapFieldValue{{" k" , FieldValue::String (" b" )},
95
95
{" bar" , FieldValue::Integer (2 )}}));
96
96
}
97
+
98
+ {
99
+ Query limit = AwaitResult (db->NamedQuery (kLimitQueryName ));
100
+ auto limit_snapshot = AwaitResult (limit.Get (Source::kCache ));
101
+ EXPECT_THAT (
102
+ QuerySnapshotToValues (limit_snapshot),
103
+ testing::ElementsAre (MapFieldValue{{" k" , FieldValue::String (" b" )},
104
+ {" bar" , FieldValue::Integer (2 )}}));
105
+ }
106
+
107
+ {
108
+ Query limit_to_last = AwaitResult (db->NamedQuery (kLimitToLastQueryName ));
109
+ auto limit_to_last_snapshot =
110
+ AwaitResult (limit_to_last.Get (Source::kCache ));
111
+ EXPECT_THAT (
112
+ QuerySnapshotToValues (limit_to_last_snapshot),
113
+ testing::ElementsAre (MapFieldValue{{" k" , FieldValue::String (" a" )},
114
+ {" bar" , FieldValue::Integer (1 )}}));
115
+ }
97
116
}
98
117
};
99
118
@@ -240,6 +259,21 @@ TEST_F(BundleTest, LoadBundleWithDocumentsAlreadyPulledFromBackend) {
240
259
testing::ElementsAre (
241
260
MapFieldValue{{" bar" , FieldValue::String (" newValueA" )}},
242
261
MapFieldValue{{" bar" , FieldValue::String (" newValueB" )}}));
262
+
263
+ {
264
+ Query limit = AwaitResult (db->NamedQuery (kLimitQueryName ));
265
+ EXPECT_THAT (QuerySnapshotToValues (AwaitResult (limit.Get (Source::kCache ))),
266
+ testing::ElementsAre (
267
+ MapFieldValue{{" bar" , FieldValue::String (" newValueB" )}}));
268
+ }
269
+
270
+ {
271
+ Query limit_to_last = AwaitResult (db->NamedQuery (kLimitToLastQueryName ));
272
+ EXPECT_THAT (
273
+ QuerySnapshotToValues (AwaitResult (limit_to_last.Get (Source::kCache ))),
274
+ testing::ElementsAre (
275
+ MapFieldValue{{" bar" , FieldValue::String (" newValueA" )}}));
276
+ }
243
277
}
244
278
245
279
TEST_F (BundleTest, LoadedDocumentsShouldNotBeGarbageCollectedRightAway) {
@@ -282,6 +316,28 @@ TEST_F(BundleTest, LoadDocumentsFromOtherProjectsShouldFail) {
282
316
VerifyErrorProgress (progresses[1 ]);
283
317
}
284
318
319
+ TEST_F (BundleTest, GetInvalidNamedQuery) {
320
+ Firestore* db = TestFirestore ();
321
+ {
322
+ auto future = db->NamedQuery (" DOES_NOT_EXIST" );
323
+ Await (future);
324
+ EXPECT_EQ (future.status (), FutureStatus::kFutureStatusComplete );
325
+ EXPECT_EQ (future.error (), Error::kErrorNotFound );
326
+ }
327
+ {
328
+ auto future = db->NamedQuery (" " );
329
+ Await (future);
330
+ EXPECT_EQ (future.status (), FutureStatus::kFutureStatusComplete );
331
+ EXPECT_EQ (future.error (), Error::kErrorNotFound );
332
+ }
333
+ {
334
+ auto future = db->NamedQuery (" \xc3\x28 " );
335
+ Await (future);
336
+ EXPECT_EQ (future.status (), FutureStatus::kFutureStatusComplete );
337
+ EXPECT_EQ (future.error (), Error::kErrorNotFound );
338
+ }
339
+ }
340
+
285
341
} // namespace
286
342
} // namespace firestore
287
343
} // namespace firebase
0 commit comments