Skip to content

Commit 2cbd0a9

Browse files
author
Vitaliy Basanets
committed
added tests for delete and download
1 parent 6febe30 commit 2cbd0a9

2 files changed

Lines changed: 161 additions & 5 deletions

File tree

ManagedCode.Storage.Tests/Azure/AzureStorageTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ protected override ServiceProvider ConfigureServices()
3232
{
3333
Container = "managed-code-bucket",
3434
ConnectionString =
35-
"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://localhost:10000/devstoreaccount1;QueueEndpoint=http://localhost:10001/devstoreaccount1;TableEndpoint=http://localhost:10002/devstoreaccount1;",
36-
});
35+
"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://localhost:10000/devstoreaccount1;QueueEndpoint=http://localhost:10001/devstoreaccount1;TableEndpoint=http://localhost:10002/devstoreaccount1;",
36+
});
3737
return services.BuildServiceProvider();
3838
}
3939

ManagedCode.Storage.Tests/StorageBaseTests.cs

Lines changed: 159 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)