From f5579785e47e0d9a1e4e0b3ae2a09cfa98bb498c Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Thu, 26 Apr 2018 09:33:29 -0700 Subject: [PATCH] Fixing bug in QuerySnapshot --- .../google/cloud/firestore/QuerySnapshot.java | 2 +- .../com/google/cloud/firestore/QueryTest.java | 24 +++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/google-cloud-firestore/src/main/java/com/google/cloud/firestore/QuerySnapshot.java b/google-cloud-firestore/src/main/java/com/google/cloud/firestore/QuerySnapshot.java index e5e123354f0b..b840f40a133e 100644 --- a/google-cloud-firestore/src/main/java/com/google/cloud/firestore/QuerySnapshot.java +++ b/google-cloud-firestore/src/main/java/com/google/cloud/firestore/QuerySnapshot.java @@ -59,7 +59,7 @@ public List getDocumentChanges() { if (documentChanges == null) { documentChanges = new ArrayList<>(); for (int i = 0; i < documents.size(); ++i) { - documentChanges.add(new DocumentChange(documents.get(0), Type.ADDED, -1, i)); + documentChanges.add(new DocumentChange(documents.get(i), Type.ADDED, -1, i)); } } } diff --git a/google-cloud-firestore/src/test/java/com/google/cloud/firestore/QueryTest.java b/google-cloud-firestore/src/test/java/com/google/cloud/firestore/QueryTest.java index c64ec39f2f69..8c756877eab3 100644 --- a/google-cloud-firestore/src/test/java/com/google/cloud/firestore/QueryTest.java +++ b/google-cloud-firestore/src/test/java/com/google/cloud/firestore/QueryTest.java @@ -528,10 +528,26 @@ public void getResult() throws Exception { assertEquals(2, result.size()); assertEquals(2, result.getDocuments().size()); - Iterator iterator = result.iterator(); - assertEquals("doc1", iterator.next().getId()); - assertEquals("doc2", iterator.next().getId()); - assertFalse(iterator.hasNext()); + Iterator docIterator = result.iterator(); + assertEquals("doc1", docIterator.next().getId()); + assertEquals("doc2", docIterator.next().getId()); + assertFalse(docIterator.hasNext()); + + Iterator changeIterator = result.getDocumentChanges().iterator(); + + DocumentChange documentChange = changeIterator.next(); + assertEquals("doc1",documentChange.getDocument().getId()); + assertEquals(DocumentChange.Type.ADDED,documentChange.getType()); + assertEquals(-1,documentChange.getOldIndex()); + assertEquals(0,documentChange.getNewIndex()); + + documentChange = changeIterator.next(); + assertEquals("doc2",documentChange.getDocument().getId()); + assertEquals(DocumentChange.Type.ADDED,documentChange.getType()); + assertEquals(-1,documentChange.getOldIndex()); + assertEquals(1,documentChange.getNewIndex()); + + assertFalse(changeIterator.hasNext()); assertEquals(Instant.ofEpochSecond(1, 2), result.getReadTime());