Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions .github/workflows/codecoverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,31 +27,31 @@ jobs:
- name: Run Unit Tests
run: |
echo "ASPNETCORE_ENVIRONMENT are > ${ASPNETCORE_ENVIRONMENT}"
dotnet test "Shared.Tests\Shared.Tests.csproj" \
/p:CollectCoverage=true \
/p:Exclude="[xunit*]*" \
/p:ExcludeByAttribute="Obsolete" \
/p:ExcludeByAttribute="GeneratedCodeAttribute" \
/p:ExcludeByAttribute="CompilerGeneratedAttribute" \
/p:ExcludeByAttribute="ExcludeFromCodeCoverageAttribute" \
/p:CoverletOutput="../lcov1.info" /maxcpucount:1 \
/p:CoverletOutputFormat="lcov"

dotnet test "Shared.EventStore.Tests\Shared.EventStore.Tests.csproj" \
/p:CollectCoverage=true /p:Exclude="[xunit*]*" \
/p:ExcludeByAttribute="Obsolete" \
/p:ExcludeByAttribute="GeneratedCodeAttribute" \
/p:ExcludeByAttribute="CompilerGeneratedAttribute" \
/p:ExcludeByAttribute="ExcludeFromCodeCoverageAttribute" \
/p:CoverletOutput="../lcov2.info" /maxcpucount:1 /p:CoverletOutputFormat="lcov"
dotnet test "Shared.Tests/Shared.Tests.csproj" \
--results-directory "coverage/Shared.Tests" \
--coverlet --coverlet-output-format lcov --coverlet-file-prefix Shared.Tests \
--coverlet-exclude "[xunit*]*" \
--coverlet-exclude-by-attribute Obsolete \
--coverlet-exclude-by-attribute GeneratedCodeAttribute \
--coverlet-exclude-by-attribute CompilerGeneratedAttribute \
--coverlet-exclude-by-attribute ExcludeFromCodeCoverageAttribute

dotnet test "Shared.EventStore.Tests/Shared.EventStore.Tests.csproj" \
--results-directory "coverage/Shared.EventStore.Tests" \
--coverlet --coverlet-output-format lcov --coverlet-file-prefix Shared.EventStore.Tests \
--coverlet-exclude "[xunit*]*" \
--coverlet-exclude-by-attribute Obsolete \
--coverlet-exclude-by-attribute GeneratedCodeAttribute \
--coverlet-exclude-by-attribute CompilerGeneratedAttribute \
--coverlet-exclude-by-attribute ExcludeFromCodeCoverageAttribute

- name: Install LCOV merger
run: npm install -g lcov-result-merger

- name: Merge LCOV reports
run: |
mkdir -p coverage
lcov-result-merger "*.info" > lcov.info
lcov-result-merger "coverage/**/*.lcov" > lcov.info

- name: Upload merged coverage to Codacy
uses: codacy/codacy-coverage-reporter-action@v1
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/nightlybuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,18 +37,18 @@ jobs:
- name: Run Unit Tests
run: |
echo "ASPNETCORE_ENVIRONMENT are > ${ASPNETCORE_ENVIRONMENT}"
dotnet test "Shared.Tests\Shared.Tests.csproj"
dotnet test "Shared.Tests/Shared.Tests.csproj"

- name: Run Event Store Tests
run: |
echo "ASPNETCORE_ENVIRONMENT are > ${ASPNETCORE_ENVIRONMENT}"
dotnet test "Shared.EventStore.Tests\Shared.EventStore.Tests.csproj"
dotnet test "Shared.EventStoreContext.Tests\Shared.EventStoreContext.Tests.csproj"
dotnet test "Shared.EventStore.Tests/Shared.EventStore.Tests.csproj"
dotnet test "Shared.EventStoreContext.Tests/Shared.EventStoreContext.Tests.csproj"

- name: Run Integration Tests
run: |
echo "ASPNETCORE_ENVIRONMENT are > ${ASPNETCORE_ENVIRONMENT}"
dotnet test "Shared.IntegrationTesting.Tests\Shared.IntegrationTesting.Tests.csproj"
dotnet test "Shared.IntegrationTesting.Tests/Shared.IntegrationTesting.Tests.csproj"

- uses: actions/upload-artifact@v4.4.3
with:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/pullrequest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,18 @@ jobs:
- name: Run Unit Tests
run: |
echo "ASPNETCORE_ENVIRONMENT are > ${ASPNETCORE_ENVIRONMENT}"
dotnet test "Shared.Tests\Shared.Tests.csproj"
dotnet test "Shared.Tests/Shared.Tests.csproj"

- name: Run Event Store Tests
run: |
echo "ASPNETCORE_ENVIRONMENT are > ${ASPNETCORE_ENVIRONMENT}"
dotnet test "Shared.EventStore.Tests\Shared.EventStore.Tests.csproj"
dotnet test "Shared.EventStoreContext.Tests\Shared.EventStoreContext.Tests.csproj"
dotnet test "Shared.EventStore.Tests/Shared.EventStore.Tests.csproj"
dotnet test "Shared.EventStoreContext.Tests/Shared.EventStoreContext.Tests.csproj"

- name: Run Integration Tests
run: |
echo "ASPNETCORE_ENVIRONMENT are > ${ASPNETCORE_ENVIRONMENT}"
dotnet test "Shared.IntegrationTesting.Tests\Shared.IntegrationTesting.Tests.csproj"
dotnet test "Shared.IntegrationTesting.Tests/Shared.IntegrationTesting.Tests.csproj"

- uses: actions/upload-artifact@v4.4.3
with:
Expand Down
48 changes: 23 additions & 25 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,40 +4,38 @@
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="AspNetCore.HealthChecks.Uris" Version="9.0.0" />
<PackageVersion Include="coverlet.msbuild" Version="10.0.1" />
<PackageVersion Include="coverlet.collector" Version="10.0.1" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="10.0.9" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.9" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="10.0.9" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.9" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.6.0" />
<PackageVersion Include="RichardSzalay.MockHttp" Version="7.0.0" />
<PackageVersion Include="coverlet.MTP" Version="10.1.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="10.0.13" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.13" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="10.0.13" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.13" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.11.0" />
<PackageVersion Include="RichardSzalay.MockHttp" Version="7.1.0" />
<PackageVersion Include="SimpleResults" Version="4.0.0" />
<PackageVersion Include="SocketIOClient" Version="4.0.5" />
<PackageVersion Include="xunit.v3" Version="3.2.2" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
<PackageVersion Include="Imposter" Version="0.1.9" />
<PackageVersion Include="System.Security.Cryptography.Pkcs" Version="10.0.13" />
<PackageVersion Include="xunit.v3" Version="4.0.2" />
<PackageVersion Include="xunit.runner.visualstudio" Version="4.0.1" />
<PackageVersion Include="Imposter" Version="1.0.2" />
<PackageVersion Include="Shouldly" Version="4.3.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.9" />
<PackageVersion Include="NLog" Version="6.1.3" />
<PackageVersion Include="NLog.Extensions.Logging" Version="6.1.3" />
<PackageVersion Include="Polly" Version="8.7.0" />
<PackageVersion Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.3.11" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.13" />
<PackageVersion Include="NLog" Version="6.2.2" />
<PackageVersion Include="NLog.Extensions.Logging" Version="6.2.2" />
<PackageVersion Include="Polly" Version="8.8.0" />
<PackageVersion Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.3.13" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.13" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.4" />
<PackageVersion Include="System.Text.Json" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="10.0.13" />
<PackageVersion Include="NUnit.Analyzers" Version="4.14.0" />
<PackageVersion Include="NUnit" Version="4.6.1" />
<PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" />
<PackageVersion Include="NUnit" Version="5.0.0" />
<PackageVersion Include="NUnit3TestAdapter" Version="6.3.1" />
<PackageVersion Include="Reqnroll" Version="3.3.4" />
<PackageVersion Include="Reqnroll.NUnit" Version="3.3.4" />
<PackageVersion Include="EventStore.Client.Grpc.PersistentSubscriptions" Version="23.3.9" />
<PackageVersion Include="EventStore.Client.Grpc.ProjectionManagement" Version="23.3.9" />
<PackageVersion Include="Testcontainers" Version="4.12.0" />
<PackageVersion Include="Testcontainers" Version="4.16.0" />
<PackageVersion Include="Docker.DotNet" Version="3.125.15" />
<PackageVersion Include="KurrentDB.Client" Version="1.4.0" />
<PackageVersion Include="KurrentDB.Client" Version="1.6.0" />
<PackageVersion Include="prometheus-net" Version="8.2.1" />
<PackageVersion Include="Pose" Version="1.2.1" />
</ItemGroup>
</Project>
</Project>
1 change: 1 addition & 0 deletions Driver/Driver.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<PackageReference Include="Microsoft.EntityFrameworkCore" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" />
<PackageReference Include="SimpleResults" />
<PackageReference Include="System.Security.Cryptography.Pkcs" />
</ItemGroup>

<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Other packages can be installed independently depending on the functionality req
Run the test suite with:

```bash
dotnet test Shared.sln
dotnet test --solution Shared.sln
```

Docker-backed integration tests require a compatible Linux Docker engine.
Expand Down
5 changes: 3 additions & 2 deletions Shared.EventStore.Tests/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using Xunit;
using Xunit.Sdk;
using Xunit.v3;

[assembly: CollectionBehavior(DisableTestParallelization = true)]
[assembly: Parallelization(Mode = ParallelMode.None)]
8 changes: 4 additions & 4 deletions Shared.EventStore.Tests/Shared.EventStore.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,16 @@

<ItemGroup>
<PackageReference Include="AspNetCore.HealthChecks.Uris" />
<PackageReference Include="coverlet.msbuild">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.MTP">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" />
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="Imposter" />
<PackageReference Include="Shouldly" />
<PackageReference Include="SimpleResults" />
<PackageReference Include="System.Security.Cryptography.Pkcs" />
<PackageReference Include="xunit.v3" />
<PackageReference Include="xunit.runner.visualstudio">
<PrivateAssets>all</PrivateAssets>
Expand Down
1 change: 1 addition & 0 deletions Shared.EventStore/Shared.EventStore.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<PackageReference Include="SimpleResults" />
<FrameworkReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="prometheus-net" />
<PackageReference Include="System.Security.Cryptography.Pkcs" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@ public async Task EventStoreContext_InsertEvents_RetriesAfterDockerOutage()
Task restartTask = Task.Run(async () =>
{
await Task.Delay(2000);
await this.EventStoreDockerHelper.UnpauseEventStoreContainer();
await this.EventStoreDockerHelper.UnpauseKurrentDbContainer();
});

await this.EventStoreDockerHelper.PauseEventStoreContainer();
await this.EventStoreDockerHelper.PauseKurrentDbContainer();

try
{
Expand Down
36 changes: 18 additions & 18 deletions Shared.EventStoreContext.Tests/EventStoreDockerHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public async Task StartContainers(
{
this.SetHostTraceFolder(testName);
this.ScenarioName = testName;
await this.StartContainersForScenarioRun(testName, DockerServices.EventStore, cancellationToken);
await this.StartContainersForScenarioRun(testName, DockerServices.KurrentDb, cancellationToken);
}

public override async Task StopContainersForScenarioRun(DockerServices sharedDockerServices)
Expand Down Expand Up @@ -66,43 +66,43 @@ public override async Task StartContainersForScenarioRun(

ContainerBuilder SetupSecureEventStoreContainerLocal()
{
this.IsSecureEventStore = true;
this.IsSecureKurrentDb = true;

this.EventStoreContainerName = "UnitTestEventStore_Secure";
this.KurrentDbContainerName = "UnitTestKurrentDb_Secure";

return this.SetupEventStoreContainer().WithReuse(true);
return this.SetupKurrentDbContainer().WithReuse(true);
}

ContainerBuilder SetupInsecureEventStoreContainerLocal()
{
this.IsSecureEventStore = false;
this.IsSecureKurrentDb = false;

this.EventStoreContainerName = "UnitTestEventStore_Insecure";
this.KurrentDbContainerName = "UnitTestKurrentDb_Insecure";

return this.SetupEventStoreContainer().WithReuse(true);
return this.SetupKurrentDbContainer().WithReuse(true);
}

await this.StartContainer2(SetupSecureEventStoreContainerLocal,
new List<INetwork> {
networkService
},
DockerServices.EventStore,
DockerServices.KurrentDb,
cancellationToken);

await this.StartContainer2(SetupInsecureEventStoreContainerLocal,
new List<INetwork> {
networkService
},
DockerServices.EventStore,
DockerServices.KurrentDb,
cancellationToken);
}

public KurrentDBClientSettings CreateEventStoreClientSettings(Boolean secureEventStore, TimeSpan? deadline = null, String userName = "admin", String password = "changeit")
{
String connectionString = secureEventStore switch
{
true => $"esdb://{userName}:{password}@127.0.0.1:{this.EventStoreSecureHttpPort}?tls=true&tlsVerifyCert=false",
_ => $"esdb://{userName}:{password}@127.0.0.1:{this.EventStoreHttpPort}?tls=false"
true => $"esdb://{userName}:{password}@127.0.0.1:{this.KurrentDbSecureHttpPort}?tls=true&tlsVerifyCert=false",
_ => $"esdb://{userName}:{password}@127.0.0.1:{this.KurrentDbHttpPort}?tls=false"
};

KurrentDBClientSettings settings = KurrentDBClientSettings.Create(connectionString);
Expand All @@ -127,24 +127,24 @@ public KurrentDBClientSettings CreateEventStoreClientSettings(Boolean secureEven
return settings;
}

public Task PauseEventStoreContainer()
public Task PauseKurrentDbContainer()
{
return this.RunDockerCommand($"pause {this.EventStoreContainerName}");
return this.RunDockerCommand($"pause {this.KurrentDbContainerName}");
}

public Task UnpauseEventStoreContainer()
public Task UnpauseKurrentDbContainer()
{
return this.RunDockerCommand($"unpause {this.EventStoreContainerName}");
return this.RunDockerCommand($"unpause {this.KurrentDbContainerName}");
}

public Task StopEventStoreContainer()
{
return this.RunDockerCommand($"stop -t 0 {this.EventStoreContainerName}");
return this.RunDockerCommand($"stop -t 0 {this.KurrentDbContainerName}");
}

public Task StartEventStoreContainer()
public Task StartKurrentDbContainer()
{
return this.RunDockerCommand($"start {this.EventStoreContainerName}");
return this.RunDockerCommand($"start {this.KurrentDbContainerName}");
}

private async Task RunDockerCommand(String arguments)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

<PropertyGroup>
<TargetFrameworks>net10.0</TargetFrameworks>
<EnableNUnitRunner>true</EnableNUnitRunner>
<OutputType>Exe</OutputType>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<DebugType>Full</DebugType>
Expand All @@ -16,11 +18,8 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="NUnit" />
<PackageReference Include="NUnit3TestAdapter" />
<PackageReference Include="coverlet.collector">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="SimpleResults" />
<PackageReference Include="System.Security.Cryptography.Pkcs" />
</ItemGroup>

<ItemGroup>
Expand Down
3 changes: 2 additions & 1 deletion Shared.IntegrationTesting.Tests/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@
// The following GUID is for the ID of the typelib if this project is exposed to COM.

[assembly: Guid("36b1817d-245b-424f-8a32-a924b23f98ba")]
// Scenarios remain parallelizable because shared SQL connections use per-scenario database names.
[assembly: LevelOfParallelism(2)]
[assembly: Parallelizable(ParallelScope.Fixtures)]
[assembly: Parallelizable(ParallelScope.Fixtures)]
Loading
Loading