diff options
author | zxu <zxu@google.com> | 2018-03-05 11:30:59 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-05 11:30:59 -0500 |
commit | 1c40e7aada6b32bbc621f06fb5f380149606a58d (patch) | |
tree | 6dee81f74f8a33d1beae915d9227caf28b8e2598 /Firestore/Example/Tests | |
parent | 9b5b4d876eb77e65b3246614855088be101eebf3 (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.mm | 39 | ||||
-rw-r--r-- | Firestore/Example/Tests/Core/FSTViewTests.mm | 24 | ||||
-rw-r--r-- | Firestore/Example/Tests/Model/FSTPathTests.mm | 24 | ||||
-rw-r--r-- | Firestore/Example/Tests/Remote/FSTSerializerBetaTests.mm | 6 | ||||
-rw-r--r-- | Firestore/Example/Tests/Util/FSTHelpers.mm | 15 |
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]; } |