Skip to content

Commit af4d03c

Browse files
JAVA-431 the find() method of GridFS should can be sorted
- added test for both methods for sorting
1 parent b9fd842 commit af4d03c

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

src/test/com/mongodb/gridfs/GridFSTest.java

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.mongodb.gridfs;
1818

1919
import java.io.*;
20+
import java.util.List;
2021

2122
import org.testng.annotations.*;
2223

@@ -289,6 +290,76 @@ public void testCustomFileID() throws IOException {
289290
assertEquals((byte)(idx % 251), (byte)inputStream.read());
290291
}
291292

293+
@Test(groups = {"basic"})
294+
public void testGetFileListWithSorting() throws Exception {
295+
_fs.remove(new BasicDBObject());
296+
297+
int chunkSize = 10;
298+
int fileSize = (int)(3.25 * chunkSize);
299+
300+
byte[] fileBytes = new byte[fileSize];
301+
for (int idx = 0; idx < fileSize; ++idx)
302+
fileBytes[idx] = (byte)(idx % 251);
303+
304+
GridFSInputFile inputFile;
305+
for (int i = 1; i < 5; i++){
306+
inputFile = _fs.createFile(fileBytes);
307+
inputFile.setId(i);
308+
inputFile.setFilename("custom_file_id" + i + ".bin");
309+
inputFile.put("orderTest", i + "");
310+
inputFile.save(chunkSize);
311+
}
312+
313+
DBCursor cursor = _fs.getFileList(null,new BasicDBObject("orderTest", 1));
314+
assertEquals(cursor.size(),4);
315+
assertEquals(cursor.next().get("_id"),1);
316+
assertEquals(cursor.next().get("_id"),2);
317+
assertEquals(cursor.next().get("_id"),3);
318+
assertEquals(cursor.next().get("_id"),4);
319+
320+
cursor = _fs.getFileList(null,new BasicDBObject("filename", -1));
321+
assertEquals(cursor.size(),4);
322+
assertEquals(cursor.next().get("_id"),4);
323+
assertEquals(cursor.next().get("_id"),3);
324+
assertEquals(cursor.next().get("_id"),2);
325+
assertEquals(cursor.next().get("_id"),1);
326+
}
327+
328+
@Test(groups = {"basic"})
329+
public void testFindWithSorting() throws Exception {
330+
_fs.remove(new BasicDBObject());
331+
332+
int chunkSize = 10;
333+
int fileSize = (int)(3.25 * chunkSize);
334+
335+
byte[] fileBytes = new byte[fileSize];
336+
for (int idx = 0; idx < fileSize; ++idx)
337+
fileBytes[idx] = (byte)(idx % 251);
338+
339+
GridFSInputFile inputFile;
340+
for (int i = 1; i < 5; i++){
341+
inputFile = _fs.createFile(fileBytes);
342+
inputFile.setId(i);
343+
inputFile.setFilename("custom_file_id"+i+".bin");
344+
inputFile.put("orderTest", i+"");
345+
inputFile.save(chunkSize);
346+
}
347+
348+
List<GridFSDBFile> result = _fs.find(new BasicDBObject(), new BasicDBObject("orderTest", 1));
349+
assertEquals(result.size(),4);
350+
assertEquals(result.get(0).getId(),1);
351+
assertEquals(result.get(1).getId(),2);
352+
assertEquals(result.get(2).getId(),3);
353+
assertEquals(result.get(3).getId(),4);
354+
355+
result = _fs.find(new BasicDBObject(), new BasicDBObject("filename", -1));
356+
assertEquals(result.size(),4);
357+
assertEquals(result.get(0).getId(),4);
358+
assertEquals(result.get(1).getId(),3);
359+
assertEquals(result.get(2).getId(),2);
360+
assertEquals(result.get(3).getId(),1);
361+
}
362+
292363
final DB _db;
293364
final GridFS _fs;
294365

0 commit comments

Comments
 (0)