Skip to content

Commit f884cdb

Browse files
authored
firestore_test.cc: add assertions for snapshots existing (#1052)
1 parent eb8b88b commit f884cdb

File tree

1 file changed

+52
-8
lines changed

1 file changed

+52
-8
lines changed

firestore/integration_test_internal/src/firestore_test.cc

Lines changed: 52 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ TEST_F(FirestoreIntegrationTest, TestCanUpdateAnExistingDocument) {
121121
MapFieldValue{{"desc", FieldValue::String("NewDescription")},
122122
{"owner.email", FieldValue::String("[email protected]")}}));
123123
DocumentSnapshot doc = ReadDocument(document);
124+
EXPECT_TRUE(doc.exists());
124125
EXPECT_THAT(
125126
doc.GetData(),
126127
ContainerEq(MapFieldValue{
@@ -151,11 +152,13 @@ TEST_F(FirestoreIntegrationTest, TestCanUpdateAnUnknownDocument) {
151152
EXPECT_EQ(Error::kErrorUnavailable, future.error());
152153

153154
writer_snapshot = ReadDocument(writer_reference);
155+
EXPECT_TRUE(writer_snapshot.exists());
154156
EXPECT_THAT(writer_snapshot.GetData(),
155157
ContainerEq(MapFieldValue{{"a", FieldValue::String("a")},
156158
{"b", FieldValue::String("b")}}));
157159
EXPECT_FALSE(writer_snapshot.metadata().is_from_cache());
158160
DocumentSnapshot reader_snapshot = ReadDocument(reader_reference);
161+
EXPECT_TRUE(reader_snapshot.exists());
159162
EXPECT_THAT(reader_snapshot.GetData(),
160163
ContainerEq(MapFieldValue{{"a", FieldValue::String("a")},
161164
{"b", FieldValue::String("b")}}));
@@ -174,6 +177,7 @@ TEST_F(FirestoreIntegrationTest, TestCanOverwriteAnExistingDocumentUsingSet) {
174177
{"owner.data",
175178
FieldValue::Map({{"name", FieldValue::String("Sebastian")}})}}));
176179
DocumentSnapshot snapshot = ReadDocument(document);
180+
EXPECT_TRUE(snapshot.exists());
177181
EXPECT_THAT(
178182
snapshot.GetData(),
179183
ContainerEq(MapFieldValue{
@@ -197,6 +201,7 @@ TEST_F(FirestoreIntegrationTest,
197201
FieldValue::Map({{"name", FieldValue::String("Sebastian")}})}},
198202
SetOptions::Merge()));
199203
DocumentSnapshot snapshot = ReadDocument(document);
204+
EXPECT_TRUE(snapshot.exists());
200205
EXPECT_THAT(
201206
snapshot.GetData(),
202207
ContainerEq(MapFieldValue{
@@ -230,22 +235,27 @@ TEST_F(FirestoreIntegrationTest, TestCanMergeEmptyObject) {
230235

231236
document.Set(MapFieldValue{});
232237
DocumentSnapshot snapshot = accumulator.Await();
238+
EXPECT_TRUE(snapshot.exists());
233239
EXPECT_THAT(snapshot.GetData(), ContainerEq(MapFieldValue{}));
234240

235241
Await(document.Set(MapFieldValue{{"a", FieldValue::Map({})}},
236242
SetOptions::MergeFields({"a"})));
237243
snapshot = accumulator.Await();
244+
EXPECT_TRUE(snapshot.exists());
238245
EXPECT_THAT(snapshot.GetData(),
239246
ContainerEq(MapFieldValue{{"a", FieldValue::Map({})}}));
240247

241248
Await(document.Set(MapFieldValue{{"b", FieldValue::Map({})}},
242249
SetOptions::Merge()));
243250
snapshot = accumulator.Await();
251+
EXPECT_TRUE(snapshot.exists());
244252
EXPECT_THAT(snapshot.GetData(),
245253
ContainerEq(MapFieldValue{{"a", FieldValue::Map({})},
246254
{"b", FieldValue::Map({})}}));
247255

248-
snapshot = *Await(document.Get(Source::kServer));
256+
auto* snapshot_ptr = Await(document.Get(Source::kServer));
257+
ASSERT_TRUE(snapshot_ptr);
258+
snapshot = *snapshot_ptr;
249259
EXPECT_THAT(snapshot.GetData(),
250260
ContainerEq(MapFieldValue{{"a", FieldValue::Map({})},
251261
{"b", FieldValue::Map({})}}));
@@ -294,6 +304,7 @@ TEST_F(FirestoreIntegrationTest, TestCanDeleteFieldUsingMergeFields) {
294304
{"foo", FieldValue::Delete()}})}},
295305
SetOptions::MergeFields({"foo", "inner", "nested.foo"})));
296306
DocumentSnapshot snapshot = ReadDocument(document);
307+
EXPECT_TRUE(snapshot.exists());
297308
EXPECT_THAT(
298309
snapshot.GetData(),
299310
ContainerEq(MapFieldValue{
@@ -341,6 +352,7 @@ TEST_F(FirestoreIntegrationTest, TestMergeReplacesArrays) {
341352
{{"data", FieldValue::String("new")}})})}},
342353
SetOptions::Merge()));
343354
DocumentSnapshot snapshot = ReadDocument(document);
355+
EXPECT_TRUE(snapshot.exists());
344356
EXPECT_THAT(
345357
snapshot.GetData(),
346358
ContainerEq(MapFieldValue{
@@ -366,6 +378,7 @@ TEST_F(FirestoreIntegrationTest,
366378
{"email", FieldValue::String("[email protected]")}})}},
367379
SetOptions::MergeFieldPaths({{"desc"}, {"owner.data", "name"}})));
368380
DocumentSnapshot snapshot = ReadDocument(document);
381+
EXPECT_TRUE(snapshot.exists());
369382
EXPECT_THAT(
370383
snapshot.GetData(),
371384
ContainerEq(MapFieldValue{
@@ -405,6 +418,7 @@ TEST_F(FirestoreIntegrationTest, TestFieldsNotInFieldMaskAreIgnored) {
405418
{"owner", FieldValue::String("Sebastian")}},
406419
SetOptions::MergeFields({"desc"})));
407420
DocumentSnapshot snapshot = ReadDocument(document);
421+
EXPECT_TRUE(snapshot.exists());
408422
EXPECT_THAT(
409423
snapshot.GetData(),
410424
ContainerEq(MapFieldValue{
@@ -426,6 +440,7 @@ TEST_F(FirestoreIntegrationTest, TestFieldDeletesNotInFieldMaskAreIgnored) {
426440
{"owner", FieldValue::Delete()}},
427441
SetOptions::MergeFields({"desc"})));
428442
DocumentSnapshot snapshot = ReadDocument(document);
443+
EXPECT_TRUE(snapshot.exists());
429444
EXPECT_THAT(
430445
snapshot.GetData(),
431446
ContainerEq(MapFieldValue{
@@ -447,6 +462,7 @@ TEST_F(FirestoreIntegrationTest, TestFieldTransformsNotInFieldMaskAreIgnored) {
447462
{"owner", FieldValue::ServerTimestamp()}},
448463
SetOptions::MergeFields({"desc"})));
449464
DocumentSnapshot snapshot = ReadDocument(document);
465+
EXPECT_TRUE(snapshot.exists());
450466
EXPECT_THAT(
451467
snapshot.GetData(),
452468
ContainerEq(MapFieldValue{
@@ -467,6 +483,7 @@ TEST_F(FirestoreIntegrationTest, TestCanSetEmptyFieldMask) {
467483
MapFieldValue{{"desc", FieldValue::String("NewDescription")}},
468484
SetOptions::MergeFields({})));
469485
DocumentSnapshot snapshot = ReadDocument(document);
486+
EXPECT_TRUE(snapshot.exists());
470487
EXPECT_THAT(
471488
snapshot.GetData(),
472489
ContainerEq(MapFieldValue{
@@ -491,6 +508,7 @@ TEST_F(FirestoreIntegrationTest, TestCanSpecifyFieldsMultipleTimesInFieldMask) {
491508
{"email", FieldValue::String("[email protected]")}})}},
492509
SetOptions::MergeFields({"owner.name", "owner", "owner"})));
493510
DocumentSnapshot snapshot = ReadDocument(document);
511+
EXPECT_TRUE(snapshot.exists());
494512
EXPECT_THAT(
495513
snapshot.GetData(),
496514
ContainerEq(MapFieldValue{
@@ -509,6 +527,7 @@ TEST_F(FirestoreIntegrationTest, TestCanDeleteAFieldWithAnUpdate) {
509527
{"email", FieldValue::String("[email protected]")}})}}));
510528
Await(document.Update(MapFieldValue{{"owner.email", FieldValue::Delete()}}));
511529
DocumentSnapshot snapshot = ReadDocument(document);
530+
EXPECT_TRUE(snapshot.exists());
512531
EXPECT_THAT(snapshot.GetData(),
513532
ContainerEq(MapFieldValue{
514533
{"desc", FieldValue::String("Description")},
@@ -524,6 +543,7 @@ TEST_F(FirestoreIntegrationTest, TestCanUpdateFieldsWithDots) {
524543
Await(document.Update({{FieldPath{"a.b"}, FieldValue::String("new")}}));
525544
Await(document.Update({{FieldPath{"c.d"}, FieldValue::String("new")}}));
526545
DocumentSnapshot snapshot = ReadDocument(document);
546+
EXPECT_TRUE(snapshot.exists());
527547
EXPECT_THAT(snapshot.GetData(),
528548
ContainerEq(MapFieldValue{{"a.b", FieldValue::String("new")},
529549
{"c.d", FieldValue::String("new")},
@@ -539,6 +559,7 @@ TEST_F(FirestoreIntegrationTest, TestCanUpdateNestedFields) {
539559
Await(document.Update({{"a.b", FieldValue::String("new")}}));
540560
Await(document.Update({{"c.d", FieldValue::String("new")}}));
541561
DocumentSnapshot snapshot = ReadDocument(document);
562+
EXPECT_TRUE(snapshot.exists());
542563
EXPECT_THAT(snapshot.GetData(),
543564
ContainerEq(MapFieldValue{
544565
{"a", FieldValue::Map({{"b", FieldValue::String("new")}})},
@@ -559,6 +580,7 @@ TEST_F(FirestoreIntegrationTest, TestCanUpdateFieldsWithMultipleDeletes) {
559580
{FieldPath{"key3"}, FieldValue::Delete()},
560581
{FieldPath{"key5"}, FieldValue::Delete()}}));
561582
DocumentSnapshot snapshot = ReadDocument(document);
583+
EXPECT_TRUE(snapshot.exists());
562584
EXPECT_THAT(snapshot.GetData(), ContainerEq(MapFieldValue{
563585
{"key2", FieldValue::String("value2")},
564586
{"key4", FieldValue::String("value4")}}));
@@ -568,6 +590,7 @@ TEST_F(FirestoreIntegrationTest, TestDeleteDocument) {
568590
DocumentReference document = Collection("rooms").Document("eros");
569591
WriteDocument(document, MapFieldValue{{"value", FieldValue::String("bar")}});
570592
DocumentSnapshot snapshot = ReadDocument(document);
593+
EXPECT_TRUE(snapshot.exists());
571594
EXPECT_THAT(snapshot.GetData(),
572595
ContainerEq(MapFieldValue{{"value", FieldValue::String("bar")}}));
573596

@@ -605,6 +628,7 @@ TEST_F(FirestoreIntegrationTest,
605628
DocumentReference document = Collection("rooms").Document();
606629
Await(document.Set(MapFieldValue{{"foo", FieldValue::Double(1.0)}}));
607630
DocumentSnapshot snapshot = ReadDocument(document);
631+
EXPECT_TRUE(snapshot.exists());
608632
EXPECT_THAT(snapshot.GetData(),
609633
ContainerEq(MapFieldValue{{"foo", FieldValue::Double(1.0)}}));
610634
}
@@ -773,7 +797,9 @@ TEST_F(FirestoreIntegrationTest, TestListenCanBeCalledMultipleTimes) {
773797
});
774798
});
775799

776-
EXPECT_THAT(test_data.WaitForDocumentSnapshot().GetData(),
800+
DocumentSnapshot snapshot1 = test_data.WaitForDocumentSnapshot();
801+
EXPECT_TRUE(snapshot1.exists());
802+
EXPECT_THAT(snapshot1.GetData(),
777803
ContainerEq(MapFieldValue{{"foo", FieldValue::String("bar")}}));
778804
}
779805

@@ -800,10 +826,12 @@ TEST_F(FirestoreIntegrationTest, TestDocumentSnapshotEventsForAdd) {
800826
WriteDocument(document, MapFieldValue{{"a", FieldValue::Double(1.0)}});
801827
Await(listener, 3);
802828
DocumentSnapshot snapshot = listener.last_result(1);
829+
EXPECT_TRUE(snapshot.exists());
803830
EXPECT_THAT(snapshot.GetData(),
804831
ContainerEq(MapFieldValue{{"a", FieldValue::Double(1.0)}}));
805832
EXPECT_TRUE(snapshot.metadata().has_pending_writes());
806833
snapshot = listener.last_result();
834+
EXPECT_TRUE(snapshot.exists());
807835
EXPECT_THAT(snapshot.GetData(),
808836
ContainerEq(MapFieldValue{{"a", FieldValue::Double(1.0)}}));
809837
EXPECT_FALSE(snapshot.metadata().has_pending_writes());
@@ -821,6 +849,7 @@ TEST_F(FirestoreIntegrationTest, TestDocumentSnapshotEventsForChange) {
821849
listener.AttachTo(&document, MetadataChanges::kInclude);
822850
Await(listener);
823851
DocumentSnapshot snapshot = listener.last_result();
852+
EXPECT_TRUE(snapshot.exists());
824853
EXPECT_THAT(snapshot.GetData(),
825854
ContainerEq(MapFieldValue{{"a", FieldValue::Double(1.0)}}));
826855
EXPECT_FALSE(snapshot.metadata().has_pending_writes());
@@ -829,11 +858,13 @@ TEST_F(FirestoreIntegrationTest, TestDocumentSnapshotEventsForChange) {
829858
UpdateDocument(document, MapFieldValue{{"a", FieldValue::Double(2.0)}});
830859
Await(listener, 3);
831860
snapshot = listener.last_result(1);
861+
EXPECT_TRUE(snapshot.exists());
832862
EXPECT_THAT(snapshot.GetData(),
833863
ContainerEq(MapFieldValue{{"a", FieldValue::Double(2.0)}}));
834864
EXPECT_TRUE(snapshot.metadata().has_pending_writes());
835865
EXPECT_FALSE(snapshot.metadata().is_from_cache());
836866
snapshot = listener.last_result();
867+
EXPECT_TRUE(snapshot.exists());
837868
EXPECT_THAT(snapshot.GetData(),
838869
ContainerEq(MapFieldValue{{"a", FieldValue::Double(2.0)}}));
839870
EXPECT_FALSE(snapshot.metadata().has_pending_writes());
@@ -891,12 +922,14 @@ TEST_F(FirestoreIntegrationTest, TestQuerySnapshotEventsForAdd) {
891922
WriteDocument(document, MapFieldValue{{"a", FieldValue::Double(1.0)}});
892923
Await(listener, 3);
893924
QuerySnapshot snapshot = listener.last_result(1);
894-
EXPECT_EQ(1, snapshot.size());
925+
ASSERT_EQ(1, snapshot.size());
926+
EXPECT_TRUE(snapshot.documents()[0].exists());
895927
EXPECT_THAT(snapshot.documents()[0].GetData(),
896928
ContainerEq(MapFieldValue{{"a", FieldValue::Double(1.0)}}));
897929
EXPECT_TRUE(snapshot.metadata().has_pending_writes());
898930
snapshot = listener.last_result();
899-
EXPECT_EQ(1, snapshot.size());
931+
ASSERT_EQ(1, snapshot.size());
932+
EXPECT_TRUE(snapshot.documents()[0].exists());
900933
EXPECT_THAT(snapshot.documents()[0].GetData(),
901934
ContainerEq(MapFieldValue{{"a", FieldValue::Double(1.0)}}));
902935
EXPECT_FALSE(snapshot.metadata().has_pending_writes());
@@ -914,20 +947,23 @@ TEST_F(FirestoreIntegrationTest, TestQuerySnapshotEventsForChange) {
914947
listener.AttachTo(&collection, MetadataChanges::kInclude);
915948
Await(listener);
916949
QuerySnapshot snapshot = listener.last_result();
917-
EXPECT_EQ(1, snapshot.size());
950+
ASSERT_EQ(1, snapshot.size());
951+
EXPECT_TRUE(snapshot.documents()[0].exists());
918952
EXPECT_THAT(snapshot.documents()[0].GetData(),
919953
ContainerEq(MapFieldValue{{"a", FieldValue::Double(1.0)}}));
920954
EXPECT_FALSE(snapshot.metadata().has_pending_writes());
921955

922956
WriteDocument(document, MapFieldValue{{"a", FieldValue::Double(2.0)}});
923957
Await(listener, 3);
924958
snapshot = listener.last_result(1);
925-
EXPECT_EQ(1, snapshot.size());
959+
ASSERT_EQ(1, snapshot.size());
960+
EXPECT_TRUE(snapshot.documents()[0].exists());
926961
EXPECT_THAT(snapshot.documents()[0].GetData(),
927962
ContainerEq(MapFieldValue{{"a", FieldValue::Double(2.0)}}));
928963
EXPECT_TRUE(snapshot.metadata().has_pending_writes());
929964
snapshot = listener.last_result();
930-
EXPECT_EQ(1, snapshot.size());
965+
ASSERT_EQ(1, snapshot.size());
966+
EXPECT_TRUE(snapshot.documents()[0].exists());
931967
EXPECT_THAT(snapshot.documents()[0].GetData(),
932968
ContainerEq(MapFieldValue{{"a", FieldValue::Double(2.0)}}));
933969
EXPECT_FALSE(snapshot.metadata().has_pending_writes());
@@ -945,7 +981,8 @@ TEST_F(FirestoreIntegrationTest, TestQuerySnapshotEventsForDelete) {
945981
listener.AttachTo(&collection, MetadataChanges::kInclude);
946982
Await(listener);
947983
QuerySnapshot snapshot = listener.last_result();
948-
EXPECT_EQ(1, snapshot.size());
984+
ASSERT_EQ(1, snapshot.size());
985+
EXPECT_TRUE(snapshot.documents()[0].exists());
949986
EXPECT_THAT(snapshot.documents()[0].GetData(),
950987
ContainerEq(MapFieldValue{{"a", FieldValue::Double(1.0)}}));
951988
EXPECT_FALSE(snapshot.metadata().has_pending_writes());
@@ -979,10 +1016,12 @@ TEST_F(FirestoreIntegrationTest,
9791016
ListenerRegistration registration = listener.AttachTo(&document);
9801017
WriteDocument(document, MapFieldValue{{"a", FieldValue::Double(1.0)}});
9811018
Await(listener);
1019+
EXPECT_TRUE(listener.last_result().exists());
9821020
EXPECT_THAT(listener.last_result().GetData(),
9831021
ContainerEq(MapFieldValue{{"a", FieldValue::Double(1.0)}}));
9841022
WriteDocument(document, MapFieldValue{{"b", FieldValue::Double(1.0)}});
9851023
Await(listener);
1024+
EXPECT_TRUE(listener.last_result().exists());
9861025
EXPECT_THAT(listener.last_result().GetData(),
9871026
ContainerEq(MapFieldValue{{"b", FieldValue::Double(1.0)}}));
9881027
registration.Remove();
@@ -1100,6 +1139,7 @@ TEST_F(FirestoreIntegrationTest, TestCanQueueWritesWhileOffline) {
11001139

11011140
// Assert
11021141
DocumentSnapshot snapshot = ReadDocument(document);
1142+
EXPECT_TRUE(snapshot.exists());
11031143
EXPECT_THAT(
11041144
snapshot.GetData(),
11051145
ContainerEq(MapFieldValue{
@@ -1126,6 +1166,7 @@ TEST_F(FirestoreIntegrationTest, TestCanGetDocumentsWhileOffline) {
11261166

11271167
// The network is offline and we return a cached result.
11281168
DocumentSnapshot snapshot = ReadDocument(document);
1169+
EXPECT_TRUE(snapshot.exists());
11291170
EXPECT_THAT(
11301171
snapshot.GetData(),
11311172
ContainerEq(MapFieldValue{
@@ -1139,6 +1180,7 @@ TEST_F(FirestoreIntegrationTest, TestCanGetDocumentsWhileOffline) {
11391180
Await(TestFirestore()->EnableNetwork());
11401181
Await(pending_write);
11411182
snapshot = ReadDocument(document);
1183+
EXPECT_TRUE(snapshot.exists());
11421184
EXPECT_THAT(
11431185
snapshot.GetData(),
11441186
ContainerEq(MapFieldValue{
@@ -1298,6 +1340,7 @@ TEST_F(FirestoreIntegrationTest, RestartFirestoreLeadsToNewInstance) {
12981340
DocumentReference doc2 = db2->Document(doc_path);
12991341
const DocumentSnapshot* snapshot2 = Await(doc2.Get(Source::kCache));
13001342
ASSERT_NE(snapshot2, nullptr);
1343+
EXPECT_TRUE(snapshot2->exists());
13011344
EXPECT_THAT(snapshot2->GetData(),
13021345
ContainerEq(MapFieldValue{{"foo", FieldValue::String("bar")}}));
13031346

@@ -1378,6 +1421,7 @@ TEST_F(FirestoreIntegrationTest, CanClearPersistenceTestHarnessVerification) {
13781421
DocumentReference document_2 = db_2->Document(path);
13791422
Future<DocumentSnapshot> get_future = document_2.Get(Source::kCache);
13801423
DocumentSnapshot snapshot_2 = *Await(get_future);
1424+
EXPECT_TRUE(snapshot_2.exists());
13811425
EXPECT_THAT(snapshot_2.GetData(),
13821426
ContainerEq(MapFieldValue{{"foo", FieldValue::Integer(42)}}));
13831427
}

0 commit comments

Comments
 (0)