Skip to content

Commit a441190

Browse files
authored
Implement Firestore DatabaseInfo and port both Database{Id,Info} C++ to the iOS code (#738)
* implement Firestore DatabaseInfo in C++ * temporary stash changes; blocking on the massive renaming of .m to .mm * add database_info_test to project * finish port DatabaseId and fix style, modular fixing DatabaseInfo * port DatabaseInfo * remove FSTDatabase{ID,Info} and their tests from project * fix unit test * use namespace alias * use namespace alias, leftover * address more changes * refactoring to use raw pointer instead of value for property * address changes * remove self-> * fix style * remove the name suffix Alloc * fix a bug
1 parent 7cac9dc commit a441190

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+574
-586
lines changed

Firestore/Example/Firestore.xcodeproj/project.pbxproj

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060
5492E063202154B900B64F25 /* FSTViewSnapshotTest.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E05C202154B800B64F25 /* FSTViewSnapshotTest.mm */; };
6161
5492E064202154B900B64F25 /* FSTQueryListenerTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E05D202154B900B64F25 /* FSTQueryListenerTests.mm */; };
6262
5492E065202154B900B64F25 /* FSTViewTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E05E202154B900B64F25 /* FSTViewTests.mm */; };
63-
5492E066202154B900B64F25 /* FSTDatabaseInfoTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E05F202154B900B64F25 /* FSTDatabaseInfoTests.mm */; };
6463
5492E067202154B900B64F25 /* FSTEventManagerTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E060202154B900B64F25 /* FSTEventManagerTests.mm */; };
6564
5492E068202154B900B64F25 /* FSTQueryTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E061202154B900B64F25 /* FSTQueryTests.mm */; };
6665
5492E072202154D600B64F25 /* FIRQueryTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E069202154D500B64F25 /* FIRQueryTests.mm */; };
@@ -99,7 +98,6 @@
9998
5492E0B12021552D00B64F25 /* FSTRemoteDocumentCacheTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E09C2021552D00B64F25 /* FSTRemoteDocumentCacheTests.mm */; };
10099
5492E0B92021555100B64F25 /* FSTDocumentKeyTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E0B22021555000B64F25 /* FSTDocumentKeyTests.mm */; };
101100
5492E0BA2021555100B64F25 /* FSTDocumentSetTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E0B32021555100B64F25 /* FSTDocumentSetTests.mm */; };
102-
5492E0BB2021555100B64F25 /* FSTDatabaseIDTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E0B42021555100B64F25 /* FSTDatabaseIDTests.mm */; };
103101
5492E0BC2021555100B64F25 /* FSTPathTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E0B52021555100B64F25 /* FSTPathTests.mm */; };
104102
5492E0BD2021555100B64F25 /* FSTDocumentTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E0B62021555100B64F25 /* FSTDocumentTests.mm */; };
105103
5492E0BE2021555100B64F25 /* FSTMutationTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E0B72021555100B64F25 /* FSTMutationTests.mm */; };
@@ -141,6 +139,7 @@
141139
AB380CFE201A2F4500D97691 /* string_util_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = AB380CFC201A2EE200D97691 /* string_util_test.cc */; };
142140
AB380D02201BC69F00D97691 /* bits_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = AB380D01201BC69F00D97691 /* bits_test.cc */; };
143141
AB380D04201BC6E400D97691 /* ordered_code_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = AB380D03201BC6E400D97691 /* ordered_code_test.cc */; };
142+
AB38D93020236E21000A432D /* database_info_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = AB38D92E20235D22000A432D /* database_info_test.cc */; };
144143
AB7BAB342012B519001E0872 /* geo_point_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = AB7BAB332012B519001E0872 /* geo_point_test.cc */; };
145144
ABE6637A201FA81900ED349A /* database_id_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = AB71064B201FA60300344F18 /* database_id_test.cc */; };
146145
ABF6506C201131F8005F2C74 /* timestamp_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = ABF6506B201131F8005F2C74 /* timestamp_test.cc */; };
@@ -238,7 +237,6 @@
238237
5492E05C202154B800B64F25 /* FSTViewSnapshotTest.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTViewSnapshotTest.mm; sourceTree = "<group>"; };
239238
5492E05D202154B900B64F25 /* FSTQueryListenerTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTQueryListenerTests.mm; sourceTree = "<group>"; };
240239
5492E05E202154B900B64F25 /* FSTViewTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTViewTests.mm; sourceTree = "<group>"; };
241-
5492E05F202154B900B64F25 /* FSTDatabaseInfoTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTDatabaseInfoTests.mm; sourceTree = "<group>"; };
242240
5492E060202154B900B64F25 /* FSTEventManagerTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTEventManagerTests.mm; sourceTree = "<group>"; };
243241
5492E061202154B900B64F25 /* FSTQueryTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTQueryTests.mm; sourceTree = "<group>"; };
244242
5492E069202154D500B64F25 /* FIRQueryTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FIRQueryTests.mm; sourceTree = "<group>"; };
@@ -282,7 +280,6 @@
282280
5492E09C2021552D00B64F25 /* FSTRemoteDocumentCacheTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTRemoteDocumentCacheTests.mm; sourceTree = "<group>"; };
283281
5492E0B22021555000B64F25 /* FSTDocumentKeyTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTDocumentKeyTests.mm; sourceTree = "<group>"; };
284282
5492E0B32021555100B64F25 /* FSTDocumentSetTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTDocumentSetTests.mm; sourceTree = "<group>"; };
285-
5492E0B42021555100B64F25 /* FSTDatabaseIDTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTDatabaseIDTests.mm; sourceTree = "<group>"; };
286283
5492E0B52021555100B64F25 /* FSTPathTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTPathTests.mm; sourceTree = "<group>"; };
287284
5492E0B62021555100B64F25 /* FSTDocumentTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTDocumentTests.mm; sourceTree = "<group>"; };
288285
5492E0B72021555100B64F25 /* FSTMutationTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTMutationTests.mm; sourceTree = "<group>"; };
@@ -336,6 +333,7 @@
336333
AB380CFC201A2EE200D97691 /* string_util_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = string_util_test.cc; path = ../../core/test/firebase/firestore/util/string_util_test.cc; sourceTree = "<group>"; };
337334
AB380D01201BC69F00D97691 /* bits_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bits_test.cc; path = ../../core/test/firebase/firestore/util/bits_test.cc; sourceTree = "<group>"; };
338335
AB380D03201BC6E400D97691 /* ordered_code_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ordered_code_test.cc; path = ../../core/test/firebase/firestore/util/ordered_code_test.cc; sourceTree = "<group>"; };
336+
AB38D92E20235D22000A432D /* database_info_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = database_info_test.cc; sourceTree = "<group>"; };
339337
AB71064B201FA60300344F18 /* database_id_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = database_id_test.cc; sourceTree = "<group>"; };
340338
AB7BAB332012B519001E0872 /* geo_point_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = geo_point_test.cc; path = ../../core/test/firebase/firestore/geo_point_test.cc; sourceTree = "<group>"; };
341339
ABF6506B201131F8005F2C74 /* timestamp_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = timestamp_test.cc; sourceTree = "<group>"; };
@@ -579,6 +577,7 @@
579577
isa = PBXGroup;
580578
children = (
581579
AB380CF82019382300D97691 /* target_id_generator_test.cc */,
580+
AB38D92E20235D22000A432D /* database_info_test.cc */,
582581
);
583582
name = core;
584583
path = ../../core/test/firebase/firestore/core;
@@ -642,7 +641,6 @@
642641
DE51B17B1F0D48AC0013853F /* Model */ = {
643642
isa = PBXGroup;
644643
children = (
645-
5492E0B42021555100B64F25 /* FSTDatabaseIDTests.mm */,
646644
5492E0B22021555000B64F25 /* FSTDocumentKeyTests.mm */,
647645
5492E0B32021555100B64F25 /* FSTDocumentSetTests.mm */,
648646
5492E0B62021555100B64F25 /* FSTDocumentTests.mm */,
@@ -727,7 +725,6 @@
727725
DE51B1A81F0D48AC0013853F /* Core */ = {
728726
isa = PBXGroup;
729727
children = (
730-
5492E05F202154B900B64F25 /* FSTDatabaseInfoTests.mm */,
731728
5492E060202154B900B64F25 /* FSTEventManagerTests.mm */,
732729
5492E05D202154B900B64F25 /* FSTQueryListenerTests.mm */,
733730
5492E061202154B900B64F25 /* FSTQueryTests.mm */,
@@ -1256,7 +1253,6 @@
12561253
54740A581FC914F000713A1A /* autoid_test.cc in Sources */,
12571254
548DB927200D590300E00ABC /* assert_test.cc in Sources */,
12581255
5492E0A62021552D00B64F25 /* FSTPersistenceTestHelpers.mm in Sources */,
1259-
5492E066202154B900B64F25 /* FSTDatabaseInfoTests.mm in Sources */,
12601256
5492E0A12021552D00B64F25 /* FSTMemoryLocalStoreTests.mm in Sources */,
12611257
5436F32420008FAD006E51E3 /* string_printf_test.cc in Sources */,
12621258
5492E067202154B900B64F25 /* FSTEventManagerTests.mm in Sources */,
@@ -1283,7 +1279,6 @@
12831279
5492E0BD2021555100B64F25 /* FSTDocumentTests.mm in Sources */,
12841280
5492E0B92021555100B64F25 /* FSTDocumentKeyTests.mm in Sources */,
12851281
DE2EF0871F3D0B6E003D0CDC /* FSTImmutableSortedSet+Testing.m in Sources */,
1286-
5492E0BB2021555100B64F25 /* FSTDatabaseIDTests.mm in Sources */,
12871282
5492E0C82021557E00B64F25 /* FSTDatastoreTests.mm in Sources */,
12881283
5492E065202154B900B64F25 /* FSTViewTests.mm in Sources */,
12891284
5492E03C2021401F00B64F25 /* XCTestCase+Await.mm in Sources */,
@@ -1304,6 +1299,7 @@
13041299
548DB929200D59F600E00ABC /* comparison_test.cc in Sources */,
13051300
5492E03D2021401F00B64F25 /* FSTAssertTests.mm in Sources */,
13061301
5492E062202154B900B64F25 /* FSTTimestampTests.mm in Sources */,
1302+
AB38D93020236E21000A432D /* database_info_test.cc in Sources */,
13071303
5492E052202154AB00B64F25 /* FIRGeoPointTests.mm in Sources */,
13081304
5492E0C72021557E00B64F25 /* FSTSerializerBetaTests.mm in Sources */,
13091305
5492E03520213FFC00B64F25 /* FSTSpecTests.mm in Sources */,

Firestore/Example/Tests/Core/FSTDatabaseInfoTests.mm

Lines changed: 0 additions & 59 deletions
This file was deleted.

Firestore/Example/Tests/Core/FSTQueryTests.mm

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,18 @@
1919
#import <XCTest/XCTest.h>
2020

2121
#import "Firestore/Source/API/FIRFirestore+Internal.h"
22-
#import "Firestore/Source/Model/FSTDatabaseID.h"
2322
#import "Firestore/Source/Model/FSTDocument.h"
2423
#import "Firestore/Source/Model/FSTDocumentKey.h"
2524
#import "Firestore/Source/Model/FSTPath.h"
2625

2726
#import "Firestore/Example/Tests/Util/FSTHelpers.h"
2827

28+
#include "Firestore/core/src/firebase/firestore/model/database_id.h"
29+
#include "Firestore/core/src/firebase/firestore/util/string_apple.h"
30+
31+
namespace util = firebase::firestore::util;
32+
using firebase::firestore::model::DatabaseId;
33+
2934
NS_ASSUME_NONNULL_BEGIN
3035

3136
/** Convenience methods for building test queries. */
@@ -304,6 +309,7 @@ - (void)testSortsDocumentsInTheCorrectOrder {
304309
[query queryByAddingSortOrder:[FSTSortOrder sortOrderWithFieldPath:FSTTestFieldPath(@"sort")
305310
ascending:YES]];
306311

312+
NSString *defaultDatabaseID = util::WrapNSStringNoCopy(DatabaseId::kDefaultDatabaseId);
307313
// clang-format off
308314
NSArray<FSTDocument *> *docs = @[
309315
FSTTestDoc(@"collection/1", 0, @{@"sort": [NSNull null]}, NO),
@@ -320,7 +326,7 @@ - (void)testSortsDocumentsInTheCorrectOrder {
320326
FSTTestDoc(@"collection/1", 0, @{@"sort": @"ab"}, NO),
321327
FSTTestDoc(@"collection/1", 0, @{@"sort": @"b"}, NO),
322328
FSTTestDoc(@"collection/1", 0, @{@"sort":
323-
FSTTestRef(@"project", kDefaultDatabaseID, @"collection/id1")}, NO),
329+
FSTTestRef(@"project", defaultDatabaseID, @"collection/id1")}, NO),
324330
];
325331
// clang-format on
326332

Firestore/Example/Tests/Integration/FSTDatastoreTests.mm

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,11 @@
2323
#import "Firestore/Source/API/FIRDocumentReference+Internal.h"
2424
#import "Firestore/Source/API/FSTUserDataConverter.h"
2525
#import "Firestore/Source/Auth/FSTEmptyCredentialsProvider.h"
26-
#import "Firestore/Source/Core/FSTDatabaseInfo.h"
2726
#import "Firestore/Source/Core/FSTFirestoreClient.h"
2827
#import "Firestore/Source/Core/FSTQuery.h"
2928
#import "Firestore/Source/Core/FSTSnapshotVersion.h"
3029
#import "Firestore/Source/Core/FSTTimestamp.h"
3130
#import "Firestore/Source/Local/FSTQueryData.h"
32-
#import "Firestore/Source/Model/FSTDatabaseID.h"
3331
#import "Firestore/Source/Model/FSTDocumentKey.h"
3432
#import "Firestore/Source/Model/FSTFieldValue.h"
3533
#import "Firestore/Source/Model/FSTMutation.h"
@@ -43,6 +41,14 @@
4341

4442
#import "Firestore/Example/Tests/Util/FSTIntegrationTestCase.h"
4543

44+
#include "Firestore/core/src/firebase/firestore/core/database_info.h"
45+
#include "Firestore/core/src/firebase/firestore/model/database_id.h"
46+
#include "Firestore/core/src/firebase/firestore/util/string_apple.h"
47+
48+
namespace util = firebase::firestore::util;
49+
using firebase::firestore::core::DatabaseInfo;
50+
using firebase::firestore::model::DatabaseId;
51+
4652
NS_ASSUME_NONNULL_BEGIN
4753

4854
@interface FSTRemoteStore (Tests)
@@ -137,6 +143,7 @@ @implementation FSTDatastoreTests {
137143
FSTLocalStore *_localStore;
138144
id<FSTCredentialsProvider> _credentials;
139145

146+
DatabaseInfo _databaseInfo;
140147
FSTDatastore *_datastore;
141148
FSTRemoteStore *_remoteStore;
142149
}
@@ -154,21 +161,18 @@ - (void)setUp {
154161
[GRPCCall useInsecureConnectionsForHost:settings.host];
155162
}
156163

157-
FSTDatabaseID *databaseID =
158-
[FSTDatabaseID databaseIDWithProject:projectID database:kDefaultDatabaseID];
164+
DatabaseId database_id(util::MakeStringView(projectID), DatabaseId::kDefaultDatabaseId);
159165

160-
FSTDatabaseInfo *databaseInfo = [FSTDatabaseInfo databaseInfoWithDatabaseID:databaseID
161-
persistenceKey:@"test-key"
162-
host:settings.host
163-
sslEnabled:settings.sslEnabled];
166+
_databaseInfo = DatabaseInfo(database_id, "test-key", util::MakeStringView(settings.host),
167+
settings.sslEnabled);
164168

165169
_testWorkerQueue = [FSTDispatchQueue
166170
queueWith:dispatch_queue_create("com.google.firestore.FSTDatastoreTestsWorkerQueue",
167171
DISPATCH_QUEUE_SERIAL)];
168172

169173
_credentials = [[FSTEmptyCredentialsProvider alloc] init];
170174

171-
_datastore = [FSTDatastore datastoreWithDatabase:databaseInfo
175+
_datastore = [FSTDatastore datastoreWithDatabase:&_databaseInfo
172176
workerDispatchQueue:_testWorkerQueue
173177
credentials:_credentials];
174178

0 commit comments

Comments
 (0)