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.cc30
1 files changed, 30 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 6099bee..b821f7f 100644
--- a/Firestore/core/test/firebase/firestore/core/query_test.cc
+++ b/Firestore/core/test/firebase/firestore/core/query_test.cc
@@ -29,6 +29,7 @@ namespace core {
using model::Document;
using model::FieldValue;
+using model::ResourcePath;
using testutil::Doc;
using testutil::Filter;
@@ -67,6 +68,35 @@ TEST(QueryTest, EmptyFieldsAreAllowedForQueries) {
EXPECT_FALSE(query.Matches(doc2));
}
+TEST(QueryTest, PrimitiveValueFilter) {
+ Query query1 = Query::AtPath(ResourcePath::FromString("collection"))
+ .Filter(Filter("sort", ">=", 2));
+ Query query2 = Query::AtPath(ResourcePath::FromString("collection"))
+ .Filter(Filter("sort", "<=", 2));
+
+ Document doc1 =
+ Doc("collection/1", 0, {{"sort", FieldValue::IntegerValue(1)}});
+ Document doc2 =
+ Doc("collection/2", 0, {{"sort", FieldValue::IntegerValue(2)}});
+ Document doc3 =
+ Doc("collection/3", 0, {{"sort", FieldValue::IntegerValue(3)}});
+ Document doc4 = Doc("collection/4", 0, {{"sort", FieldValue::FalseValue()}});
+ Document doc5 =
+ Doc("collection/5", 0, {{"sort", FieldValue::StringValue("string")}});
+
+ EXPECT_FALSE(query1.Matches(doc1));
+ EXPECT_TRUE(query1.Matches(doc2));
+ EXPECT_TRUE(query1.Matches(doc3));
+ EXPECT_FALSE(query1.Matches(doc4));
+ EXPECT_FALSE(query1.Matches(doc5));
+
+ EXPECT_TRUE(query2.Matches(doc1));
+ EXPECT_TRUE(query2.Matches(doc2));
+ EXPECT_FALSE(query2.Matches(doc3));
+ EXPECT_FALSE(query2.Matches(doc4));
+ EXPECT_FALSE(query2.Matches(doc5));
+}
+
} // namespace core
} // namespace firestore
} // namespace firebase