public void ConvenienceMembers() { var db = FirestoreDb.Create("proj", "db", new FakeFirestoreClient()); var query = db.Collection("col1"); var readTime = new Timestamp(10, 2); var doc1 = DocumentSnapshot.ForMissingDocument(db, "projects/proj/databases/db/documents/col1/doc1", readTime); var proto = new Document { CreateTime = CreateProtoTimestamp(1, 10), UpdateTime = CreateProtoTimestamp(2, 20), Name = "projects/proj/databases/db/documents/col1/doc2" }; var doc2 = DocumentSnapshot.ForDocument(db, proto, readTime); var docs = new[] { doc1, doc2 }; var querySnapshot = new QuerySnapshot(query, docs, readTime); Assert.Equal(2, querySnapshot.Count); // Indexer Assert.Same(doc1, querySnapshot[0]); Assert.Same(doc2, querySnapshot[1]); Assert.Throws <ArgumentOutOfRangeException>(() => querySnapshot[-1]); Assert.Throws <ArgumentOutOfRangeException>(() => querySnapshot[2]); // Use IEnumerable<DocumentSnapshot> Assert.Equal(docs, querySnapshot); // OfType forces the use of non-generic IEnumerable Assert.Equal(docs, querySnapshot.OfType <DocumentSnapshot>()); }