From d9e7ad8dfe82d2a9169d58961ec92698d6442a85 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 27 Apr 2020 16:51:26 +0200 Subject: [PATCH] Better tests. --- backend/src/Squidex/appsettings.json | 2 +- .../Assets/AssetStoreTests.cs | 57 ++++++++++++++----- 2 files changed, 43 insertions(+), 16 deletions(-) diff --git a/backend/src/Squidex/appsettings.json b/backend/src/Squidex/appsettings.json index f74ed02af..d8398e527 100644 --- a/backend/src/Squidex/appsettings.json +++ b/backend/src/Squidex/appsettings.json @@ -315,7 +315,7 @@ /* * The name of your bucket. */ - "bucket": "squidex-assets", + "bucket": "squidex-test", /* * The optional folder within the bucket. diff --git a/backend/tests/Squidex.Infrastructure.Tests/Assets/AssetStoreTests.cs b/backend/tests/Squidex.Infrastructure.Tests/Assets/AssetStoreTests.cs index 9147b2888..ece7ff1e9 100644 --- a/backend/tests/Squidex.Infrastructure.Tests/Assets/AssetStoreTests.cs +++ b/backend/tests/Squidex.Infrastructure.Tests/Assets/AssetStoreTests.cs @@ -14,7 +14,8 @@ namespace Squidex.Infrastructure.Assets { public abstract class AssetStoreTests where T : IAssetStore { - private readonly MemoryStream assetData = new MemoryStream(new byte[] { 0x1, 0x2, 0x3, 0x4 }); + private readonly MemoryStream assetLarge = CreateFile(4 * 1024 * 1024); + private readonly MemoryStream assetSmall = CreateFile(4); private readonly string fileName = Guid.NewGuid().ToString(); private readonly string sourceFile = Guid.NewGuid().ToString(); private readonly Lazy sut; @@ -99,47 +100,59 @@ namespace Squidex.Infrastructure.Assets [Fact] public async Task Should_write_and_read_file() { - await Sut.UploadAsync(fileName, assetData); + await Sut.UploadAsync(fileName, assetSmall); var readData = new MemoryStream(); await Sut.DownloadAsync(fileName, readData); - Assert.Equal(assetData.ToArray(), readData.ToArray()); + Assert.Equal(assetSmall.ToArray(), readData.ToArray()); + } + + [Fact] + public async Task Should_write_and_read_large_file() + { + await Sut.UploadAsync(fileName, assetLarge); + + var readData = new MemoryStream(); + + await Sut.DownloadAsync(fileName, readData); + + Assert.Equal(assetLarge.ToArray(), readData.ToArray()); } [Fact] public async Task Should_write_and_read_file_with_range() { - await Sut.UploadAsync(fileName, assetData, true); + await Sut.UploadAsync(fileName, assetSmall, true); var readData = new MemoryStream(); await Sut.DownloadAsync(fileName, readData, new BytesRange(1, 2)); - Assert.Equal(new Span(assetData.ToArray()).Slice(1, 2).ToArray(), readData.ToArray()); + Assert.Equal(new Span(assetSmall.ToArray()).Slice(1, 2).ToArray(), readData.ToArray()); } [Fact] public async Task Should_write_and_and_get_size() { - await Sut.UploadAsync(fileName, assetData, true); + await Sut.UploadAsync(fileName, assetSmall, true); var size = await Sut.GetSizeAsync(fileName); - Assert.Equal(assetData.Length, size); + Assert.Equal(assetSmall.Length, size); } [Fact] public async Task Should_write_and_read_file_and_overwrite_non_existing() { - await Sut.UploadAsync(fileName, assetData, true); + await Sut.UploadAsync(fileName, assetSmall, true); var readData = new MemoryStream(); await Sut.DownloadAsync(fileName, readData); - Assert.Equal(assetData.ToArray(), readData.ToArray()); + Assert.Equal(assetSmall.ToArray(), readData.ToArray()); } [Fact] @@ -148,27 +161,27 @@ namespace Squidex.Infrastructure.Assets var oldData = new MemoryStream(new byte[] { 0x1, 0x2, 0x3, 0x4, 0x5 }); await Sut.UploadAsync(fileName, oldData); - await Sut.UploadAsync(fileName, assetData, true); + await Sut.UploadAsync(fileName, assetSmall, true); var readData = new MemoryStream(); await Sut.DownloadAsync(fileName, readData); - Assert.Equal(assetData.ToArray(), readData.ToArray()); + Assert.Equal(assetSmall.ToArray(), readData.ToArray()); } [Fact] public async Task Should_throw_exception_when_file_to_write_already_exists() { - await Sut.UploadAsync(fileName, assetData); + await Sut.UploadAsync(fileName, assetSmall); - await Assert.ThrowsAsync(() => Sut.UploadAsync(fileName, assetData)); + await Assert.ThrowsAsync(() => Sut.UploadAsync(fileName, assetSmall)); } [Fact] public async Task Should_throw_exception_when_target_file_to_copy_to_already_exists() { - await Sut.UploadAsync(sourceFile, assetData); + await Sut.UploadAsync(sourceFile, assetSmall); await Sut.CopyAsync(sourceFile, fileName); await Assert.ThrowsAsync(() => Sut.CopyAsync(sourceFile, fileName)); @@ -177,7 +190,7 @@ namespace Squidex.Infrastructure.Assets [Fact] public async Task Should_ignore_when_deleting_not_existing_file() { - await Sut.UploadAsync(sourceFile, assetData); + await Sut.UploadAsync(sourceFile, assetSmall); await Sut.DeleteAsync(sourceFile); await Sut.DeleteAsync(sourceFile); } @@ -188,5 +201,19 @@ namespace Squidex.Infrastructure.Assets await Assert.ThrowsAsync(() => action(string.Empty)); await Assert.ThrowsAsync(() => action(" ")); } + + private static MemoryStream CreateFile(int length) + { + var memoryStream = new MemoryStream(); + + for (var i = 0; i < length; i++) + { + memoryStream.WriteByte((byte)i); + } + + memoryStream.Position = 0; + + return memoryStream; + } } }