@@ -31,6 +31,10 @@ namespace firestore {
3131
3232using QuerySnapshotTest = FirestoreIntegrationTest;
3333
34+ std::size_t QuerySnapshotHash (const QuerySnapshot& snapshot) {
35+ return snapshot.Hash ();
36+ }
37+
3438#if defined(__ANDROID__)
3539
3640TEST_F (QuerySnapshotTest, Construction) {
@@ -99,5 +103,41 @@ TEST_F(QuerySnapshotTest, Equality) {
99103 EXPECT_FALSE (snapshot7 != snapshot8);
100104}
101105
106+ TEST_F (QuerySnapshotTest, TestHashCode) {
107+ CollectionReference collection =
108+ Collection ({{" a" , {{" k" , FieldValue::String (" a" )}}},
109+ {" b" , {{" k" , FieldValue::String (" b" )}}},
110+ {" c" , {{" k" , FieldValue::String (" c" )}}}});
111+ QuerySnapshot snapshot1 = ReadDocuments (collection.Limit (2 ));
112+ QuerySnapshot snapshot2 = ReadDocuments (collection.Limit (2 ));
113+ QuerySnapshot snapshot3 = ReadDocuments (collection.Limit (1 ));
114+ QuerySnapshot snapshot4 = ReadDocuments (collection);
115+ QuerySnapshot snapshot5 =
116+ ReadDocuments (collection.OrderBy (" k" , Query::Direction::kAscending ));
117+ QuerySnapshot snapshot6 =
118+ ReadDocuments (collection.OrderBy (" k" , Query::Direction::kDescending ));
119+
120+ QuerySnapshot snapshot7 = QuerySnapshot ();
121+ QuerySnapshot snapshot8 = QuerySnapshot ();
122+
123+ EXPECT_EQ (QuerySnapshotHash (snapshot1), QuerySnapshotHash (snapshot1));
124+ EXPECT_EQ (QuerySnapshotHash (snapshot1), QuerySnapshotHash (snapshot2));
125+ EXPECT_NE (QuerySnapshotHash (snapshot1), QuerySnapshotHash (snapshot3));
126+ EXPECT_NE (QuerySnapshotHash (snapshot1), QuerySnapshotHash (snapshot4));
127+ EXPECT_NE (QuerySnapshotHash (snapshot1), QuerySnapshotHash (snapshot5));
128+ EXPECT_NE (QuerySnapshotHash (snapshot1), QuerySnapshotHash (snapshot6));
129+ EXPECT_NE (QuerySnapshotHash (snapshot3), QuerySnapshotHash (snapshot4));
130+ EXPECT_NE (QuerySnapshotHash (snapshot3), QuerySnapshotHash (snapshot5));
131+ EXPECT_NE (QuerySnapshotHash (snapshot3), QuerySnapshotHash (snapshot6));
132+ EXPECT_NE (QuerySnapshotHash (snapshot5), QuerySnapshotHash (snapshot6));
133+ EXPECT_NE (QuerySnapshotHash (snapshot1), QuerySnapshotHash (snapshot7));
134+ EXPECT_NE (QuerySnapshotHash (snapshot2), QuerySnapshotHash (snapshot7));
135+ EXPECT_NE (QuerySnapshotHash (snapshot3), QuerySnapshotHash (snapshot7));
136+ EXPECT_NE (QuerySnapshotHash (snapshot4), QuerySnapshotHash (snapshot7));
137+ EXPECT_NE (QuerySnapshotHash (snapshot5), QuerySnapshotHash (snapshot7));
138+ EXPECT_NE (QuerySnapshotHash (snapshot6), QuerySnapshotHash (snapshot7));
139+ EXPECT_EQ (QuerySnapshotHash (snapshot7), QuerySnapshotHash (snapshot8));
140+ }
141+
102142} // namespace firestore
103143} // namespace firebase
0 commit comments