diff options
author | zxu <zxu@google.com> | 2018-05-01 13:37:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-01 13:37:53 -0400 |
commit | 4e1ffe464900a45915a3a0a4f2a331b5824c24df (patch) | |
tree | c3586f3d840f4b21a4e4643a46fe94f2443d3959 /Firestore/Example/Tests/SpecTests | |
parent | 51be76700c3b71a0924e8eaf7bac4b02e0130e62 (diff) |
Port `SnapshotVersion` for the rest Firestore modulo (#1185)
* remove conversions in `Local` and `Remote`
* replace `FSTSnapshotVersion` in `Model`
* replace `FSTSnapshotVersion` in the rest
* let test check equal with C++ equal
* fix newly added code
* address changes
Diffstat (limited to 'Firestore/Example/Tests/SpecTests')
5 files changed, 35 insertions, 28 deletions
diff --git a/Firestore/Example/Tests/SpecTests/FSTMockDatastore.h b/Firestore/Example/Tests/SpecTests/FSTMockDatastore.h index 4f03a01..6951f9c 100644 --- a/Firestore/Example/Tests/SpecTests/FSTMockDatastore.h +++ b/Firestore/Example/Tests/SpecTests/FSTMockDatastore.h @@ -18,7 +18,7 @@ #import "Firestore/Source/Remote/FSTDatastore.h" -@class FSTSnapshotVersion; +#include "Firestore/core/src/firebase/firestore/model/snapshot_version.h" NS_ASSUME_NONNULL_BEGIN @@ -43,11 +43,13 @@ NS_ASSUME_NONNULL_BEGIN /** Injects an Added WatchChange that marks the given targetIDs current. */ - (void)writeWatchCurrentWithTargetIDs:(NSArray<FSTBoxedTargetID *> *)targetIDs - snapshotVersion:(FSTSnapshotVersion *)snapshotVersion + snapshotVersion: + (const firebase::firestore::model::SnapshotVersion &)snapshotVersion resumeToken:(NSData *)resumeToken; /** Injects a WatchChange as though it had come from the backend. */ -- (void)writeWatchChange:(FSTWatchChange *)change snapshotVersion:(FSTSnapshotVersion *)snap; +- (void)writeWatchChange:(FSTWatchChange *)change + snapshotVersion:(const firebase::firestore::model::SnapshotVersion &)snap; /** Injects a stream failure as though it had come from the backend. */ - (void)failWatchStreamWithError:(NSError *)error; @@ -69,7 +71,7 @@ NS_ASSUME_NONNULL_BEGIN - (int)writesSent; /** Injects a write ack as though it had come from the backend in response to a write. */ -- (void)ackWriteWithVersion:(FSTSnapshotVersion *)commitVersion +- (void)ackWriteWithVersion:(const firebase::firestore::model::SnapshotVersion &)commitVersion mutationResults:(NSArray<FSTMutationResult *> *)results; /** Injects a stream failure as though it had come from the backend. */ diff --git a/Firestore/Example/Tests/SpecTests/FSTMockDatastore.mm b/Firestore/Example/Tests/SpecTests/FSTMockDatastore.mm index 6715b24..263ca22 100644 --- a/Firestore/Example/Tests/SpecTests/FSTMockDatastore.mm +++ b/Firestore/Example/Tests/SpecTests/FSTMockDatastore.mm @@ -16,7 +16,6 @@ #import "Firestore/Example/Tests/SpecTests/FSTMockDatastore.h" -#import "Firestore/Source/Core/FSTSnapshotVersion.h" #import "Firestore/Source/Local/FSTQueryData.h" #import "Firestore/Source/Model/FSTMutation.h" #import "Firestore/Source/Remote/FSTSerializerBeta.h" @@ -36,6 +35,7 @@ using firebase::firestore::auth::CredentialsProvider; using firebase::firestore::auth::EmptyCredentialsProvider; using firebase::firestore::core::DatabaseInfo; using firebase::firestore::model::DatabaseId; +using firebase::firestore::model::SnapshotVersion; @class GRPCProtoCall; @@ -120,9 +120,8 @@ NS_ASSUME_NONNULL_BEGIN FSTLog(@"watchQuery: %d: %@", query.targetID, query.query); self.datastore.watchStreamRequestCount += 1; // Snapshot version is ignored on the wire - FSTQueryData *sentQueryData = - [query queryDataByReplacingSnapshotVersion:[FSTSnapshotVersion noVersion] - resumeToken:query.resumeToken]; + FSTQueryData *sentQueryData = [query queryDataByReplacingSnapshotVersion:SnapshotVersion::None() + resumeToken:query.resumeToken]; self.activeTargets[@(query.targetID)] = sentQueryData; } @@ -138,7 +137,7 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Helper methods. -- (void)writeWatchChange:(FSTWatchChange *)change snapshotVersion:(FSTSnapshotVersion *)snap { +- (void)writeWatchChange:(FSTWatchChange *)change snapshotVersion:(const SnapshotVersion &)snap { if ([change isKindOfClass:[FSTWatchTargetChange class]]) { FSTWatchTargetChange *targetChange = (FSTWatchTargetChange *)change; if (targetChange.cause) { @@ -242,7 +241,7 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Helper methods. /** Injects a write ack as though it had come from the backend in response to a write. */ -- (void)ackWriteWithVersion:(FSTSnapshotVersion *)commitVersion +- (void)ackWriteWithVersion:(const SnapshotVersion &)commitVersion mutationResults:(NSArray<FSTMutationResult *> *)results { [self.delegate writeStreamDidReceiveResponseWithVersion:commitVersion mutationResults:results]; } @@ -326,7 +325,7 @@ NS_ASSUME_NONNULL_BEGIN return [self.writeStream sentMutationsCount]; } -- (void)ackWriteWithVersion:(FSTSnapshotVersion *)commitVersion +- (void)ackWriteWithVersion:(const SnapshotVersion &)commitVersion mutationResults:(NSArray<FSTMutationResult *> *)results { [self.writeStream ackWriteWithVersion:commitVersion mutationResults:results]; } @@ -340,11 +339,11 @@ NS_ASSUME_NONNULL_BEGIN [FSTWatchTargetChange changeWithState:FSTWatchTargetChangeStateAdded targetIDs:targetIDs cause:nil]; - [self writeWatchChange:change snapshotVersion:[FSTSnapshotVersion noVersion]]; + [self writeWatchChange:change snapshotVersion:SnapshotVersion::None()]; } - (void)writeWatchCurrentWithTargetIDs:(NSArray<FSTBoxedTargetID *> *)targetIDs - snapshotVersion:(FSTSnapshotVersion *)snapshotVersion + snapshotVersion:(const SnapshotVersion &)snapshotVersion resumeToken:(NSData *)resumeToken { FSTWatchTargetChange *change = [FSTWatchTargetChange changeWithState:FSTWatchTargetChangeStateCurrent @@ -353,7 +352,7 @@ NS_ASSUME_NONNULL_BEGIN [self writeWatchChange:change snapshotVersion:snapshotVersion]; } -- (void)writeWatchChange:(FSTWatchChange *)change snapshotVersion:(FSTSnapshotVersion *)snap { +- (void)writeWatchChange:(FSTWatchChange *)change snapshotVersion:(const SnapshotVersion &)snap { [self.watchStream writeWatchChange:change snapshotVersion:snap]; } diff --git a/Firestore/Example/Tests/SpecTests/FSTSpecTests.mm b/Firestore/Example/Tests/SpecTests/FSTSpecTests.mm index 7446d2c..12be590 100644 --- a/Firestore/Example/Tests/SpecTests/FSTSpecTests.mm +++ b/Firestore/Example/Tests/SpecTests/FSTSpecTests.mm @@ -24,7 +24,6 @@ #import "Firestore/Source/Core/FSTEventManager.h" #import "Firestore/Source/Core/FSTQuery.h" -#import "Firestore/Source/Core/FSTSnapshotVersion.h" #import "Firestore/Source/Local/FSTEagerGarbageCollector.h" #import "Firestore/Source/Local/FSTNoOpGarbageCollector.h" #import "Firestore/Source/Local/FSTPersistence.h" @@ -46,11 +45,15 @@ #include "Firestore/core/src/firebase/firestore/auth/user.h" #include "Firestore/core/src/firebase/firestore/model/document_key.h" +#include "Firestore/core/src/firebase/firestore/model/snapshot_version.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::auth::User; using firebase::firestore::model::DocumentKey; +using firebase::firestore::model::SnapshotVersion; using firebase::firestore::model::TargetId; NS_ASSUME_NONNULL_BEGIN @@ -145,8 +148,8 @@ static NSString *const kNoIOSTag = @"no-ios"; } } -- (FSTSnapshotVersion *)parseVersion:(NSNumber *_Nullable)version { - return FSTTestVersion(version.longLongValue); +- (SnapshotVersion)parseVersion:(NSNumber *_Nullable)version { + return testutil::Version(version.longLongValue); } - (FSTDocumentViewChange *)parseChange:(NSArray *)change ofType:(FSTDocumentViewChangeType)type { @@ -254,9 +257,11 @@ static NSString *const kNoIOSTag = @"no-ios"; NSArray *docSpec = watchEntity[@"doc"]; FSTDocumentKey *key = FSTTestDocKey(docSpec[0]); FSTObjectValue *value = FSTTestObjectValue(docSpec[2]); - FSTSnapshotVersion *version = [self parseVersion:docSpec[1]]; - FSTMaybeDocument *doc = - [FSTDocument documentWithData:value key:key version:version hasLocalMutations:NO]; + SnapshotVersion version = [self parseVersion:docSpec[1]]; + FSTMaybeDocument *doc = [FSTDocument documentWithData:value + key:key + version:std::move(version) + hasLocalMutations:NO]; FSTWatchChange *change = [[FSTDocumentWatchChange alloc] initWithUpdatedTargetIDs:watchEntity[@"targets"] removedTargetIDs:watchEntity[@"removedTargets"] @@ -309,7 +314,7 @@ static NSString *const kNoIOSTag = @"no-ios"; } - (void)doWriteAck:(NSDictionary *)spec { - FSTSnapshotVersion *version = [self parseVersion:spec[@"version"]]; + SnapshotVersion version = [self parseVersion:spec[@"version"]]; NSNumber *expectUserCallback = spec[@"expectUserCallback"]; FSTMutationResult *mutationResult = @@ -550,7 +555,7 @@ static NSString *const kNoIOSTag = @"no-ios"; targetID:targetID listenSequenceNumber:0 purpose:FSTQueryPurposeListen - snapshotVersion:[FSTSnapshotVersion noVersion] + snapshotVersion:SnapshotVersion::None() resumeToken:resumeToken]; }]; self.driver.expectedActiveTargets = expectedActiveTargets; diff --git a/Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.h b/Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.h index ac44cb5..cfd8974 100644 --- a/Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.h +++ b/Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.h @@ -25,13 +25,13 @@ #include "Firestore/core/src/firebase/firestore/auth/user.h" #include "Firestore/core/src/firebase/firestore/model/document_key.h" +#include "Firestore/core/src/firebase/firestore/model/snapshot_version.h" @class FSTDocumentKey; @class FSTMutation; @class FSTMutationResult; @class FSTQuery; @class FSTQueryData; -@class FSTSnapshotVersion; @class FSTViewSnapshot; @class FSTWatchChange; @protocol FSTGarbageCollector; @@ -150,7 +150,7 @@ typedef std::unordered_map<firebase::firestore::auth::User, * simulating the server having sent a complete snapshot. */ - (void)receiveWatchChange:(FSTWatchChange *)change - snapshotVersion:(FSTSnapshotVersion *_Nullable)snapshot; + snapshotVersion:(const firebase::firestore::model::SnapshotVersion &)snapshot; /** * Delivers a watch stream error as if the Streaming Watch backend has generated some kind of error. @@ -195,7 +195,8 @@ typedef std::unordered_map<firebase::firestore::auth::User, * the mutation. Snapshot versions must be monotonically increasing. * @param mutationResults The mutation results for the write that is being acked. */ -- (FSTOutstandingWrite *)receiveWriteAckWithVersion:(FSTSnapshotVersion *)commitVersion +- (FSTOutstandingWrite *)receiveWriteAckWithVersion: + (const firebase::firestore::model::SnapshotVersion &)commitVersion mutationResults:(NSArray<FSTMutationResult *> *)mutationResults; /** diff --git a/Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.mm b/Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.mm index f167ce5..2aa0e30 100644 --- a/Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.mm +++ b/Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.mm @@ -24,7 +24,6 @@ #import "Firestore/Source/Core/FSTEventManager.h" #import "Firestore/Source/Core/FSTQuery.h" -#import "Firestore/Source/Core/FSTSnapshotVersion.h" #import "Firestore/Source/Core/FSTSyncEngine.h" #import "Firestore/Source/Local/FSTLocalStore.h" #import "Firestore/Source/Local/FSTPersistence.h" @@ -49,6 +48,7 @@ using firebase::firestore::auth::User; using firebase::firestore::core::DatabaseInfo; using firebase::firestore::model::DatabaseId; using firebase::firestore::model::DocumentKey; +using firebase::firestore::model::SnapshotVersion; using firebase::firestore::model::TargetId; NS_ASSUME_NONNULL_BEGIN @@ -243,7 +243,7 @@ NS_ASSUME_NONNULL_BEGIN }]; } -- (FSTOutstandingWrite *)receiveWriteAckWithVersion:(FSTSnapshotVersion *)commitVersion +- (FSTOutstandingWrite *)receiveWriteAckWithVersion:(const SnapshotVersion &)commitVersion mutationResults: (NSArray<FSTMutationResult *> *)mutationResults { FSTOutstandingWrite *write = [self currentOutstandingWrites].firstObject; @@ -333,7 +333,7 @@ NS_ASSUME_NONNULL_BEGIN } - (void)receiveWatchChange:(FSTWatchChange *)change - snapshotVersion:(FSTSnapshotVersion *_Nullable)snapshot { + snapshotVersion:(const SnapshotVersion &)snapshot { [self.dispatchQueue dispatchSync:^{ [self.datastore writeWatchChange:change snapshotVersion:snapshot]; }]; |