| { |
| "tests": [ |
| { |
| "description": "listen: multiple documents, added, deleted and updated", |
| "comment": "Changes should be ordered with deletes first, then additions, then mods,\neach in query order.\nOld indices refer to the immediately previous state, not the previous snapshot", |
| "listen": { |
| "responses": [ |
| { |
| "documentChange": { |
| "document": { |
| "name": "projects/projectID/databases/(default)/documents/C/d1", |
| "fields": { |
| "a": { |
| "integerValue": "3" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "targetIds": [ |
| 1 |
| ] |
| } |
| }, |
| { |
| "documentChange": { |
| "document": { |
| "name": "projects/projectID/databases/(default)/documents/C/d3", |
| "fields": { |
| "a": { |
| "integerValue": "1" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "targetIds": [ |
| 1 |
| ] |
| } |
| }, |
| { |
| "documentChange": { |
| "document": { |
| "name": "projects/projectID/databases/(default)/documents/C/d2", |
| "fields": { |
| "a": { |
| "integerValue": "1" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "targetIds": [ |
| 1 |
| ] |
| } |
| }, |
| { |
| "documentChange": { |
| "document": { |
| "name": "projects/projectID/databases/(default)/documents/C/d4", |
| "fields": { |
| "a": { |
| "integerValue": "2" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "targetIds": [ |
| 1 |
| ] |
| } |
| }, |
| { |
| "targetChange": { |
| "targetChangeType": "CURRENT" |
| } |
| }, |
| { |
| "targetChange": { |
| "readTime": "1970-01-01T00:00:02Z" |
| } |
| }, |
| { |
| "documentChange": { |
| "document": { |
| "name": "projects/projectID/databases/(default)/documents/C/d5", |
| "fields": { |
| "a": { |
| "integerValue": "4" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "targetIds": [ |
| 1 |
| ] |
| } |
| }, |
| { |
| "documentDelete": { |
| "document": "projects/projectID/databases/(default)/documents/C/d3" |
| } |
| }, |
| { |
| "documentChange": { |
| "document": { |
| "name": "projects/projectID/databases/(default)/documents/C/d1", |
| "fields": { |
| "a": { |
| "integerValue": "-1" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:03Z" |
| }, |
| "targetIds": [ |
| 1 |
| ] |
| } |
| }, |
| { |
| "documentChange": { |
| "document": { |
| "name": "projects/projectID/databases/(default)/documents/C/d6", |
| "fields": { |
| "a": { |
| "integerValue": "3" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "targetIds": [ |
| 1 |
| ] |
| } |
| }, |
| { |
| "documentDelete": { |
| "document": "projects/projectID/databases/(default)/documents/C/d2" |
| } |
| }, |
| { |
| "documentChange": { |
| "document": { |
| "name": "projects/projectID/databases/(default)/documents/C/d4", |
| "fields": { |
| "a": { |
| "integerValue": "-2" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:03Z" |
| }, |
| "targetIds": [ |
| 1 |
| ] |
| } |
| }, |
| { |
| "targetChange": { |
| "readTime": "1970-01-01T00:00:04Z" |
| } |
| } |
| ], |
| "snapshots": [ |
| { |
| "docs": [ |
| { |
| "name": "projects/projectID/databases/(default)/documents/C/d2", |
| "fields": { |
| "a": { |
| "integerValue": "1" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| { |
| "name": "projects/projectID/databases/(default)/documents/C/d3", |
| "fields": { |
| "a": { |
| "integerValue": "1" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| { |
| "name": "projects/projectID/databases/(default)/documents/C/d4", |
| "fields": { |
| "a": { |
| "integerValue": "2" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| { |
| "name": "projects/projectID/databases/(default)/documents/C/d1", |
| "fields": { |
| "a": { |
| "integerValue": "3" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| } |
| ], |
| "changes": [ |
| { |
| "kind": "ADDED", |
| "doc": { |
| "name": "projects/projectID/databases/(default)/documents/C/d2", |
| "fields": { |
| "a": { |
| "integerValue": "1" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "oldIndex": -1 |
| }, |
| { |
| "kind": "ADDED", |
| "doc": { |
| "name": "projects/projectID/databases/(default)/documents/C/d3", |
| "fields": { |
| "a": { |
| "integerValue": "1" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "oldIndex": -1, |
| "newIndex": 1 |
| }, |
| { |
| "kind": "ADDED", |
| "doc": { |
| "name": "projects/projectID/databases/(default)/documents/C/d4", |
| "fields": { |
| "a": { |
| "integerValue": "2" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "oldIndex": -1, |
| "newIndex": 2 |
| }, |
| { |
| "kind": "ADDED", |
| "doc": { |
| "name": "projects/projectID/databases/(default)/documents/C/d1", |
| "fields": { |
| "a": { |
| "integerValue": "3" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "oldIndex": -1, |
| "newIndex": 3 |
| } |
| ], |
| "readTime": "1970-01-01T00:00:02Z" |
| }, |
| { |
| "docs": [ |
| { |
| "name": "projects/projectID/databases/(default)/documents/C/d4", |
| "fields": { |
| "a": { |
| "integerValue": "-2" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:03Z" |
| }, |
| { |
| "name": "projects/projectID/databases/(default)/documents/C/d1", |
| "fields": { |
| "a": { |
| "integerValue": "-1" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:03Z" |
| }, |
| { |
| "name": "projects/projectID/databases/(default)/documents/C/d6", |
| "fields": { |
| "a": { |
| "integerValue": "3" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| { |
| "name": "projects/projectID/databases/(default)/documents/C/d5", |
| "fields": { |
| "a": { |
| "integerValue": "4" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| } |
| ], |
| "changes": [ |
| { |
| "kind": "REMOVED", |
| "doc": { |
| "name": "projects/projectID/databases/(default)/documents/C/d2", |
| "fields": { |
| "a": { |
| "integerValue": "1" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "newIndex": -1 |
| }, |
| { |
| "kind": "REMOVED", |
| "doc": { |
| "name": "projects/projectID/databases/(default)/documents/C/d3", |
| "fields": { |
| "a": { |
| "integerValue": "1" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "newIndex": -1 |
| }, |
| { |
| "kind": "ADDED", |
| "doc": { |
| "name": "projects/projectID/databases/(default)/documents/C/d6", |
| "fields": { |
| "a": { |
| "integerValue": "3" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "oldIndex": -1, |
| "newIndex": 2 |
| }, |
| { |
| "kind": "ADDED", |
| "doc": { |
| "name": "projects/projectID/databases/(default)/documents/C/d5", |
| "fields": { |
| "a": { |
| "integerValue": "4" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:01Z" |
| }, |
| "oldIndex": -1, |
| "newIndex": 3 |
| }, |
| { |
| "kind": "MODIFIED", |
| "doc": { |
| "name": "projects/projectID/databases/(default)/documents/C/d4", |
| "fields": { |
| "a": { |
| "integerValue": "-2" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:03Z" |
| } |
| }, |
| { |
| "kind": "MODIFIED", |
| "doc": { |
| "name": "projects/projectID/databases/(default)/documents/C/d1", |
| "fields": { |
| "a": { |
| "integerValue": "-1" |
| } |
| }, |
| "createTime": "1970-01-01T00:00:01Z", |
| "updateTime": "1970-01-01T00:00:03Z" |
| }, |
| "oldIndex": 1, |
| "newIndex": 1 |
| } |
| ], |
| "readTime": "1970-01-01T00:00:04Z" |
| } |
| ] |
| } |
| } |
| ] |
| } |