54
54
* </ol>
55
55
*/
56
56
abstract class RemoteDocumentCacheTestCase {
57
+ private final Map <String , Object > DATA = map ("data" , 2 );
57
58
58
59
private Persistence persistence ;
59
60
private RemoteDocumentCache remoteDocumentCache ;
@@ -127,7 +128,7 @@ public void testSetAndReadLotsOfDocuments() {
127
128
List <String > paths = new ArrayList <>();
128
129
Map <DocumentKey , MutableDocument > expected = new HashMap <>();
129
130
for (int i = 0 ; i < lotsOfDocuments ; i ++) {
130
- String path = "foo/" + String . valueOf ( i ) ;
131
+ String path = "foo/" + i ;
131
132
paths .add (path );
132
133
expected .put (DocumentKey .fromPathString (path ), addTestDocumentAtPath (path ));
133
134
}
@@ -173,7 +174,6 @@ public void testRemoveNonExistentDocument() {
173
174
public void testDocumentsMatchingQuery () {
174
175
// TODO: This just verifies that we do a prefix scan against the
175
176
// query path. We'll need more tests once we add index support.
176
- Map <String , Object > docData = map ("data" , 2 );
177
177
addTestDocumentAtPath ("a/1" );
178
178
addTestDocumentAtPath ("b/1" );
179
179
addTestDocumentAtPath ("b/2" );
@@ -182,41 +182,51 @@ public void testDocumentsMatchingQuery() {
182
182
Query query = Query .atPath (path ("b" ));
183
183
ImmutableSortedMap <DocumentKey , MutableDocument > results =
184
184
remoteDocumentCache .getAllDocumentsMatchingQuery (query , IndexOffset .NONE );
185
- List <MutableDocument > expected = asList (doc ("b/1" , 42 , docData ), doc ("b/2" , 42 , docData ));
186
- // assertEquals(expected, values(results));
185
+ List <MutableDocument > expected = asList (doc ("b/1" , 42 , DATA ), doc ("b/2" , 42 , DATA ));
186
+ assertEquals (expected , values (results ));
187
+ }
188
+
189
+ @ Test
190
+ public void testDocumentsMatchingQueryExcludesSubcollections () {
191
+ addTestDocumentAtPath ("a/1" );
192
+ addTestDocumentAtPath ("a/1/b/1" );
193
+ addTestDocumentAtPath ("a/2" );
194
+
195
+ Query query = Query .atPath (path ("a" ));
196
+ ImmutableSortedMap <DocumentKey , MutableDocument > results =
197
+ remoteDocumentCache .getAllDocumentsMatchingQuery (query , IndexOffset .NONE );
198
+ List <MutableDocument > expected = asList (doc ("a/1" , 42 , DATA ), doc ("a/2" , 42 , DATA ));
199
+ assertEquals (expected , values (results ));
187
200
}
188
201
189
202
@ Test
190
203
public void testDocumentsMatchingQuerySinceReadTimeAndSeconds () {
191
- Map <String , Object > docData = map ("data" , 2 );
192
204
addTestDocumentAtPath ("b/old" , /* updateTime= */ 1 , /* readTime= */ 11 );
193
205
addTestDocumentAtPath ("b/current" , /* updateTime= */ 2 , /* readTime= = */ 12 );
194
206
addTestDocumentAtPath ("b/new" , /* updateTime= */ 3 , /* readTime= = */ 13 );
195
207
196
208
Query query = Query .atPath (path ("b" ));
197
209
ImmutableSortedMap <DocumentKey , MutableDocument > results =
198
210
remoteDocumentCache .getAllDocumentsMatchingQuery (query , IndexOffset .create (version (12 )));
199
- List <MutableDocument > expected = asList (doc ("b/new" , 3 , docData ));
211
+ List <MutableDocument > expected = asList (doc ("b/new" , 3 , DATA ));
200
212
assertEquals (expected , values (results ));
201
213
}
202
214
203
215
@ Test
204
216
public void testDocumentsMatchingQuerySinceReadTimeAndNanoseconds () {
205
- Map <String , Object > docData = map ("data" , 2 );
206
- add (doc ("b/old" , 1 , docData ), version (1 , 1 ));
207
- add (doc ("b/current" , 1 , docData ), version (1 , 2 ));
208
- add (doc ("b/new" , 1 , docData ), version (1 , 3 ));
217
+ add (doc ("b/old" , 1 , DATA ), version (1 , 1 ));
218
+ add (doc ("b/current" , 1 , DATA ), version (1 , 2 ));
219
+ add (doc ("b/new" , 1 , DATA ), version (1 , 3 ));
209
220
210
221
Query query = Query .atPath (path ("b" ));
211
222
ImmutableSortedMap <DocumentKey , MutableDocument > results =
212
223
remoteDocumentCache .getAllDocumentsMatchingQuery (query , IndexOffset .create (version (1 , 2 )));
213
- List <MutableDocument > expected = asList (doc ("b/new" , 1 , docData ));
224
+ List <MutableDocument > expected = asList (doc ("b/new" , 1 , DATA ));
214
225
assertEquals (expected , values (results ));
215
226
}
216
227
217
228
@ Test
218
229
public void testDocumentsMatchingQuerySinceReadTimeAndDocumentKey () {
219
- Map <String , Object > docData = map ("data" , 2 );
220
230
addTestDocumentAtPath ("b/a" , /* updateTime= */ 1 , /* readTime= */ 11 );
221
231
addTestDocumentAtPath ("b/b" , /* updateTime= */ 2 , /* readTime= = */ 11 );
222
232
addTestDocumentAtPath ("b/c" , /* updateTime= */ 3 , /* readTime= = */ 11 );
@@ -226,20 +236,19 @@ public void testDocumentsMatchingQuerySinceReadTimeAndDocumentKey() {
226
236
ImmutableSortedMap <DocumentKey , MutableDocument > results =
227
237
remoteDocumentCache .getAllDocumentsMatchingQuery (
228
238
query , IndexOffset .create (version (11 ), key ("b/b" )));
229
- List <MutableDocument > expected = asList (doc ("b/c" , 3 , docData ), doc ("b/d" , 4 , docData ));
239
+ List <MutableDocument > expected = asList (doc ("b/c" , 3 , DATA ), doc ("b/d" , 4 , DATA ));
230
240
assertEquals (expected , values (results ));
231
241
}
232
242
233
243
@ Test
234
244
public void testDocumentsMatchingUsesReadTimeNotUpdateTime () {
235
- Map <String , Object > docData = map ("data" , 2 );
236
245
addTestDocumentAtPath ("b/old" , /* updateTime= */ 1 , /* readTime= */ 2 );
237
246
addTestDocumentAtPath ("b/new" , /* updateTime= */ 2 , /* readTime= */ 1 );
238
247
239
248
Query query = Query .atPath (path ("b" ));
240
249
ImmutableSortedMap <DocumentKey , MutableDocument > results =
241
250
remoteDocumentCache .getAllDocumentsMatchingQuery (query , IndexOffset .create (version (1 )));
242
- List <MutableDocument > expected = asList (doc ("b/old" , 1 , docData ));
251
+ List <MutableDocument > expected = asList (doc ("b/old" , 1 , DATA ));
243
252
assertEquals (expected , values (results ));
244
253
}
245
254
0 commit comments