@@ -177,10 +177,79 @@ public async Task WhenUploadAsyncIsCalled()
177177 #region Download
178178
179179 [ Fact ]
180- public async Task WhenDownloadAsyncIsCalled ( )
180+ public async Task DownloadFileBlobMetadataAsLocalFileAsync ( )
181181 {
182- const string uploadContent = $ "test { nameof ( WhenDownloadAsyncIsCalled ) } ";
183- const string fileName = $ "{ nameof ( WhenDownloadAsyncIsCalled ) } .txt";
182+ const string uploadContent = $ "test { nameof ( DownloadFileBlobMetadataAsLocalFileAsync ) } ";
183+ const string fileName = $ "{ nameof ( DownloadFileBlobMetadataAsLocalFileAsync ) } .txt";
184+
185+ //Upload file
186+ await PrepareFileToTest ( uploadContent , fileName ) ;
187+
188+ //Download file as LocalFile
189+ var localFile = await Storage . DownloadAsync ( new BlobMetadata { Name = fileName } ) ;
190+ using var sr = new StreamReader ( localFile . FileStream , Encoding . UTF8 ) ;
191+
192+ //Get content from file as string
193+ string content = await sr . ReadToEndAsync ( ) ;
194+
195+ content . Should ( ) . NotBeNull ( ) ;
196+ content . Should ( ) . Be ( uploadContent ) ;
197+
198+ //Delete file
199+ await DeleteFileAsync ( fileName ) ;
200+ }
201+
202+ [ Fact ]
203+ public async Task DownloadFileAsLocalFileAsync ( )
204+ {
205+ const string uploadContent = $ "test { nameof ( DownloadFileAsLocalFileAsync ) } ";
206+ const string fileName = $ "{ nameof ( DownloadFileAsLocalFileAsync ) } .txt";
207+
208+ //Upload file
209+ await PrepareFileToTest ( uploadContent , fileName ) ;
210+
211+ //Download file as LocalFile
212+ var localFile = await Storage . DownloadAsync ( fileName ) ;
213+ using var sr = new StreamReader ( localFile . FileStream , Encoding . UTF8 ) ;
214+
215+ //Get content from file as string
216+ string content = await sr . ReadToEndAsync ( ) ;
217+
218+ content . Should ( ) . NotBeNull ( ) ;
219+ content . Should ( ) . Be ( uploadContent ) ;
220+
221+ //Delete file
222+ await DeleteFileAsync ( fileName ) ;
223+ }
224+
225+ [ Fact ]
226+ public async Task DownloadFileBlobMetadataAsync ( )
227+ {
228+ const string uploadContent = $ "test { nameof ( DownloadFileAsync ) } ";
229+ const string fileName = $ "{ nameof ( DownloadFileAsync ) } .txt";
230+
231+ //Upload file
232+ await PrepareFileToTest ( uploadContent , fileName ) ;
233+
234+ //Download file as stream
235+ var stream = await Storage . DownloadAsStreamAsync ( new BlobMetadata { Name = fileName } ) ;
236+ using var sr = new StreamReader ( stream , Encoding . UTF8 ) ;
237+
238+ //Get content from file as string
239+ string content = await sr . ReadToEndAsync ( ) ;
240+
241+ content . Should ( ) . NotBeNull ( ) ;
242+ content . Should ( ) . Be ( uploadContent ) ;
243+
244+ //Delete file
245+ await DeleteFileAsync ( fileName ) ;
246+ }
247+
248+ [ Fact ]
249+ public async Task DownloadFileAsync ( )
250+ {
251+ const string uploadContent = $ "test { nameof ( DownloadFileAsync ) } ";
252+ const string fileName = $ "{ nameof ( DownloadFileAsync ) } .txt";
184253
185254 //Upload file
186255 await PrepareFileToTest ( uploadContent , fileName ) ;
@@ -226,6 +295,88 @@ public async Task WhenDownloadAsyncToFileIsCalled()
226295
227296 #region Delete
228297
298+ [ Fact ]
299+ public async Task DeleteFileListAsync ( )
300+ {
301+ var listFile = new List < ( string FileName , string UploadedContent ) > ( ) ;
302+ listFile . Add ( ( $ "{ nameof ( DeleteFileListAsync ) } 1.txt", $ "test { nameof ( DeleteFileListAsync ) } 1") ) ;
303+ listFile . Add ( ( $ "{ nameof ( DeleteFileListAsync ) } 2.txt", $ "test { nameof ( DeleteFileListAsync ) } 2") ) ;
304+ listFile . Add ( ( $ "{ nameof ( DeleteFileListAsync ) } 3.txt", $ "test { nameof ( DeleteFileListAsync ) } 3") ) ;
305+
306+ // Upload files to server
307+ foreach ( var item in listFile )
308+ {
309+ await PrepareFileToTest ( item . UploadedContent , item . FileName ) ;
310+ } ;
311+
312+ var expectedList = listFile . Select ( x => x . FileName ) ;
313+
314+ //Delete list files
315+ await Storage . DeleteAsync ( expectedList ) ;
316+
317+ //Check is exist files
318+ var result = Storage . ExistsAsync ( expectedList ) ;
319+ var resultList = await result . ToListAsync ( ) ;
320+
321+ foreach ( var item in resultList )
322+ {
323+ item . Should ( ) . BeFalse ( ) ;
324+ }
325+
326+ }
327+
328+ [ Fact ]
329+ public async Task DeleteFileAsBlobMetadataListAsync ( )
330+ {
331+ var listFile = new List < ( string FileName , string UploadedContent ) > ( ) ;
332+ listFile . Add ( ( $ "{ nameof ( DeleteFileAsBlobMetadataListAsync ) } 1.txt", $ "test { nameof ( DeleteFileAsBlobMetadataListAsync ) } 1") ) ;
333+ listFile . Add ( ( $ "{ nameof ( DeleteFileAsBlobMetadataListAsync ) } 2.txt", $ "test { nameof ( DeleteFileAsBlobMetadataListAsync ) } 2") ) ;
334+ listFile . Add ( ( $ "{ nameof ( DeleteFileAsBlobMetadataListAsync ) } 3.txt", $ "test { nameof ( DeleteFileAsBlobMetadataListAsync ) } 3") ) ;
335+
336+ // Upload files to server
337+ foreach ( var item in listFile )
338+ {
339+ await PrepareFileToTest ( item . UploadedContent , item . FileName ) ;
340+ } ;
341+
342+ var expectedList = listFile . Select ( x => new BlobMetadata { Name = x . FileName } ) ;
343+
344+ //Delete list blobMetadata
345+ await Storage . DeleteAsync ( expectedList ) ;
346+
347+ //Check is exist files
348+ var result = Storage . ExistsAsync ( expectedList ) ;
349+ var resultList = await result . ToListAsync ( ) ;
350+
351+ foreach ( var item in resultList )
352+ {
353+ item . Should ( ) . BeFalse ( ) ;
354+ }
355+
356+ }
357+
358+ [ Fact ]
359+ public async Task DeleteFileAsBlobMetadataAsync ( )
360+ {
361+ const string uploadContent = $ "test { nameof ( DeleteFileAsBlobMetadataAsync ) } ";
362+ const string fileName = $ "{ nameof ( DeleteFileAsBlobMetadataAsync ) } .txt";
363+
364+ //Upload file
365+ await PrepareFileToTest ( uploadContent , fileName ) ;
366+
367+ //Get file as BlobMetadata
368+ var blobMetadata = await Storage . GetBlobAsync ( fileName ) ;
369+
370+ //Delete BlobMetadata
371+ await Storage . DeleteAsync ( blobMetadata ) ;
372+
373+ //Check is exists file
374+ var result = await Storage . ExistsAsync ( fileName ) ;
375+
376+ result . Should ( ) . BeFalse ( ) ;
377+
378+ }
379+
229380 [ Fact ]
230381 public async Task WhenDeleteAsyncIsCalled ( )
231382 {
@@ -237,6 +388,11 @@ public async Task WhenDeleteAsyncIsCalled()
237388
238389 //Delete file
239390 await Storage . DeleteAsync ( fileName ) ;
391+
392+ //Check is exists file
393+ var result = await Storage . ExistsAsync ( fileName ) ;
394+
395+ result . Should ( ) . BeFalse ( ) ;
240396 }
241397
242398 #endregion
0 commit comments