/
dundich
/
sa
Обзор
Документация
Войти
/
dundich
/
sa
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Tests/Sa.HybridFileStorage.FileSystemTests/FileSystemStorageTests.cs
75 строк
2 KB
dundich
added hyrbid file storages (#3)
24 апр 2025, 14:31
Не верифицирован
24 апр 2025, 14:31
0fecc3c
Код
Авторство
О чём код?
using Sa.Fixture; using Sa.HybridFileStorage.Domain; using Sa.HybridFileStorage.FileSystem; namespace Sa.HybridFileStorage.FileSystemTests; public class FileSystemStorageTests(FileSystemStorageTests.Fixture fixture) : IClassFixture<FileSystemStorageTests.Fixture> { public sealed class Fixture : SaFixture<IFileStorage, FileSystemStorageOptions> { public Fixture() : base(new FileSystemStorageOptions { BasePath = "mytemp" }) { SetupServices = (services, cfg) => services.AddFileSystemFileStorage(Settings); } public override ValueTask DisposeAsync() { Directory.Delete(Settings.BasePath, true); return base.DisposeAsync(); } } private IFileStorage Storage => fixture.Sub; [Fact] public async Task Crud() { var metadata = new UploadFileInput { FileName = "test.bin", TenantId = 1 }; using MemoryStream fileContent = FixtureHelper.GetByteStream(); var result = await Storage.UploadFileAsync(metadata, fileContent, fixture.CancellationToken); Assert.NotNull(result); Assert.NotEmpty(result.FileId); bool canProcessed = Storage.CanProcessFileId(result.FileId); Assert.True(canProcessed); var isSame = await EnsureFileSame(result.FileId, fileContent); Assert.True(isSame); var isDeleted = await Storage.DeleteFileAsync(result.FileId, fixture.CancellationToken); Assert.True(isDeleted); isSame = await EnsureFileSame(result.FileId, fileContent); Assert.False(isSame); } private async Task<bool> EnsureFileSame(string fileName, MemoryStream expectedBytes) { expectedBytes.Seek(0, SeekOrigin.Begin); using MemoryStream memoryStream = new(); var isDownloaded = await Storage.DownloadFileAsync(fileName , (stream, ct) => stream.CopyToAsync(memoryStream, ct) , fixture.CancellationToken); if (isDownloaded) { Assert.Equal(expectedBytes.ToArray(), memoryStream.ToArray()); } return isDownloaded; } }