Skip to content

Commit 0f870e9

Browse files
committed
Port spec test changes from firebase/firebase-js-sdk#7229 (Optimize local cache sync when resuming a query that had docs deleted)
1 parent c76b67c commit 0f870e9

File tree

8 files changed

+7643
-773
lines changed

8 files changed

+7643
-773
lines changed

firebase-firestore/src/test/java/com/google/firebase/firestore/spec/SpecTestCase.java

+17-1
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,22 @@ private Query parseQuery(Object querySpec) throws JSONException {
420420
}
421421
}
422422

423+
private static QueryPurpose parseQueryPurpose(Object value) {
424+
if (!(value instanceof Integer)) {
425+
throw new IllegalArgumentException("invalid query purpose: " + value);
426+
}
427+
switch ((Integer) value) {
428+
case 0:
429+
return QueryPurpose.LISTEN;
430+
case 1:
431+
return QueryPurpose.EXISTENCE_FILTER_MISMATCH;
432+
case 3:
433+
return QueryPurpose.LIMBO_RESOLUTION;
434+
default:
435+
throw new IllegalArgumentException("unknown query purpose value: " + value);
436+
}
437+
}
438+
423439
private DocumentViewChange parseChange(JSONObject jsonDoc, DocumentViewChange.Type type)
424440
throws JSONException {
425441
long version = jsonDoc.getLong("version");
@@ -1027,7 +1043,7 @@ private void validateExpectedState(@Nullable JSONObject expectedState) throws JS
10271043

10281044
QueryPurpose purpose = QueryPurpose.LISTEN;
10291045
if (queryDataJson.has("targetPurpose")) {
1030-
purpose = QueryPurpose.values()[queryDataJson.getInt("targetPurpose")];
1046+
purpose = parseQueryPurpose(queryDataJson.get("targetPurpose"));
10311047
}
10321048

10331049
TargetData targetData =

firebase-firestore/src/test/resources/json/bundle_spec_test.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1179,7 +1179,7 @@
11791179
}
11801180
],
11811181
"resumeToken": "",
1182-
"targetPurpose": 2
1182+
"targetPurpose": 3
11831183
},
11841184
"2": {
11851185
"queries": [

0 commit comments

Comments
 (0)