|
17 | 17 | package com.mongodb.gridfs;
|
18 | 18 |
|
19 | 19 | import java.io.*;
|
| 20 | +import java.util.List; |
20 | 21 |
|
21 | 22 | import org.testng.annotations.*;
|
22 | 23 |
|
@@ -289,6 +290,76 @@ public void testCustomFileID() throws IOException {
|
289 | 290 | assertEquals((byte)(idx % 251), (byte)inputStream.read());
|
290 | 291 | }
|
291 | 292 |
|
| 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 | + |
292 | 363 | final DB _db;
|
293 | 364 | final GridFS _fs;
|
294 | 365 |
|
|
0 commit comments