aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/core/test
diff options
context:
space:
mode:
authorGravatar zxu <zxu@google.com>2018-02-12 17:00:25 -0500
committerGravatar GitHub <noreply@github.com>2018-02-12 17:00:25 -0500
commitadf9fb31eeef639ef23b2ff22a71adaa91a263b7 (patch)
treefe302ae8527b8b39669fa937b364b55d812ec610 /Firestore/core/test
parent4afcfb1b11a9ab2cd3ae4ee212093cce845a5978 (diff)
Update FieldValue of type Reference (#775)
* update FieldValue of type Reference * address change * fix bad path string literal in test * use ReferenceValue and qualified name
Diffstat (limited to 'Firestore/core/test')
-rw-r--r--Firestore/core/test/firebase/firestore/model/field_value_test.cc53
1 files changed, 49 insertions, 4 deletions
diff --git a/Firestore/core/test/firebase/firestore/model/field_value_test.cc b/Firestore/core/test/firebase/firestore/model/field_value_test.cc
index 702c0f6..86eb804 100644
--- a/Firestore/core/test/firebase/firestore/model/field_value_test.cc
+++ b/Firestore/core/test/firebase/firestore/model/field_value_test.cc
@@ -144,6 +144,20 @@ TEST(FieldValue, BlobType) {
EXPECT_FALSE(a < a);
}
+TEST(FieldValue, ReferenceType) {
+ const DatabaseId id("project", "database");
+ const FieldValue a =
+ FieldValue::ReferenceValue(DocumentKey::FromPathString("root/abc"), &id);
+ DocumentKey key = DocumentKey::FromPathString("root/def");
+ const FieldValue b = FieldValue::ReferenceValue(key, &id);
+ const FieldValue c = FieldValue::ReferenceValue(std::move(key), &id);
+ EXPECT_EQ(Type::Reference, a.type());
+ EXPECT_EQ(Type::Reference, b.type());
+ EXPECT_EQ(Type::Reference, c.type());
+ EXPECT_TRUE(a < b);
+ EXPECT_FALSE(a < a);
+}
+
TEST(FieldValue, GeoPointType) {
const FieldValue a = FieldValue::GeoPointValue({1, 2});
const FieldValue b = FieldValue::GeoPointValue({3, 4});
@@ -280,6 +294,23 @@ TEST(FieldValue, Copy) {
clone = null_value;
EXPECT_EQ(FieldValue::NullValue(), clone);
+ const DatabaseId database_id("project", "database");
+ const FieldValue reference_value = FieldValue::ReferenceValue(
+ DocumentKey::FromPathString("root/abc"), &database_id);
+ clone = reference_value;
+ EXPECT_EQ(FieldValue::ReferenceValue(DocumentKey::FromPathString("root/abc"),
+ &database_id),
+ clone);
+ EXPECT_EQ(FieldValue::ReferenceValue(DocumentKey::FromPathString("root/abc"),
+ &database_id),
+ reference_value);
+ clone = clone;
+ EXPECT_EQ(FieldValue::ReferenceValue(DocumentKey::FromPathString("root/abc"),
+ &database_id),
+ clone);
+ clone = null_value;
+ EXPECT_EQ(FieldValue::NullValue(), clone);
+
const FieldValue geo_point_value = FieldValue::GeoPointValue({1, 2});
clone = geo_point_value;
EXPECT_EQ(FieldValue::GeoPointValue({1, 2}), clone);
@@ -361,7 +392,7 @@ TEST(FieldValue, Move) {
clone = FieldValue::NullValue();
EXPECT_EQ(FieldValue::NullValue(), clone);
- const FieldValue timestamp_value = FieldValue::TimestampValue({100, 200});
+ FieldValue timestamp_value = FieldValue::TimestampValue({100, 200});
clone = std::move(timestamp_value);
EXPECT_EQ(FieldValue::TimestampValue({100, 200}), clone);
clone = FieldValue::NullValue();
@@ -373,13 +404,23 @@ TEST(FieldValue, Move) {
clone = FieldValue::NullValue();
EXPECT_EQ(FieldValue::NullValue(), clone);
- const FieldValue blob_value = FieldValue::BlobValue(Bytes("abc"), 4);
+ FieldValue blob_value = FieldValue::BlobValue(Bytes("abc"), 4);
clone = std::move(blob_value);
EXPECT_EQ(FieldValue::BlobValue(Bytes("abc"), 4), clone);
clone = FieldValue::NullValue();
EXPECT_EQ(FieldValue::NullValue(), clone);
- const FieldValue geo_point_value = FieldValue::GeoPointValue({1, 2});
+ const DatabaseId database_id("project", "database");
+ FieldValue reference_value = FieldValue::ReferenceValue(
+ DocumentKey::FromPathString("root/abc"), &database_id);
+ clone = std::move(reference_value);
+ EXPECT_EQ(FieldValue::ReferenceValue(DocumentKey::FromPathString("root/abc"),
+ &database_id),
+ clone);
+ clone = null_value;
+ EXPECT_EQ(FieldValue::NullValue(), clone);
+
+ FieldValue geo_point_value = FieldValue::GeoPointValue({1, 2});
clone = std::move(geo_point_value);
EXPECT_EQ(FieldValue::GeoPointValue({1, 2}), clone);
clone = null_value;
@@ -415,6 +456,9 @@ TEST(FieldValue, CompareMixedType) {
const FieldValue timestamp_value = FieldValue::TimestampValue({100, 200});
const FieldValue string_value = FieldValue::StringValue("abc");
const FieldValue blob_value = FieldValue::BlobValue(Bytes("abc"), 4);
+ const DatabaseId database_id("project", "database");
+ const FieldValue reference_value = FieldValue::ReferenceValue(
+ DocumentKey::FromPathString("root/abc"), &database_id);
const FieldValue geo_point_value = FieldValue::GeoPointValue({1, 2});
const FieldValue array_value =
FieldValue::ArrayValue(std::vector<FieldValue>());
@@ -425,7 +469,8 @@ TEST(FieldValue, CompareMixedType) {
EXPECT_TRUE(number_value < timestamp_value);
EXPECT_TRUE(timestamp_value < string_value);
EXPECT_TRUE(string_value < blob_value);
- EXPECT_TRUE(blob_value < geo_point_value);
+ EXPECT_TRUE(blob_value < reference_value);
+ EXPECT_TRUE(reference_value < geo_point_value);
EXPECT_TRUE(geo_point_value < array_value);
EXPECT_TRUE(array_value < object_value);
}