@@ -58,31 +58,29 @@ public void testConstructor() throws Exception {
58
58
String contentType = "content_type" ;
59
59
File file = temporaryFolder .newFile (name );
60
60
61
+ // TODO(mengyan): After we have proper staging strategy, we should verify the staging file's
62
+ // content is the same with the original file.
63
+
61
64
ParseFile parseFile = new ParseFile (name , data , contentType );
62
65
assertEquals ("name" , parseFile .getName ());
63
- assertEquals ("hello" , new String (parseFile .getData ()));
64
66
assertEquals ("content_type" , parseFile .getState ().mimeType ());
65
67
assertTrue (parseFile .isDirty ());
66
68
67
69
parseFile = new ParseFile (data );
68
70
assertEquals ("file" , parseFile .getName ()); // Default
69
- assertEquals ("hello" , new String (parseFile .getData ()));
70
71
assertEquals (null , parseFile .getState ().mimeType ());
71
72
assertTrue (parseFile .isDirty ());
72
73
73
74
parseFile = new ParseFile (name , data );
74
75
assertEquals ("name" , parseFile .getName ());
75
- assertEquals ("hello" , new String (parseFile .getData ()));
76
76
assertEquals (null , parseFile .getState ().mimeType ());
77
77
assertTrue (parseFile .isDirty ());
78
78
79
79
parseFile = new ParseFile (data , contentType );
80
80
assertEquals ("file" , parseFile .getName ()); // Default
81
- assertEquals ("hello" , new String (parseFile .getData ()));
82
81
assertEquals ("content_type" , parseFile .getState ().mimeType ());
83
82
assertTrue (parseFile .isDirty ());
84
83
85
- // TODO(mengyan): Test file pointer in ParseFile when we have proper stage strategy
86
84
parseFile = new ParseFile (file );
87
85
assertEquals (name , parseFile .getName ()); // Default
88
86
assertEquals (null , parseFile .getState ().mimeType ());
@@ -291,6 +289,22 @@ public void testGetDataAsyncSuccess() throws Exception {
291
289
assertEquals (url , stateCaptor .getValue ().url ());
292
290
// Verify the data we get is correct
293
291
assertArrayEquals (content .getBytes (), data );
292
+
293
+ // Make sure we always get the data from network
294
+ byte [] dataAgain = ParseTaskUtils .wait (parseFile .getDataInBackground ());
295
+
296
+ // Verify controller get the correct data
297
+ ArgumentCaptor <ParseFile .State > stateCaptorAgain =
298
+ ArgumentCaptor .forClass (ParseFile .State .class );
299
+ verify (controller , times (2 )).fetchAsync (
300
+ stateCaptorAgain .capture (),
301
+ anyString (),
302
+ any (ProgressCallback .class ),
303
+ Matchers .<Task <Void >>any ()
304
+ );
305
+ assertEquals (url , stateCaptorAgain .getValue ().url ());
306
+ // Verify the data we get is correct
307
+ assertArrayEquals (content .getBytes (), dataAgain );
294
308
}
295
309
296
310
@ Test
@@ -325,6 +339,22 @@ public void testGetDataStreamAsyncSuccess() throws Exception {
325
339
assertEquals (url , stateCaptor .getValue ().url ());
326
340
// Verify the data we get is correct
327
341
assertArrayEquals (content .getBytes (), ParseIOUtils .toByteArray (dataStream ));
342
+
343
+ // Make sure we always get the data from network
344
+ InputStream dataStreamAgain = ParseTaskUtils .wait (parseFile .getDataStreamInBackground ());
345
+
346
+ // Verify controller get the correct data
347
+ ArgumentCaptor <ParseFile .State > stateCaptorAgain =
348
+ ArgumentCaptor .forClass (ParseFile .State .class );
349
+ verify (controller , times (2 )).fetchAsync (
350
+ stateCaptorAgain .capture (),
351
+ anyString (),
352
+ any (ProgressCallback .class ),
353
+ Matchers .<Task <Void >>any ()
354
+ );
355
+ assertEquals (url , stateCaptorAgain .getValue ().url ());
356
+ // Verify the data we get is correct
357
+ assertArrayEquals (content .getBytes (), ParseIOUtils .toByteArray (dataStreamAgain ));
328
358
}
329
359
330
360
@ Test
@@ -359,6 +389,22 @@ public void testGetFileAsyncSuccess() throws Exception {
359
389
assertEquals (url , stateCaptor .getValue ().url ());
360
390
// Verify the data we get is correct
361
391
assertArrayEquals (content .getBytes (), ParseFileUtils .readFileToByteArray (fetchedFile ));
392
+
393
+ // Make sure we always get the data from network
394
+ File fetchedFileAgain = ParseTaskUtils .wait (parseFile .getFileInBackground ());
395
+
396
+ // Verify controller get the correct data
397
+ ArgumentCaptor <ParseFile .State > stateCaptorAgain =
398
+ ArgumentCaptor .forClass (ParseFile .State .class );
399
+ verify (controller , times (2 )).fetchAsync (
400
+ stateCaptorAgain .capture (),
401
+ anyString (),
402
+ any (ProgressCallback .class ),
403
+ Matchers .<Task <Void >>any ()
404
+ );
405
+ assertEquals (url , stateCaptorAgain .getValue ().url ());
406
+ // Verify the data we get is correct
407
+ assertArrayEquals (content .getBytes (), ParseFileUtils .readFileToByteArray (fetchedFileAgain ));
362
408
}
363
409
364
410
//endregion
0 commit comments