Browse Source

Better tests.

pull/516/head
Sebastian 6 years ago
parent
commit
d9e7ad8dfe
  1. 2
      backend/src/Squidex/appsettings.json
  2. 57
      backend/tests/Squidex.Infrastructure.Tests/Assets/AssetStoreTests.cs

2
backend/src/Squidex/appsettings.json

@ -315,7 +315,7 @@
/* /*
* The name of your bucket. * The name of your bucket.
*/ */
"bucket": "squidex-assets", "bucket": "squidex-test",
/* /*
* The optional folder within the bucket. * The optional folder within the bucket.

57
backend/tests/Squidex.Infrastructure.Tests/Assets/AssetStoreTests.cs

@ -14,7 +14,8 @@ namespace Squidex.Infrastructure.Assets
{ {
public abstract class AssetStoreTests<T> where T : IAssetStore public abstract class AssetStoreTests<T> 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 fileName = Guid.NewGuid().ToString();
private readonly string sourceFile = Guid.NewGuid().ToString(); private readonly string sourceFile = Guid.NewGuid().ToString();
private readonly Lazy<T> sut; private readonly Lazy<T> sut;
@ -99,47 +100,59 @@ namespace Squidex.Infrastructure.Assets
[Fact] [Fact]
public async Task Should_write_and_read_file() public async Task Should_write_and_read_file()
{ {
await Sut.UploadAsync(fileName, assetData); await Sut.UploadAsync(fileName, assetSmall);
var readData = new MemoryStream(); var readData = new MemoryStream();
await Sut.DownloadAsync(fileName, readData); 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] [Fact]
public async Task Should_write_and_read_file_with_range() 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(); var readData = new MemoryStream();
await Sut.DownloadAsync(fileName, readData, new BytesRange(1, 2)); await Sut.DownloadAsync(fileName, readData, new BytesRange(1, 2));
Assert.Equal(new Span<byte>(assetData.ToArray()).Slice(1, 2).ToArray(), readData.ToArray()); Assert.Equal(new Span<byte>(assetSmall.ToArray()).Slice(1, 2).ToArray(), readData.ToArray());
} }
[Fact] [Fact]
public async Task Should_write_and_and_get_size() 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); var size = await Sut.GetSizeAsync(fileName);
Assert.Equal(assetData.Length, size); Assert.Equal(assetSmall.Length, size);
} }
[Fact] [Fact]
public async Task Should_write_and_read_file_and_overwrite_non_existing() 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(); var readData = new MemoryStream();
await Sut.DownloadAsync(fileName, readData); await Sut.DownloadAsync(fileName, readData);
Assert.Equal(assetData.ToArray(), readData.ToArray()); Assert.Equal(assetSmall.ToArray(), readData.ToArray());
} }
[Fact] [Fact]
@ -148,27 +161,27 @@ namespace Squidex.Infrastructure.Assets
var oldData = new MemoryStream(new byte[] { 0x1, 0x2, 0x3, 0x4, 0x5 }); var oldData = new MemoryStream(new byte[] { 0x1, 0x2, 0x3, 0x4, 0x5 });
await Sut.UploadAsync(fileName, oldData); await Sut.UploadAsync(fileName, oldData);
await Sut.UploadAsync(fileName, assetData, true); await Sut.UploadAsync(fileName, assetSmall, true);
var readData = new MemoryStream(); var readData = new MemoryStream();
await Sut.DownloadAsync(fileName, readData); await Sut.DownloadAsync(fileName, readData);
Assert.Equal(assetData.ToArray(), readData.ToArray()); Assert.Equal(assetSmall.ToArray(), readData.ToArray());
} }
[Fact] [Fact]
public async Task Should_throw_exception_when_file_to_write_already_exists() 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<AssetAlreadyExistsException>(() => Sut.UploadAsync(fileName, assetData)); await Assert.ThrowsAsync<AssetAlreadyExistsException>(() => Sut.UploadAsync(fileName, assetSmall));
} }
[Fact] [Fact]
public async Task Should_throw_exception_when_target_file_to_copy_to_already_exists() 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 Sut.CopyAsync(sourceFile, fileName);
await Assert.ThrowsAsync<AssetAlreadyExistsException>(() => Sut.CopyAsync(sourceFile, fileName)); await Assert.ThrowsAsync<AssetAlreadyExistsException>(() => Sut.CopyAsync(sourceFile, fileName));
@ -177,7 +190,7 @@ namespace Squidex.Infrastructure.Assets
[Fact] [Fact]
public async Task Should_ignore_when_deleting_not_existing_file() 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);
await Sut.DeleteAsync(sourceFile); await Sut.DeleteAsync(sourceFile);
} }
@ -188,5 +201,19 @@ namespace Squidex.Infrastructure.Assets
await Assert.ThrowsAsync<ArgumentException>(() => action(string.Empty)); await Assert.ThrowsAsync<ArgumentException>(() => action(string.Empty));
await Assert.ThrowsAsync<ArgumentException>(() => action(" ")); await Assert.ThrowsAsync<ArgumentException>(() => 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;
}
} }
} }

Loading…
Cancel
Save