Skip to content

Commit 84894be

Browse files
authored
Firestore Spec Tests: Port JS PR 7229 (optimized query resumption using bloom filter) (#4929)
1 parent 1b43eb2 commit 84894be

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

Lines changed: 17 additions & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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)