aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/core/test/firebase/firestore/core/query_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Firestore/core/test/firebase/firestore/core/query_test.cc')
-rw-r--r--Firestore/core/test/firebase/firestore/core/query_test.cc22
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