aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/core/test/firebase/firestore/testutil/testutil.h
diff options
context:
space:
mode:
Diffstat (limited to 'Firestore/core/test/firebase/firestore/testutil/testutil.h')
-rw-r--r--Firestore/core/test/firebase/firestore/testutil/testutil.h40
1 files changed, 38 insertions, 2 deletions
diff --git a/Firestore/core/test/firebase/firestore/testutil/testutil.h b/Firestore/core/test/firebase/firestore/testutil/testutil.h
index c470250..f13c1b7 100644
--- a/Firestore/core/test/firebase/firestore/testutil/testutil.h
+++ b/Firestore/core/test/firebase/firestore/testutil/testutil.h
@@ -19,14 +19,21 @@
#include <chrono> // NOLINT(build/c++11)
#include <cstdint>
+#include <memory>
+#include <string>
+#include <utility>
#include "Firestore/core/include/firebase/firestore/timestamp.h"
+#include "Firestore/core/src/firebase/firestore/core/relation_filter.h"
#include "Firestore/core/src/firebase/firestore/model/document.h"
#include "Firestore/core/src/firebase/firestore/model/document_key.h"
#include "Firestore/core/src/firebase/firestore/model/field_path.h"
+#include "Firestore/core/src/firebase/firestore/model/field_value.h"
#include "Firestore/core/src/firebase/firestore/model/no_document.h"
#include "Firestore/core/src/firebase/firestore/model/resource_path.h"
#include "Firestore/core/src/firebase/firestore/model/snapshot_version.h"
+#include "Firestore/core/src/firebase/firestore/util/hard_assert.h"
+#include "absl/memory/memory.h"
#include "absl/strings/string_view.h"
namespace firebase {
@@ -59,8 +66,10 @@ inline model::SnapshotVersion Version(int64_t version) {
return model::SnapshotVersion{Timestamp::FromTimePoint(timepoint)};
}
-inline model::Document Doc(absl::string_view key, int64_t version = 0) {
- return model::Document{model::FieldValue::ObjectValueFromMap({}), Key(key),
+inline model::Document Doc(absl::string_view key,
+ int64_t version = 0,
+ const model::ObjectValue::Map& data = {}) {
+ return model::Document{model::FieldValue::ObjectValueFromMap(data), Key(key),
Version(version),
/* has_local_mutations= */ false};
}
@@ -69,6 +78,33 @@ inline model::NoDocument DeletedDoc(absl::string_view key, int64_t version) {
return model::NoDocument{Key(key), Version(version)};
}
+inline core::RelationFilter::Operator OperatorFromString(absl::string_view s) {
+ if (s == "<")
+ return core::RelationFilter::Operator::LessThan;
+ else if (s == "<=")
+ return core::RelationFilter::Operator::LessThanOrEqual;
+ else if (s == "==")
+ return core::RelationFilter::Operator::Equal;
+ else if (s == ">")
+ return core::RelationFilter::Operator::GreaterThan;
+ else if (s == ">=")
+ return core::RelationFilter::Operator::GreaterThanOrEqual;
+ HARD_FAIL("Unknown operator: %s", s);
+}
+
+inline std::shared_ptr<core::Filter> Filter(absl::string_view key,
+ absl::string_view op,
+ model::FieldValue value) {
+ return core::Filter::Create(Field(key), OperatorFromString(op),
+ std::move(value));
+}
+
+inline std::shared_ptr<core::Filter> Filter(absl::string_view key,
+ absl::string_view op,
+ const std::string& value) {
+ return Filter(key, op, model::FieldValue::StringValue(value));
+}
+
// Add a non-inline function to make this library buildable.
// TODO(zxu123): remove once there is non-inline function.
void dummy();