diff --git a/src/Squidex/Config/Domain/Usages.cs b/src/Squidex/Config/Domain/Usages.cs index facf93d5a..564f63419 100644 --- a/src/Squidex/Config/Domain/Usages.cs +++ b/src/Squidex/Config/Domain/Usages.cs @@ -28,9 +28,12 @@ namespace Squidex.Config.Domain { var actor = app.ApplicationServices.GetService(); - actor?.Subscribe(consumer); + if (actor != null) + { + actor.Subscribe(consumer); - app.ApplicationServices.GetService().Connect(consumer.Name, actor); + app.ApplicationServices.GetService().Connect(consumer.Name, actor); + } } return app; diff --git a/tests/RunCoverage.ps1 b/tests/RunCoverage.ps1 index 8b2977ff0..f5e3bbc76 100644 --- a/tests/RunCoverage.ps1 +++ b/tests/RunCoverage.ps1 @@ -1,64 +1,81 @@ -$ErrorActionPreference = "Stop" +Param( + [switch]$infrastructure, + [switch]$appsCore, + [switch]$appsRead, + [switch]$appsWrite, + [switch]$users, + [switch]$all +) -$reportsFolder = ".\_test-output" -$userProfile = $env:USERPROFILE -$workingFolder = Get-Location +$ErrorActionPreference = "Stop" -Write-Host "Clear up '$reportsFolder' folder" +$folderReports = ".\_test-output" +$folderHome = $env:USERPROFILE +$folderWorking = Get-Location -if (Test-Path $reportsFolder) { - Remove-Item $reportsFolder -recurse +if (Test-Path $folderReports) { + Remove-Item $folderReports -recurse } -Write-Host "Create new '$reportsFolder' folder" +Write-Host "Recreated '$folderReports' folder" -New-Item -ItemType directory -Path $reportsFolder +New-Item -ItemType directory -Path $folderReports -&"$userProfile\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe" ` --register:user ` --target:"C:\Program Files\dotnet\dotnet.exe" ` --targetargs:"test $workingFolder\Squidex.Infrastructure.Tests\Squidex.Infrastructure.Tests.csproj" ` --filter:"+[Squidex*]*" ` --skipautoprops ` --output:"$workingFolder\$reportsFolder\Infrastructure.xml" ` --oldStyle +if ($all -Or $infrastructure) { + &"$folderHome\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe" ` + -register:user ` + -target:"C:\Program Files\dotnet\dotnet.exe" ` + -targetargs:"test $folderWorking\Squidex.Infrastructure.Tests\Squidex.Infrastructure.Tests.csproj" ` + -filter:"+[Squidex*]*" ` + -skipautoprops ` + -output:"$folderWorking\$folderReports\Infrastructure.xml" ` + -oldStyle +} -&"$userProfile\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe" ` --register:user ` --target:"C:\Program Files\dotnet\dotnet.exe" ` --targetargs:"test $workingFolder\Squidex.Domain.Apps.Core.Tests\Squidex.Domain.Apps.Core.Tests.csproj" ` --filter:"+[Squidex*]*" ` --skipautoprops ` --output:"$workingFolder\$reportsFolder\Core.xml" ` --oldStyle +if ($all -Or $appsCore) { + &"$folderHome\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe" ` + -register:user ` + -target:"C:\Program Files\dotnet\dotnet.exe" ` + -targetargs:"test $folderWorking\Squidex.Domain.Apps.Core.Tests\Squidex.Domain.Apps.Core.Tests.csproj" ` + -filter:"+[Squidex*]*" ` + -skipautoprops ` + -output:"$folderWorking\$folderReports\Core.xml" ` + -oldStyle +} -&"$userProfile\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe" ` --register:user ` --target:"C:\Program Files\dotnet\dotnet.exe" ` --targetargs:"test $workingFolder\Squidex.Domain.Apps.Read.Tests\Squidex.Domain.Apps.Read.Tests.csproj" ` --filter:"+[Squidex*]*" ` --skipautoprops ` --output:"$workingFolder\$reportsFolder\Read.xml" ` --oldStyle +if ($all -Or $appsRead) { + &"$folderHome\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe" ` + -register:user ` + -target:"C:\Program Files\dotnet\dotnet.exe" ` + -targetargs:"test $folderWorking\Squidex.Domain.Apps.Read.Tests\Squidex.Domain.Apps.Read.Tests.csproj" ` + -filter:"+[Squidex*]*" ` + -skipautoprops ` + -output:"$folderWorking\$folderReports\Read.xml" ` + -oldStyle +} -&"$userProfile\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe" ` --register:user ` --target:"C:\Program Files\dotnet\dotnet.exe" ` --targetargs:"test $workingFolder\Squidex.Domain.Apps.Write.Tests\Squidex.Domain.Apps.Write.Tests.csproj" ` --filter:"+[Squidex*]*" ` --skipautoprops ` --output:"$workingFolder\$reportsFolder\Write.xml" ` --oldStyle +if ($all -Or $appsWrite) { + &"$folderHome\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe" ` + -register:user ` + -target:"C:\Program Files\dotnet\dotnet.exe" ` + -targetargs:"test $folderWorking\Squidex.Domain.Apps.Write.Tests\Squidex.Domain.Apps.Write.Tests.csproj" ` + -filter:"+[Squidex*]*" ` + -skipautoprops ` + -output:"$folderWorking\$folderReports\Write.xml" ` + -oldStyle +} -&"$userProfile\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe" ` --register:user ` --target:"C:\Program Files\dotnet\dotnet.exe" ` --targetargs:"test $workingFolder\Squidex.Domain.Users.Tests\Squidex.Domain.Users.Tests.csproj" ` --filter:"+[Squidex*]*" ` --skipautoprops ` --output:"$workingFolder\$reportsFolder\Users.xml" ` --oldStyle +if ($all -Or $users) { + &"$folderHome\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe" ` + -register:user ` + -target:"C:\Program Files\dotnet\dotnet.exe" ` + -targetargs:"test $folderWorking\Squidex.Domain.Users.Tests\Squidex.Domain.Users.Tests.csproj" ` + -filter:"+[Squidex*]*" ` + -skipautoprops ` + -output:"$folderWorking\$folderReports\Users.xml" ` + -oldStyle +} -&"$userProfile\.nuget\packages\ReportGenerator\2.5.11\tools\ReportGenerator.exe" ` --reports:"$workingFolder\$reportsFolder\*.xml" ` --targetdir:"$workingFolder\$reportsFolder\Output" \ No newline at end of file +&"$folderHome\.nuget\packages\ReportGenerator\2.5.11\tools\ReportGenerator.exe" ` +-reports:"$folderWorking\$folderReports\*.xml" ` +-targetdir:"$folderWorking\$folderReports\Output" \ No newline at end of file diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Contents/ContentDataTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Contents/ContentDataTests.cs index 4c21d08bb..36837bff5 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Contents/ContentDataTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Contents/ContentDataTests.cs @@ -553,5 +553,21 @@ namespace Squidex.Domain.Apps.Core.Contents Assert.Equal(1, cleanedValue.Count); Assert.Equal(id1.ToString(), cleanedValue[0]); } + + [Fact] + public void Should_be_equal_fields_when_they_have_same_value() + { + var lhs = + new ContentFieldData() + .AddValue("iv", 2); + + var rhs = + new ContentFieldData() + .AddValue("iv", 2); + + Assert.True(lhs.Equals(rhs)); + Assert.True(lhs.Equals((object)rhs)); + Assert.Equal(lhs.GetHashCode(), rhs.GetHashCode()); + } } } diff --git a/tests/Squidex.Infrastructure.Tests/Actors/ActorTests.cs b/tests/Squidex.Infrastructure.Tests/Actors/ActorTests.cs index 2aefe8170..ba9e44abe 100644 --- a/tests/Squidex.Infrastructure.Tests/Actors/ActorTests.cs +++ b/tests/Squidex.Infrastructure.Tests/Actors/ActorTests.cs @@ -112,12 +112,26 @@ namespace Squidex.Infrastructure.Actors { sut.SendAsync(new SuccessMessage { Counter = 1 }).Forget(); - sut.StopAsync().Forget(); + await sut.StopAsync(); sut.SendAsync(new SuccessMessage { Counter = 2 }).Forget(); sut.SendAsync(new SuccessMessage { Counter = 3 }).Forget(); sut.SendAsync(new InvalidOperationException()).Forget(); + sut.Invokes.ShouldBeEquivalentTo(new List + { + new SuccessMessage { Counter = 1 }, + true + }); + } + + [Fact] + public async Task Should_call_stop_on_dispose() + { + sut.SendAsync(new SuccessMessage { Counter = 1 }).Forget(); + + sut.Dispose(); + await sut.StopAsync(); sut.Invokes.ShouldBeEquivalentTo(new List