Skip to content

Commit 3b5b49b

Browse files
authored
Add expected count to Target (#10872)
1 parent 93815e6 commit 3b5b49b

File tree

15 files changed

+893
-25
lines changed

15 files changed

+893
-25
lines changed

Firestore/Example/Tests/SpecTests/FSTMockDatastore.mm

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,11 @@ void WatchQuery(const TargetData& query) override {
115115
// Snapshot version is ignored on the wire
116116
TargetData sentTargetData =
117117
query.WithResumeToken(query.resume_token(), SnapshotVersion::None());
118+
119+
if (query.expected_count().has_value()) {
120+
sentTargetData = sentTargetData.WithExpectedCount(query.expected_count().value());
121+
}
122+
118123
datastore_->IncrementWatchStreamRequests();
119124
active_targets_[query.target_id()] = sentTargetData;
120125
}

Firestore/Example/Tests/SpecTests/FSTSpecTests.mm

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -780,6 +780,10 @@ - (void)validateExpectedState:(nullable NSDictionary *)expectedState {
780780
target_data = target_data.WithResumeToken(
781781
ByteString(), [self parseVersion:queryData[@"readTime"]]);
782782
}
783+
784+
if ([queryData objectForKey:@"expectedCount"] != nil) {
785+
target_data = target_data.WithExpectedCount([queryData[@"expectedCount"] intValue]);
786+
}
783787
queries.push_back(std::move(target_data));
784788
}
785789
expectedActiveTargets[targetID] = std::move(queries);
@@ -896,7 +900,13 @@ - (void)validateActiveTargets {
896900
XCTAssertEqual(actual.target_id(), targetData.target_id());
897901
XCTAssertEqual(actual.snapshot_version(), targetData.snapshot_version());
898902
XCTAssertEqual(actual.resume_token(), targetData.resume_token());
899-
903+
if (targetData.expected_count().has_value()) {
904+
if (!actual.expected_count().has_value()) {
905+
XCTFail("Actual target data doesn't have an expected_count.");
906+
} else {
907+
XCTAssertEqual(actual.expected_count().value(), targetData.expected_count().value());
908+
}
909+
}
900910
actualTargets.erase(targetID);
901911
}
902912

0 commit comments

Comments
 (0)