@@ -97,7 +97,7 @@ public void testSaveAsyncNotDirty() throws Exception {
97
97
ParseFile .State state = new ParseFile .State .Builder ()
98
98
.url ("http://example.com" )
99
99
.build ();
100
- Task <ParseFile .State > task = controller .saveAsync (state , null , null , null , null );
100
+ Task <ParseFile .State > task = controller .saveAsync (state , ( byte []) null , null , null , null );
101
101
task .waitForCompletion ();
102
102
103
103
verify (restClient , times (0 )).execute (any (ParseHttpRequest .class ));
@@ -113,15 +113,15 @@ public void testSaveAsyncAlreadyCancelled() throws Exception {
113
113
114
114
ParseFile .State state = new ParseFile .State .Builder ().build ();
115
115
Task <Void > cancellationToken = Task .cancelled ();
116
- Task <ParseFile .State > task = controller .saveAsync (state , null , null , null , cancellationToken );
116
+ Task <ParseFile .State > task = controller .saveAsync (state , ( byte []) null , null , null , cancellationToken );
117
117
task .waitForCompletion ();
118
118
119
119
verify (restClient , times (0 )).execute (any (ParseHttpRequest .class ));
120
120
assertTrue (task .isCancelled ());
121
121
}
122
122
123
123
@ Test
124
- public void testSaveAsyncSuccess () throws Exception {
124
+ public void testSaveAsyncSuccessWithByteArray () throws Exception {
125
125
JSONObject json = new JSONObject ();
126
126
json .put ("name" , "new_file_name" );
127
127
json .put ("url" , "http://example.com" );
@@ -154,6 +154,41 @@ public void testSaveAsyncSuccess() throws Exception {
154
154
assertEquals ("hello" , ParseFileUtils .readFileToString (file , "UTF-8" ));
155
155
}
156
156
157
+ @ Test
158
+ public void testSaveAsyncSuccessWithFile () throws Exception {
159
+ JSONObject json = new JSONObject ();
160
+ json .put ("name" , "new_file_name" );
161
+ json .put ("url" , "http://example.com" );
162
+ String content = json .toString ();
163
+
164
+ ParseHttpResponse response = mock (ParseHttpResponse .class );
165
+ when (response .getStatusCode ()).thenReturn (200 );
166
+ when (response .getContent ()).thenReturn (new ByteArrayInputStream (content .getBytes ()));
167
+ when (response .getTotalSize ()).thenReturn ((long ) content .length ());
168
+
169
+ ParseHttpClient restClient = mock (ParseHttpClient .class );
170
+ when (restClient .execute (any (ParseHttpRequest .class ))).thenReturn (response );
171
+
172
+ File root = temporaryFolder .getRoot ();
173
+ ParseFileController controller = new ParseFileController (restClient , root );
174
+
175
+ File file = new File (root , "test" );
176
+ ParseFileUtils .writeStringToFile (file , "content" , "UTF-8" );
177
+ ParseFile .State state = new ParseFile .State .Builder ()
178
+ .name ("file_name" )
179
+ .mimeType ("mime_type" )
180
+ .build ();
181
+ Task <ParseFile .State > task = controller .saveAsync (state , file , null , null , null );
182
+ ParseFile .State result = ParseTaskUtils .wait (task );
183
+
184
+ verify (restClient , times (1 )).execute (any (ParseHttpRequest .class ));
185
+ assertEquals ("new_file_name" , result .name ());
186
+ assertEquals ("http://example.com" , result .url ());
187
+ File cachedFile = new File (root , "new_file_name" );
188
+ assertTrue (cachedFile .exists ());
189
+ assertEquals ("content" , ParseFileUtils .readFileToString (cachedFile , "UTF-8" ));
190
+ }
191
+
157
192
@ Test
158
193
public void testSaveAsyncFailure () throws Exception {
159
194
// TODO(grantland): Remove once we no longer rely on retry logic.
0 commit comments