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 | 30 |
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 |