@@ -94,6 +94,25 @@ class BundleTest : public FirestoreIntegrationTest {
9494 MapFieldValue{{" k" , FieldValue::String (" b" )},
9595 {" bar" , FieldValue::Integer (2 )}}));
9696 }
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+ }
97116 }
98117};
99118
@@ -240,6 +259,21 @@ TEST_F(BundleTest, LoadBundleWithDocumentsAlreadyPulledFromBackend) {
240259 testing::ElementsAre (
241260 MapFieldValue{{" bar" , FieldValue::String (" newValueA" )}},
242261 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+ }
243277}
244278
245279TEST_F (BundleTest, LoadedDocumentsShouldNotBeGarbageCollectedRightAway) {
@@ -282,6 +316,28 @@ TEST_F(BundleTest, LoadDocumentsFromOtherProjectsShouldFail) {
282316 VerifyErrorProgress (progresses[1 ]);
283317}
284318
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+
285341} // namespace
286342} // namespace firestore
287343} // namespace firebase
0 commit comments