aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Example/Tests
diff options
context:
space:
mode:
authorGravatar zxu <zxu@google.com>2018-03-05 11:30:59 -0500
committerGravatar GitHub <noreply@github.com>2018-03-05 11:30:59 -0500
commit1c40e7aada6b32bbc621f06fb5f380149606a58d (patch)
tree6dee81f74f8a33d1beae915d9227caf28b8e2598 /Firestore/Example/Tests
parent9b5b4d876eb77e65b3246614855088be101eebf3 (diff)
add converters and port paths to FSTQuery (#869)
* add converters and fix FSTQuery.{h,m} only * address changes * a change forget to address * add a dummy function to make inline-only-library buildable
Diffstat (limited to 'Firestore/Example/Tests')
-rw-r--r--Firestore/Example/Tests/Core/FSTQueryTests.mm39
-rw-r--r--Firestore/Example/Tests/Core/FSTViewTests.mm24
-rw-r--r--Firestore/Example/Tests/Model/FSTPathTests.mm24
-rw-r--r--Firestore/Example/Tests/Remote/FSTSerializerBetaTests.mm6
-rw-r--r--Firestore/Example/Tests/Util/FSTHelpers.mm15
5 files changed, 73 insertions, 35 deletions
diff --git a/Firestore/Example/Tests/Core/FSTQueryTests.mm b/Firestore/Example/Tests/Core/FSTQueryTests.mm
index c0b2cd9..5f6d279 100644
--- a/Firestore/Example/Tests/Core/FSTQueryTests.mm
+++ b/Firestore/Example/Tests/Core/FSTQueryTests.mm
@@ -26,10 +26,16 @@
#import "Firestore/Example/Tests/Util/FSTHelpers.h"
#include "Firestore/core/src/firebase/firestore/model/database_id.h"
+#include "Firestore/core/src/firebase/firestore/model/field_path.h"
+#include "Firestore/core/src/firebase/firestore/model/resource_path.h"
#include "Firestore/core/src/firebase/firestore/util/string_apple.h"
+#include "Firestore/core/test/firebase/firestore/testutil/testutil.h"
+namespace testutil = firebase::firestore::testutil;
namespace util = firebase::firestore::util;
using firebase::firestore::model::DatabaseId;
+using firebase::firestore::model::FieldPath;
+using firebase::firestore::model::ResourcePath;
NS_ASSUME_NONNULL_BEGIN
@@ -41,8 +47,10 @@ NS_ASSUME_NONNULL_BEGIN
@implementation FSTQuery (Tests)
- (FSTQuery *)queryByAddingSortBy:(NSString *)key ascending:(BOOL)ascending {
- return [self queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(key)
- ascending:ascending]];
+ return [self
+ queryByAddingSortOrder:[FSTSortOrder
+ sortOrderWithFieldPath:testutil::Field(util::MakeStringView(key))
+ ascending:ascending]];
}
@end
@@ -55,11 +63,11 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testConstructor {
FSTResourcePath *path =
[FSTResourcePath pathWithSegments:@[ @"rooms", @"Firestore", @"messages", @"0001" ]];
- FSTQuery *query = [FSTQuery queryWithPath:path];
+ FSTQuery *query = [FSTQuery queryWithPath:[path toCPPResourcePath]];
XCTAssertNotNil(query);
XCTAssertEqual(query.sortOrders.count, 1);
- XCTAssertEqualObjects(query.sortOrders[0].field.canonicalString, kDocumentKeyPath);
+ XCTAssertEqual(query.sortOrders[0].field.CanonicalString(), FieldPath::kDocumentKeyPath);
XCTAssertEqual(query.sortOrders[0].ascending, YES);
XCTAssertEqual(query.explicitSortOrders.count, 0);
@@ -68,17 +76,17 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testOrderBy {
FSTQuery *query = FSTTestQuery(@"rooms/Firestore/messages");
query =
- [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"length")
+ [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("length")
ascending:NO]];
XCTAssertEqual(query.sortOrders.count, 2);
- XCTAssertEqualObjects(query.sortOrders[0].field.canonicalString, @"length");
+ XCTAssertEqual(query.sortOrders[0].field.CanonicalString(), "length");
XCTAssertEqual(query.sortOrders[0].ascending, NO);
- XCTAssertEqualObjects(query.sortOrders[1].field.canonicalString, kDocumentKeyPath);
+ XCTAssertEqual(query.sortOrders[1].field.CanonicalString(), FieldPath::kDocumentKeyPath);
XCTAssertEqual(query.sortOrders[1].ascending, NO);
XCTAssertEqual(query.explicitSortOrders.count, 1);
- XCTAssertEqualObjects(query.explicitSortOrders[0].field.canonicalString, @"length");
+ XCTAssertEqual(query.explicitSortOrders[0].field.CanonicalString(), "length");
XCTAssertEqual(query.explicitSortOrders[0].ascending, NO);
}
@@ -211,7 +219,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testDoesntRemoveComplexObjectsWithOrderBy {
FSTQuery *query1 = [FSTTestQuery(@"collection")
- queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"sort")
+ queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("sort")
ascending:YES]];
FSTDocument *doc1 = FSTTestDoc(@"collection/1", 0, @{ @"sort" : @2 }, NO);
@@ -305,9 +313,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testSortsDocumentsInTheCorrectOrder {
FSTQuery *query = FSTTestQuery(@"collection");
- query =
- [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"sort")
- ascending:YES]];
+ query = [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("sort")
+ ascending:YES]];
// clang-format off
NSArray<FSTDocument *> *docs = @[
@@ -335,10 +342,10 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testSortsDocumentsUsingMultipleFields {
FSTQuery *query = FSTTestQuery(@"collection");
query =
- [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"sort1")
+ [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("sort1")
ascending:YES]];
query =
- [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"sort2")
+ [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("sort2")
ascending:YES]];
// clang-format off
@@ -362,10 +369,10 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testSortsDocumentsWithDescendingToo {
FSTQuery *query = FSTTestQuery(@"collection");
query =
- [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"sort1")
+ [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("sort1")
ascending:NO]];
query =
- [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"sort2")
+ [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("sort2")
ascending:NO]];
// clang-format off
diff --git a/Firestore/Example/Tests/Core/FSTViewTests.mm b/Firestore/Example/Tests/Core/FSTViewTests.mm
index e6c4510..7df8195 100644
--- a/Firestore/Example/Tests/Core/FSTViewTests.mm
+++ b/Firestore/Example/Tests/Core/FSTViewTests.mm
@@ -30,6 +30,12 @@
#import "Firestore/Example/Tests/Util/FSTHelpers.h"
+#include "Firestore/core/src/firebase/firestore/model/resource_path.h"
+#include "Firestore/core/test/firebase/firestore/testutil/testutil.h"
+
+namespace testutil = firebase::firestore::testutil;
+using firebase::firestore::model::ResourcePath;
+
NS_ASSUME_NONNULL_BEGIN
@interface FSTViewTests : XCTestCase
@@ -39,8 +45,7 @@ NS_ASSUME_NONNULL_BEGIN
/** Returns a new empty query to use for testing. */
- (FSTQuery *)queryForMessages {
- return [FSTQuery
- queryWithPath:[FSTResourcePath pathWithSegments:@[ @"rooms", @"eros", @"messages" ]]];
+ return [FSTQuery queryWithPath:ResourcePath{"rooms", "eros", "messages"}];
}
- (void)testAddsDocumentsBasedOnQuery {
@@ -128,7 +133,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testFiltersDocumentsBasedOnQueryWithFilter {
FSTQuery *query = [self queryForMessages];
FSTRelationFilter *filter =
- [FSTRelationFilter filterWithField:FSTTestFieldPath(@"sort")
+ [FSTRelationFilter filterWithField:testutil::Field("sort")
filterOperator:FSTRelationFilterOperatorLessThanOrEqual
value:[FSTDoubleValue doubleValue:2]];
query = [query queryByAddingFilter:filter];
@@ -160,7 +165,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testUpdatesDocumentsBasedOnQueryWithFilter {
FSTQuery *query = [self queryForMessages];
FSTRelationFilter *filter =
- [FSTRelationFilter filterWithField:FSTTestFieldPath(@"sort")
+ [FSTRelationFilter filterWithField:testutil::Field("sort")
filterOperator:FSTRelationFilterOperatorLessThanOrEqual
value:[FSTDoubleValue doubleValue:2]];
query = [query queryByAddingFilter:filter];
@@ -232,9 +237,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testDoesntReportChangesForDocumentBeyondLimitOfQuery {
FSTQuery *query = [self queryForMessages];
- query =
- [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"num")
- ascending:YES]];
+ query = [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("num")
+ ascending:YES]];
query = [query queryBySettingLimit:2];
FSTView *view = [[FSTView alloc] initWithQuery:query remoteDocuments:[FSTDocumentKeySet keySet]];
@@ -385,7 +389,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testReturnsNeedsRefillOnReorderInLimitQuery {
FSTQuery *query = [self queryForMessages];
query =
- [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"order")
+ [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("order")
ascending:YES]];
query = [query queryBySettingLimit:2];
FSTDocument *doc1 = FSTTestDoc(@"rooms/eros/messages/0", 0, @{ @"order" : @1 }, NO);
@@ -419,7 +423,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testDoesntNeedRefillOnReorderWithinLimit {
FSTQuery *query = [self queryForMessages];
query =
- [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"order")
+ [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("order")
ascending:YES]];
query = [query queryBySettingLimit:3];
FSTDocument *doc1 = FSTTestDoc(@"rooms/eros/messages/0", 0, @{ @"order" : @1 }, NO);
@@ -449,7 +453,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testDoesntNeedRefillOnReorderAfterLimitQuery {
FSTQuery *query = [self queryForMessages];
query =
- [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"order")
+ [query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("order")
ascending:YES]];
query = [query queryBySettingLimit:3];
FSTDocument *doc1 = FSTTestDoc(@"rooms/eros/messages/0", 0, @{ @"order" : @1 }, NO);
diff --git a/Firestore/Example/Tests/Model/FSTPathTests.mm b/Firestore/Example/Tests/Model/FSTPathTests.mm
index 68bcc44..388c5c3 100644
--- a/Firestore/Example/Tests/Model/FSTPathTests.mm
+++ b/Firestore/Example/Tests/Model/FSTPathTests.mm
@@ -195,6 +195,30 @@ NS_ASSUME_NONNULL_BEGIN
XCTAssertEqualObjects([[pathHead pathByRemovingFirstSegment] canonicalString], @"bar");
}
+- (void)testRoundTrip {
+ FSTFieldPath *path = [FSTFieldPath pathWithSegments:@[ @"rooms", @"Eros", @"messages" ]];
+ XCTAssertEqualObjects(path, [FSTFieldPath fieldPathWithCPPFieldPath:[path toCPPFieldPath]]);
+
+ const firebase::firestore::model::FieldPath cppPath{"rooms", "Eros", "messages"};
+ XCTAssertEqual(cppPath, [[FSTFieldPath fieldPathWithCPPFieldPath:cppPath] toCPPFieldPath]);
+}
+
+@end
+
+@interface FSTResourcePathTests : XCTestCase
@end
+@implementation FSTResourcePathTests
+
+- (void)testRoundTrip {
+ FSTResourcePath *path = [FSTResourcePath pathWithSegments:@[ @"rooms", @"Eros", @"messages" ]];
+ XCTAssertEqualObjects(path,
+ [FSTResourcePath resourcePathWithCPPResourcePath:[path toCPPResourcePath]]);
+
+ const firebase::firestore::model::ResourcePath cppPath{"rooms", "Eros", "messages"};
+ XCTAssertEqual(cppPath,
+ [[FSTResourcePath resourcePathWithCPPResourcePath:cppPath] toCPPResourcePath]);
+}
+
+@end
NS_ASSUME_NONNULL_END
diff --git a/Firestore/Example/Tests/Remote/FSTSerializerBetaTests.mm b/Firestore/Example/Tests/Remote/FSTSerializerBetaTests.mm
index fc4060b..5cd816f 100644
--- a/Firestore/Example/Tests/Remote/FSTSerializerBetaTests.mm
+++ b/Firestore/Example/Tests/Remote/FSTSerializerBetaTests.mm
@@ -48,7 +48,9 @@
#include "Firestore/core/src/firebase/firestore/model/database_id.h"
#include "Firestore/core/src/firebase/firestore/util/string_apple.h"
+#include "Firestore/core/test/firebase/firestore/testutil/testutil.h"
+namespace testutil = firebase::firestore::testutil;
namespace util = firebase::firestore::util;
using firebase::firestore::model::DatabaseId;
@@ -581,7 +583,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testEncodesSortOrders {
FSTQuery *q = [FSTTestQuery(@"docs")
- queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"prop")
+ queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("prop")
ascending:YES]];
FSTQueryData *model = [self queryDataForQuery:q];
@@ -601,7 +603,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)testEncodesSortOrdersDescending {
FSTQuery *q = [FSTTestQuery(@"rooms/1/messages/10/attachments")
- queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"prop")
+ queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:testutil::Field("prop")
ascending:NO]];
FSTQueryData *model = [self queryDataForQuery:q];
diff --git a/Firestore/Example/Tests/Util/FSTHelpers.mm b/Firestore/Example/Tests/Util/FSTHelpers.mm
index 649486a..9b05604 100644
--- a/Firestore/Example/Tests/Util/FSTHelpers.mm
+++ b/Firestore/Example/Tests/Util/FSTHelpers.mm
@@ -183,7 +183,7 @@ FSTDocumentKeyReference *FSTTestRef(const absl::string_view projectID,
}
FSTQuery *FSTTestQuery(NSString *path) {
- return [FSTQuery queryWithPath:FSTTestPath(path)];
+ return [FSTQuery queryWithPath:[FSTTestPath(path) toCPPResourcePath]];
}
id<FSTFilter> FSTTestFilter(NSString *field, NSString *opString, id value) {
@@ -206,12 +206,12 @@ id<FSTFilter> FSTTestFilter(NSString *field, NSString *opString, id value) {
FSTFieldValue *data = FSTTestFieldValue(value);
if ([data isEqual:[FSTDoubleValue nanValue]]) {
FSTCAssert(op == FSTRelationFilterOperatorEqual, @"Must use == with NAN.");
- return [[FSTNanFilter alloc] initWithField:path];
+ return [[FSTNanFilter alloc] initWithField:[path toCPPFieldPath]];
} else if ([data isEqual:[FSTNullValue nullValue]]) {
FSTCAssert(op == FSTRelationFilterOperatorEqual, @"Must use == with Null.");
- return [[FSTNullFilter alloc] initWithField:path];
+ return [[FSTNullFilter alloc] initWithField:[path toCPPFieldPath]];
} else {
- return [FSTRelationFilter filterWithField:path filterOperator:op value:data];
+ return [FSTRelationFilter filterWithField:[path toCPPFieldPath] filterOperator:op value:data];
}
}
@@ -225,13 +225,14 @@ FSTSortOrder *FSTTestOrderBy(NSString *field, NSString *direction) {
} else {
FSTCFail(@"Unsupported direction: %@", direction);
}
- return [FSTSortOrder sortOrderWithFieldPath:path ascending:ascending];
+ return [FSTSortOrder sortOrderWithFieldPath:[path toCPPFieldPath] ascending:ascending];
}
NSComparator FSTTestDocComparator(NSString *fieldPath) {
FSTQuery *query = [FSTTestQuery(@"docs")
- queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(fieldPath)
- ascending:YES]];
+ queryByAddingSortOrder:[FSTSortOrder
+ sortOrderWithFieldPath:[FSTTestFieldPath(fieldPath) toCPPFieldPath]
+ ascending:YES]];
return [query comparator];
}