diff options
Diffstat (limited to 'Firestore/core/test/firebase/firestore/core/query_test.cc')
-rw-r--r-- | Firestore/core/test/firebase/firestore/core/query_test.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Firestore/core/test/firebase/firestore/core/query_test.cc b/Firestore/core/test/firebase/firestore/core/query_test.cc index b821f7f..c71ba10 100644 --- a/Firestore/core/test/firebase/firestore/core/query_test.cc +++ b/Firestore/core/test/firebase/firestore/core/query_test.cc @@ -16,6 +16,8 @@ #include "Firestore/core/src/firebase/firestore/core/query.h" +#include <cmath> + #include "Firestore/core/src/firebase/firestore/model/document.h" #include "Firestore/core/src/firebase/firestore/model/field_path.h" #include "Firestore/core/src/firebase/firestore/model/field_value.h" @@ -97,6 +99,26 @@ TEST(QueryTest, PrimitiveValueFilter) { EXPECT_FALSE(query2.Matches(doc5)); } +TEST(QueryTest, NanFilter) { + Query query = Query::AtPath(ResourcePath::FromString("collection")) + .Filter(Filter("sort", "==", NAN)); + + Document doc1 = Doc("collection/1", 0, {{"sort", FieldValue::NanValue()}}); + Document doc2 = + Doc("collection/2", 0, {{"sort", FieldValue::IntegerValue(2)}}); + Document doc3 = + Doc("collection/3", 0, {{"sort", FieldValue::DoubleValue(3.1)}}); + Document doc4 = Doc("collection/4", 0, {{"sort", FieldValue::FalseValue()}}); + Document doc5 = + Doc("collection/5", 0, {{"sort", FieldValue::StringValue("string")}}); + + EXPECT_TRUE(query.Matches(doc1)); + EXPECT_FALSE(query.Matches(doc2)); + EXPECT_FALSE(query.Matches(doc3)); + EXPECT_FALSE(query.Matches(doc4)); + EXPECT_FALSE(query.Matches(doc5)); +} + } // namespace core } // namespace firestore } // namespace firebase |