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
205 changes: 101 additions & 104 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -1,106 +1,103 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<PropertyGroup Label="Package versions for .NET 9" Condition="'$(TargetFramework)' == 'net9.0'">
<MicrosoftTestHostVer>9.0.0-rc.2.24474.3</MicrosoftTestHostVer>
<MicrosoftExtensionsVer>9.0.0-rc.2.24473.5</MicrosoftExtensionsVer>
<MicrosoftHealthCheckVer>9.0.0-rc.2.24474.3</MicrosoftHealthCheckVer>
</PropertyGroup>
<PropertyGroup Label="Package versions for .NET 8" Condition="'$(TargetFramework)' == 'net8.0'">
<MicrosoftTestHostVer>8.0.6</MicrosoftTestHostVer>
<MicrosoftExtensionsVer>8.0</MicrosoftExtensionsVer>
<MicrosoftHealthCheckVer>8.0.8</MicrosoftHealthCheckVer>
</PropertyGroup>
<PropertyGroup Label="Testcontainers version">
<TestcontainersVersion>3.10.0</TestcontainersVersion>
</PropertyGroup>
<PropertyGroup>
<NpgsqlVersion>8.0.5</NpgsqlVersion>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="BenchmarkDotNet" Version="0.14.0"/>
<PackageVersion Include="FluentValidation" Version="11.10.0"/>
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="$(MicrosoftExtensionsVer)"/>
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="$(MicrosoftExtensionsVer)"/>
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(MicrosoftHealthCheckVer)"/>
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(MicrosoftExtensionsVer)"/>
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="$(MicrosoftExtensionsVer)"/>
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftExtensionsVer)"/>
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftExtensionsVer)"/>
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsVer)"/>
<PackageVersion Include="Microsoft.Extensions.Logging" Version="$(MicrosoftExtensionsVer)"/>
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="$(MicrosoftExtensionsVer)"/>
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1"/>
<PackageVersion Include="Shouldly" Version="4.2.1"/>
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="8.0.1"/>
<PackageVersion Include="System.Reactive" Version="6.0.1"/>
<PackageVersion Include="System.Linq.Async" Version="6.0.1"/>
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.9.0"/>
<PackageVersion Include="EventStore.Client.Grpc.PersistentSubscriptions" Version="23.3.7"/>
<PackageVersion Include="EventStore.Client.Grpc.Streams" Version="23.3.7"/>
<PackageVersion Include="MongoDB.Driver" Version="2.30.0"/>
<PackageVersion Include="Google.Cloud.PubSub.V1" Version="3.18.0"/>
<PackageVersion Include="Confluent.Kafka" Version="2.6.0"/>
<PackageVersion Include="Npgsql" Version="$(NpgsqlVersion)"/>
<PackageVersion Include="Npgsql.DependencyInjection" Version="$(NpgsqlVersion)"/>
<PackageVersion Include="RabbitMQ.Client" Version="6.8.1"/>
<PackageVersion Include="Microsoft.Data.SqlClient" Version="5.2.2"/>
<PackageVersion Include="NEST" Version="7.17.5"/>
<PackageVersion Include="Polly" Version="8.4.2"/>
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3"/>
<PackageVersion Include="StackExchange.Redis" Version="2.8.16"/>
</ItemGroup>
<ItemGroup Label="Testcontainers">
<PackageVersion Include="Testcontainers" Version="$(TestcontainersVersion)"/>
<PackageVersion Include="Testcontainers.EventStoreDb" Version="$(TestcontainersVersion)"/>
<PackageVersion Include="Testcontainers.Kafka" Version="$(TestcontainersVersion)"/>
<PackageVersion Include="Testcontainers.MongoDb" Version="$(TestcontainersVersion)"/>
<PackageVersion Include="Testcontainers.PostgreSql" Version="$(TestcontainersVersion)"/>
<PackageVersion Include="Testcontainers.RabbitMq" Version="$(TestcontainersVersion)"/>
<PackageVersion Include="Testcontainers.Redis" Version="$(TestcontainersVersion)"/>
<PackageVersion Include="Testcontainers.SqlEdge" Version="$(TestcontainersVersion)"/>
</ItemGroup>
<ItemGroup Label="References for packable projects">
<PackageVersion Include="MinVer" Version="6.0.0" PrivateAssets="All"/>
<PackageVersion Include="JetBrains.Annotations" Version="2024.2.0" PrivateAssets="All"/>
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All"/>
</ItemGroup>
<ItemGroup Label="References for test projects">
<PackageVersion Include="AutoFixture" Version="4.18.1"/>
<PackageVersion Include="Bogus" Version="35.6.1"/>
<PackageVersion Include="Fare" Version="2.2.1"/>
<PackageVersion Include="FluentAssertions" Version="6.12.1"/>
<PackageVersion Include="coverlet.collector" Version="6.0.2" PrivateAssets="All"/>
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="$(MicrosoftTestHostVer)"/>
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="$(MicrosoftTestHostVer)"/>
<PackageVersion Include="RestSharp" Version="112.1.0"/>
<PackageVersion Include="Hypothesist" Version="3.0.91"/>
<PackageVersion Include="NodaTime" Version="3.2.0"/>
<PackageVersion Include="NodaTime.Serialization.SystemTextJson" Version="1.2.0"/>
<PackageVersion Include="MicroElements.AutoFixture.NodaTime" Version="1.0.0"/>
<PackageVersion Include="MongoDb.Bson.NodaTime" Version="3.0.0"/>
<PackageVersion Include="Verify.DiffPlex" Version="3.1.2"/>
<PackageVersion Include="TUnit" Version="0.2.187"/>
<PackageVersion Include="TUnit.Core" Version="0.2.187"/>
<PackageVersion Include="TUnit.Assertions" Version="0.2.187"/>
<PackageVersion Include="Microsoft.Testing.Extensions.TrxReport" Version="1.4.1"/>
<PackageVersion Include="Verify.TUnit" Version="28.1.3"/>
</ItemGroup>
<ItemGroup Label="Packages for samples">
<PackageVersion Include="MongoDB.Driver.Core.Extensions.DiagnosticSources" Version="1.5.0"/>
<PackageVersion Include="MongoDB.Driver.Core" Version="2.30.0"/>
<PackageVersion Include="Npgsql.OpenTelemetry" Version="$(NpgsqlVersion)"/>
<PackageVersion Include="OpenTelemetry" Version="1.9.0"/>
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.9.0"/>
<PackageVersion Include="OpenTelemetry.Exporter.Prometheus.AspNetCore" Version="1.9.0-beta.2"/>
<PackageVersion Include="OpenTelemetry.Exporter.Zipkin" Version="1.9.0"/>
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.9.0"/>
<PackageVersion Include="OpenTelemetry.Instrumentation.GrpcNetClient" Version="1.9.0-beta.1"/>
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.3"/>
<PackageVersion Include="Serilog.Extensions.Hosting" Version="8.0.0"/>
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0"/>
<PackageVersion Include="Serilog.Sinks.Seq" Version="8.0.0"/>
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.9.0"/>
</ItemGroup>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<PropertyGroup Label="Package versions for .NET 9" Condition="'$(TargetFramework)' == 'net9.0'">
<MicrosoftTestHostVer>9.0.0</MicrosoftTestHostVer>
</PropertyGroup>
<PropertyGroup Label="Package versions for .NET 8" Condition="'$(TargetFramework)' == 'net8.0'">
<MicrosoftTestHostVer>8.0.6</MicrosoftTestHostVer>
</PropertyGroup>
<PropertyGroup Label="Testcontainers version">
<TestcontainersVersion>4.0.0</TestcontainersVersion>
</PropertyGroup>
<PropertyGroup>
<NpgsqlVersion>9.0.1</NpgsqlVersion>
<TUnitVersion>0.4.74</TUnitVersion>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="BenchmarkDotNet" Version="0.14.0" />
<PackageVersion Include="FluentValidation" Version="11.11.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="9.0.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageVersion Include="Shouldly" Version="4.2.1" />
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="9.0.0" />
<PackageVersion Include="System.Reactive" Version="6.0.1" />
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.10.0" />
<PackageVersion Include="EventStore.Client.Grpc.PersistentSubscriptions" Version="23.3.7" />
<PackageVersion Include="EventStore.Client.Grpc.Streams" Version="23.3.7" />
<PackageVersion Include="MongoDB.Driver" Version="3.0.0" />
<PackageVersion Include="Google.Cloud.PubSub.V1" Version="3.19.0" />
<PackageVersion Include="Confluent.Kafka" Version="2.6.1" />
<PackageVersion Include="Npgsql" Version="$(NpgsqlVersion)" />
<PackageVersion Include="Npgsql.DependencyInjection" Version="$(NpgsqlVersion)" />
<PackageVersion Include="RabbitMQ.Client" Version="6.8.1" />
<PackageVersion Include="Microsoft.Data.SqlClient" Version="5.2.2" />
<PackageVersion Include="NEST" Version="7.17.5" />
<PackageVersion Include="Polly" Version="8.4.2" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="StackExchange.Redis" Version="2.8.16" />
</ItemGroup>
<ItemGroup Label="Testcontainers">
<PackageVersion Include="Testcontainers" Version="$(TestcontainersVersion)" />
<PackageVersion Include="Testcontainers.EventStoreDb" Version="$(TestcontainersVersion)" />
<PackageVersion Include="Testcontainers.Kafka" Version="$(TestcontainersVersion)" />
<PackageVersion Include="Testcontainers.MongoDb" Version="$(TestcontainersVersion)" />
<PackageVersion Include="Testcontainers.PostgreSql" Version="$(TestcontainersVersion)" />
<PackageVersion Include="Testcontainers.RabbitMq" Version="$(TestcontainersVersion)" />
<PackageVersion Include="Testcontainers.Redis" Version="$(TestcontainersVersion)" />
<PackageVersion Include="Testcontainers.MsSql" Version="$(TestcontainersVersion)" />
</ItemGroup>
<ItemGroup Label="References for packable projects">
<PackageVersion Include="MinVer" Version="6.0.0" PrivateAssets="All" />
<PackageVersion Include="JetBrains.Annotations" Version="2024.2.0" PrivateAssets="All" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
</ItemGroup>
<ItemGroup Label="References for test projects">
<PackageVersion Include="AutoFixture" Version="4.18.1" />
<PackageVersion Include="Bogus" Version="35.6.1" />
<PackageVersion Include="Fare" Version="2.2.1" />
<PackageVersion Include="FluentAssertions" Version="7.0.0" />
<PackageVersion Include="coverlet.collector" Version="6.0.2" PrivateAssets="All" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="$(MicrosoftTestHostVer)" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="$(MicrosoftTestHostVer)" />
<PackageVersion Include="RestSharp" Version="112.1.0" />
<PackageVersion Include="Hypothesist" Version="3.0.91" />
<PackageVersion Include="NodaTime" Version="3.2.0" />
<PackageVersion Include="NodaTime.Serialization.SystemTextJson" Version="1.2.0" />
<PackageVersion Include="MicroElements.AutoFixture.NodaTime" Version="1.0.0" />
<PackageVersion Include="MongoDb.Bson.NodaTime" Version="3.0.0" />
<PackageVersion Include="Verify.DiffPlex" Version="3.1.2" />
<PackageVersion Include="TUnit" Version="$(TUnitVersion)" />
<PackageVersion Include="TUnit.Core" Version="$(TUnitVersion)" />
<PackageVersion Include="TUnit.Assertions" Version="$(TUnitVersion)" />
<PackageVersion Include="Microsoft.Testing.Extensions.TrxReport" Version="1.4.1" />
<PackageVersion Include="Verify.TUnit" Version="28.1.3" />
</ItemGroup>
<ItemGroup Label="Packages for samples">
<PackageVersion Include="MongoDB.Driver.Core.Extensions.DiagnosticSources" Version="2.0.0" />
<PackageVersion Include="MongoDB.Driver.Core" Version="2.30.0" />
<PackageVersion Include="Npgsql.OpenTelemetry" Version="$(NpgsqlVersion)" />
<PackageVersion Include="OpenTelemetry" Version="1.9.0" />
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.10.0" />
<PackageVersion Include="OpenTelemetry.Exporter.Prometheus.AspNetCore" Version="1.10.0-beta.1" />
<PackageVersion Include="OpenTelemetry.Exporter.Zipkin" Version="1.10.0" />
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.9.0" />
<PackageVersion Include="OpenTelemetry.Instrumentation.GrpcNetClient" Version="1.9.0-beta.1" />
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.3" />
<PackageVersion Include="Serilog.Extensions.Hosting" Version="8.0.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageVersion Include="Serilog.Sinks.Seq" Version="8.0.0" />
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.9.0" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
var result = await _fixture.EventStore.ReadEvents(streamName, new(10), 100, cancellationToken);
var expected = events.Skip(10);
var actual = result.Select(x => x.Payload);
await Assert.That(actual).IsEquivalentTo(expected);

Check warning on line 51 in src/Core/test/Eventuous.Tests.Persistence.Base/Store/Read.cs

View workflow job for this annotation

GitHub Actions / Build and test

The type 'System.Collections.Generic.IEnumerable<object?>' cannot be used as type parameter 'TActual' in the generic type or method 'CollectionsIsExtensions.IsEquivalentTo<TActual, TInner>(IValueSource<TActual>, IEnumerable<TInner>, string)'. Nullability of type argument 'System.Collections.Generic.IEnumerable<object?>' doesn't match constraint type 'System.Collections.Generic.IEnumerable<object>'.

Check warning on line 51 in src/Core/test/Eventuous.Tests.Persistence.Base/Store/Read.cs

View workflow job for this annotation

GitHub Actions / Build and test

The type 'System.Collections.Generic.IEnumerable<object?>' cannot be used as type parameter 'TActual' in the generic type or method 'CollectionsIsExtensions.IsEquivalentTo<TActual, TInner>(IValueSource<TActual>, IEnumerable<TInner>, string)'. Nullability of type argument 'System.Collections.Generic.IEnumerable<object?>' doesn't match constraint type 'System.Collections.Generic.IEnumerable<object>'.
}

[Test]
Expand All @@ -62,7 +62,7 @@
var expected = events.Take(10);

IEnumerable<object> actual = result.Select(x => x.Payload)!;
await Assert.That(actual).IsEquivalentCollectionTo(expected);
await Assert.That(actual).IsEquivalentTo(expected);
}

[Test]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ protected async Task Should_load_hot_and_archive() {
var loaded = (await combined.ReadStream(stream, StreamReadPosition.Start)).ToArray();

var actual = loaded.Select(x => (TestEventForTiers)x.Payload!).ToArray();
await Assert.That(actual).IsEquivalentCollectionTo(testEvents);
await Assert.That(actual).IsEquivalentTo(testEvents);

await Assert.That(loaded.Take(50).Select(x => x.FromArchive)).DoesNotContain(false);
await Assert.That(loaded.Skip(50).Select(x => x.FromArchive)).DoesNotContain(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

namespace Eventuous.Tests.GooglePubSub;

[ClassDataSource<PubSubFixture>(Shared = SharedType.ForClass)]
[ClassDataSource<PubSubFixture>(Shared = SharedType.PerClass)]
public class PubSubTests {
static PubSubTests() => TypeMap.Instance.RegisterKnownEventTypes(typeof(TestEvent).Assembly);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
// Licensed under the Apache License, Version 2.0.

using System.Linq.Expressions;
using MongoDB.Driver.Linq;

namespace Eventuous.Projections.MongoDB.Tools;

Expand Down Expand Up @@ -278,14 +277,14 @@ public static Task<long> DeleteManyDocuments<T>(
) where T : Document
=> database.GetDocumentCollection<T>(collectionName).DeleteManyDocuments(filter, cancellationToken);

public static IMongoQueryable<T> AsQueryable<T>(this IMongoDatabase database, MongoCollectionName collectionName, Action<AggregateOptions>? configure = null)
public static IQueryable<T> AsQueryable<T>(this IMongoDatabase database, MongoCollectionName collectionName, Action<AggregateOptions>? configure = null)
where T : Document {
var options = new AggregateOptions();
configure?.Invoke(options);
return database.GetDocumentCollection<T>(collectionName).AsQueryable(options);
}

public static IMongoQueryable<T> AsQueryable<T>(this IMongoDatabase database, Action<AggregateOptions>? configure = null) where T : Document {
public static IQueryable<T> AsQueryable<T>(this IMongoDatabase database, Action<AggregateOptions>? configure = null) where T : Document {
var options = new AggregateOptions();
configure?.Invoke(options);
return database.GetDocumentCollection<T>().AsQueryable(options);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<ItemGroup>
<PackageReference Include="MicroElements.AutoFixture.NodaTime"/>
<PackageReference Include="NodaTime.Serialization.SystemTextJson"/>
<PackageReference Include="Testcontainers.SqlEdge"/>
<PackageReference Include="Testcontainers.MsSql"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(DiagRoot)\Eventuous.Diagnostics.Logging\Eventuous.Diagnostics.Logging.csproj"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
using Testcontainers.SqlEdge;
using Testcontainers.MsSql;

namespace Eventuous.Tests.SqlServer.Fixtures;

public static class SqlContainer {
public static SqlEdgeContainer Create() => new SqlEdgeBuilder()
.WithImage("mcr.microsoft.com/mssql/server:2022-latest")
.Build();
public static MsSqlContainer Create() => new MsSqlBuilder().WithImage("mcr.microsoft.com/mssql/server:2022-latest").Build();
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
using Eventuous.Tests.OpenTelemetry.Fixtures;
using Eventuous.Tests.SqlServer.Fixtures;
using Microsoft.Extensions.DependencyInjection;
using Testcontainers.SqlEdge;
using Testcontainers.MsSql;

namespace Eventuous.Tests.SqlServer.Metrics;

public class MetricsFixture
: MetricsSubscriptionFixtureBase<SqlEdgeContainer, UniversalProducer, SqlServerStreamSubscription, SqlServerStreamSubscriptionOptions> {
: MetricsSubscriptionFixtureBase<MsSqlContainer, UniversalProducer, SqlServerStreamSubscription, SqlServerStreamSubscriptionOptions> {
readonly string _schemaName = GetSchemaName();

protected override SqlEdgeContainer CreateContainer() => SqlContainer.Create();
protected override MsSqlContainer CreateContainer() => SqlContainer.Create();

protected override void ConfigureSubscription(SqlServerStreamSubscriptionOptions options) {
options.Schema = _schemaName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@
using Eventuous.Tests.Persistence.Base.Fixtures;
using Eventuous.Tests.SqlServer.Fixtures;
using Microsoft.Extensions.DependencyInjection;
using Testcontainers.SqlEdge;
using Testcontainers.MsSql;

namespace Eventuous.Tests.SqlServer.Store;

public sealed class StoreFixture : StoreFixtureBase<SqlEdgeContainer> {
public sealed class StoreFixture : StoreFixtureBase<MsSqlContainer> {
readonly string _schemaName = GetSchemaName();

protected override void SetupServices(IServiceCollection services) {
services.AddEventuousSqlServer(Container.GetConnectionString(), _schemaName, true);
services.AddEventStore<SqlServerStore>();
}

protected override SqlEdgeContainer CreateContainer() => SqlContainer.Create();
protected override MsSqlContainer CreateContainer() => SqlContainer.Create();
}
Loading
Loading