From 1bd81b9002eef3dbe7c5296e23e4d74403eb9f8d Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Mon, 7 Feb 2022 13:59:34 +0100 Subject: [PATCH] Test fix. (#840) --- .../Squidex.Infrastructure.csproj | 2 +- backend/src/Squidex/Squidex.csproj | 18 +- backend/tests/docker-compose.yml | 2 +- .../TestSuite.ApiTests/AssetTests.cs | 232 +++++++++--------- .../TestSuite.ApiTests.csproj | 2 +- .../TestSuite.Shared/TestSuite.Shared.csproj | 2 +- 6 files changed, 127 insertions(+), 131 deletions(-) diff --git a/backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj b/backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj index e6fb249fe..c41301908 100644 --- a/backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj +++ b/backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj @@ -31,7 +31,7 @@ - + diff --git a/backend/src/Squidex/Squidex.csproj b/backend/src/Squidex/Squidex.csproj index dea59fb86..8214c7407 100644 --- a/backend/src/Squidex/Squidex.csproj +++ b/backend/src/Squidex/Squidex.csproj @@ -74,16 +74,16 @@ - - - - - - - - + + + + + + + + - + diff --git a/backend/tests/docker-compose.yml b/backend/tests/docker-compose.yml index f343019e8..722435d13 100644 --- a/backend/tests/docker-compose.yml +++ b/backend/tests/docker-compose.yml @@ -3,7 +3,7 @@ services: mongo: image: mongo:latest ports: - - "27017:27017" + - "27018:27017" networks: - internal diff --git a/backend/tools/TestSuite/TestSuite.ApiTests/AssetTests.cs b/backend/tools/TestSuite/TestSuite.ApiTests/AssetTests.cs index 52963844e..f04bda410 100644 --- a/backend/tools/TestSuite/TestSuite.ApiTests/AssetTests.cs +++ b/backend/tools/TestSuite/TestSuite.ApiTests/AssetTests.cs @@ -91,82 +91,80 @@ namespace TestSuite.ApiTests [Fact] public async Task Should_upload_asset_using_tus_in_chunks() { - // STEP 1: Create asset - var fileParameter = FileParameter.FromPath("Assets/SampleVideo_1280x720_1mb.mp4"); + for (var i = 0; i < 5; i++) + { + // STEP 1: Create asset + var fileParameter = FileParameter.FromPath("Assets/SampleVideo_1280x720_1mb.mp4"); - var pausingStream = new PauseStream(fileParameter.Data, 0.25); - var pausingFile = new FileParameter(pausingStream, fileParameter.FileName, fileParameter.ContentType); + var pausingStream = new PauseStream(fileParameter.Data, 0.5); + var pausingFile = new FileParameter(pausingStream, fileParameter.FileName, fileParameter.ContentType); - var numUploads = 0; - var reportedException = (Exception)null; - var reportedProgress = new List(); - var reportedAsset = (AssetDto)null; - var fileId = (string)null; - - await using (pausingFile.Data) - { - using var cts = new CancellationTokenSource(5000); + var numUploads = 0; + var reportedException = (Exception)null; + var reportedProgress = new List(); + var reportedAsset = (AssetDto)null; + var fileId = (string)null; - while (reportedAsset == null) + await using (pausingFile.Data) { - pausingStream.Reset(); + using var cts = new CancellationTokenSource(5000); - if (pausingStream.Position == pausingStream.Length) + while (reportedAsset == null) { - throw new InvalidOperationException("Stream end reached."); - } + pausingStream.Reset(); - await _.Assets.UploadNewAssetAsync(_.AppName, pausingFile, new AssetUploadOptions - { - ProgressHandler = new AssetDelegatingProgressHandler + await _.Assets.UploadNewAssetAsync(_.AppName, pausingFile, new AssetUploadOptions { - OnCreatedAsync = (@event, _) => - { - fileId = @event.FileId; - return Task.CompletedTask; - }, - OnProgressAsync = (@event, _) => - { - reportedProgress.Add(@event.Progress); - return Task.CompletedTask; - }, - OnCompletedAsync = (@event, _) => + ProgressHandler = new AssetDelegatingProgressHandler { - reportedAsset = @event.Asset; - return Task.CompletedTask; - }, - OnFailedAsync = (@event, _) => - { - if (!@event.Exception.ToString().Contains("PAUSED", StringComparison.OrdinalIgnoreCase)) + OnCreatedAsync = (@event, _) => { - reportedException = @event.Exception; - } + fileId = @event.FileId; + return Task.CompletedTask; + }, + OnProgressAsync = (@event, _) => + { + reportedProgress.Add(@event.Progress); + return Task.CompletedTask; + }, + OnCompletedAsync = (@event, _) => + { + reportedAsset = @event.Asset; + return Task.CompletedTask; + }, + OnFailedAsync = (@event, _) => + { + if (!@event.Exception.ToString().Contains("PAUSED", StringComparison.OrdinalIgnoreCase)) + { + reportedException = @event.Exception; + } - return Task.CompletedTask; - } - }, - FileId = fileId - }, cts.Token); + return Task.CompletedTask; + } + }, + FileId = fileId + }, cts.Token); - Assert.Null(reportedException); + Assert.Null(reportedException); - await Task.Delay(50, cts.Token); + await Task.Delay(50, cts.Token); - numUploads++; + numUploads++; + } } - } - Assert.NotEmpty(reportedProgress); - Assert.NotNull(reportedAsset); - Assert.Null(reportedException); - Assert.True(numUploads > 1); + Assert.NotEmpty(reportedProgress); + Assert.NotNull(reportedAsset); + Assert.Null(reportedException); + Assert.True(numUploads > 1); - await using (var stream = new FileStream("Assets/SampleVideo_1280x720_1mb.mp4", FileMode.Open)) - { - var downloaded = await _.DownloadAsync(reportedAsset); + await using (var stream = new FileStream("Assets/SampleVideo_1280x720_1mb.mp4", FileMode.Open)) + { + var downloaded = await _.DownloadAsync(reportedAsset); - // Should dowload with correct size. - Assert.Equal(stream.Length, downloaded.Length); + // Should dowload with correct size. + Assert.Equal(stream.Length, downloaded.Length); + } } } @@ -283,86 +281,84 @@ namespace TestSuite.ApiTests [Fact] public async Task Should_replace_asset_using_tus_in_chunks() { - // STEP 1: Create asset - var asset_1 = await _.UploadFileAsync("Assets/logo-squared.png", "image/png"); + for (var i = 0; i < 5; i++) + { + // STEP 1: Create asset + var asset_1 = await _.UploadFileAsync("Assets/logo-squared.png", "image/png"); - // STEP 2: Reupload asset - var fileParameter = FileParameter.FromPath("Assets/SampleVideo_1280x720_1mb.mp4"); + // STEP 2: Reupload asset + var fileParameter = FileParameter.FromPath("Assets/SampleVideo_1280x720_1mb.mp4"); - var pausingStream = new PauseStream(fileParameter.Data, 0.25); - var pausingFile = new FileParameter(pausingStream, fileParameter.FileName, fileParameter.ContentType); + var pausingStream = new PauseStream(fileParameter.Data, 0.5); + var pausingFile = new FileParameter(pausingStream, fileParameter.FileName, fileParameter.ContentType); - var numUploads = 0; - var reportedException = (Exception)null; - var reportedProgress = new List(); - var reportedAsset = (AssetDto)null; - var fileId = (string)null; - - await using (pausingFile.Data) - { - using var cts = new CancellationTokenSource(5000); + var numUploads = 0; + var reportedException = (Exception)null; + var reportedProgress = new List(); + var reportedAsset = (AssetDto)null; + var fileId = (string)null; - while (reportedAsset == null) + await using (pausingFile.Data) { - pausingStream.Reset(); + using var cts = new CancellationTokenSource(5000); - if (pausingStream.Position == pausingStream.Length) + while (reportedAsset == null) { - throw new InvalidOperationException("Stream end reached."); - } + pausingStream.Reset(); - await _.Assets.UploadExistingAssetAsync(_.AppName, asset_1.Id, pausingFile, new AssetUploadOptions - { - ProgressHandler = new AssetDelegatingProgressHandler + await _.Assets.UploadExistingAssetAsync(_.AppName, asset_1.Id, pausingFile, new AssetUploadOptions { - OnCreatedAsync = (@event, _) => + ProgressHandler = new AssetDelegatingProgressHandler { - fileId = @event.FileId; - return Task.CompletedTask; - }, - OnProgressAsync = (@event, _) => - { - reportedProgress.Add(@event.Progress); - return Task.CompletedTask; - }, - OnCompletedAsync = (@event, _) => - { - reportedAsset = @event.Asset; - return Task.CompletedTask; - }, - OnFailedAsync = (@event, _) => - { - if (!@event.Exception.ToString().Contains("PAUSED", StringComparison.OrdinalIgnoreCase)) + OnCreatedAsync = (@event, _) => { - reportedException = @event.Exception; - } + fileId = @event.FileId; + return Task.CompletedTask; + }, + OnProgressAsync = (@event, _) => + { + reportedProgress.Add(@event.Progress); + return Task.CompletedTask; + }, + OnCompletedAsync = (@event, _) => + { + reportedAsset = @event.Asset; + return Task.CompletedTask; + }, + OnFailedAsync = (@event, _) => + { + if (!@event.Exception.ToString().Contains("PAUSED", StringComparison.OrdinalIgnoreCase)) + { + reportedException = @event.Exception; + } - return Task.CompletedTask; - } - }, - FileId = fileId - }, cts.Token); + return Task.CompletedTask; + } + }, + FileId = fileId + }, cts.Token); - Assert.Null(reportedException); + Assert.Null(reportedException); - await Task.Delay(50, cts.Token); + await Task.Delay(50, cts.Token); - numUploads++; + numUploads++; + } } - } - Assert.NotEmpty(reportedProgress); - Assert.NotNull(reportedAsset); - Assert.Null(reportedException); - Assert.True(numUploads > 1); + Assert.NotEmpty(reportedProgress); + Assert.NotNull(reportedAsset); + Assert.Null(reportedException); + Assert.True(numUploads > 1); - await using (var stream = new FileStream("Assets/SampleVideo_1280x720_1mb.mp4", FileMode.Open)) - { - var downloaded = await _.DownloadAsync(reportedAsset); + await using (var stream = new FileStream("Assets/SampleVideo_1280x720_1mb.mp4", FileMode.Open)) + { + var downloaded = await _.DownloadAsync(reportedAsset); - // Should dowload with correct size. - Assert.Equal(stream.Length, downloaded.Length); + // Should dowload with correct size. + Assert.Equal(stream.Length, downloaded.Length); + } } } diff --git a/backend/tools/TestSuite/TestSuite.ApiTests/TestSuite.ApiTests.csproj b/backend/tools/TestSuite/TestSuite.ApiTests/TestSuite.ApiTests.csproj index bc32720dd..d36876e18 100644 --- a/backend/tools/TestSuite/TestSuite.ApiTests/TestSuite.ApiTests.csproj +++ b/backend/tools/TestSuite/TestSuite.ApiTests/TestSuite.ApiTests.csproj @@ -20,7 +20,7 @@ - + diff --git a/backend/tools/TestSuite/TestSuite.Shared/TestSuite.Shared.csproj b/backend/tools/TestSuite/TestSuite.Shared/TestSuite.Shared.csproj index d84d660af..3b2715d9e 100644 --- a/backend/tools/TestSuite/TestSuite.Shared/TestSuite.Shared.csproj +++ b/backend/tools/TestSuite/TestSuite.Shared/TestSuite.Shared.csproj @@ -21,7 +21,7 @@ - +