Skip to content

Commit e6f6744

Browse files
committed
chore: fix mongodb
1 parent 874a286 commit e6f6744

File tree

7 files changed

+40
-32
lines changed

7 files changed

+40
-32
lines changed

samples/WebApp/HostedServices/MongoDbService.cs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
using Mongo2Go;
1+
using EphemeralMongo;
22

33
namespace WebApp.HostedServices;
44

55
public class MongoDbService : IHostedService, IAsyncDisposable
66
{
7-
private static MongoDbRunner? _runner;
7+
private static IMongoRunner? _runner;
88

9-
public Task StartAsync(CancellationToken cancellationToken)
9+
public async Task StartAsync(CancellationToken cancellationToken)
1010
{
11-
_runner ??= MongoDbRunner.StartForDebugging(
12-
singleNodeReplSet: true,
13-
additionalMongodArguments: "--quiet",
14-
port: 27099);
15-
16-
return Task.CompletedTask;
11+
_runner ??= await MongoRunner.RunAsync(new()
12+
{
13+
UseSingleNodeReplicaSet = true,
14+
MongoPort = 27099
15+
}, cancellationToken);
1716
}
1817

1918
public Task StopAsync(CancellationToken cancellationToken)

samples/WebApp/WebApp.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
</ItemGroup>
1414

1515
<ItemGroup>
16-
<PackageReference Include="Mongo2Go" Version="4.1.0" />
16+
<PackageReference Include="EphemeralMongo" Version="3.0.0" />
1717
<PackageReference Include="Serilog.AspNetCore" Version="8.0.3"/>
1818
<PackageReference Include="Serilog.Settings.Configuration" Version="8.0.4"/>
1919
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0"/>

src/Serilog.Ui.RavenDbProvider/Serilog.Ui.RavenDbProvider.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<PackageId>Serilog.Ui.RavenDbProvider</PackageId>
55
<TargetFramework>netstandard2.0</TargetFramework>
66
<LangVersion>latest</LangVersion>
7-
<Version>2.2.0</Version>
7+
<Version>3.0.0</Version>
88

99
<Nullable>enable</Nullable>
1010
<ImplicitUsings>enable</ImplicitUsings>

tests/Serilog.Ui.MongoDbProvider.Tests/Serilog.Ui.MongoDbProvider.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9-
<PackageReference Include="Mongo2Go" Version="4.1.0" />
9+
<PackageReference Include="EphemeralMongo" Version="3.0.0" />
1010
<PackageReference Include="Serilog.Sinks.MongoDB" Version="7.0.0" />
1111
</ItemGroup>
1212

tests/Serilog.Ui.MongoDbProvider.Tests/Util/BaseIntegrationTest.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,9 @@ public class BaseIntegrationTest : IIntegrationRunner
2323

2424
public Task DisposeAsync() => Task.CompletedTask;
2525

26-
public virtual Task InitializeAsync()
26+
public virtual async Task InitializeAsync()
2727
{
28-
Builder = MongoDbDataProviderBuilder.Build();
29-
30-
return Task.CompletedTask;
28+
Builder = await MongoDbDataProviderBuilder.Build();
3129
}
3230

3331
public IDataProvider GetDataProvider() => Guard.Against.Null(Builder?.Sut);
@@ -38,7 +36,7 @@ protected virtual void Dispose(bool disposing)
3836
{
3937
if (!_disposedValue)
4038
{
41-
if (disposing && Builder != null)
39+
if (disposing && Builder != null && Builder.Runner != null)
4240
{
4341
Builder.Runner.Dispose();
4442
}

tests/Serilog.Ui.MongoDbProvider.Tests/Util/Builders/MongoDbDataProviderBuilder.cs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Mongo2Go;
1+
using System.Threading.Tasks;
2+
using EphemeralMongo;
23
using MongoDB.Driver;
34
using Serilog;
45
using Serilog.Ui.Common.Tests.DataSamples;
@@ -11,29 +12,33 @@ public class MongoDbDataProviderBuilder
1112
{
1213
private const string DefaultDbName = "IntegrationTests";
1314

14-
internal readonly MongoDbRunner Runner;
15-
internal readonly MongoDbOptions Options;
16-
internal readonly IMongoClient Client;
17-
internal readonly IMongoDatabase Database;
15+
internal IMongoRunner? Runner;
16+
internal MongoDbOptions Options;
17+
private IMongoClient? Client;
1818
internal IDataProvider? Sut;
1919
internal LogModelPropsCollector? Collector;
2020

2121
private MongoDbDataProviderBuilder(MongoDbOptions options)
2222
{
2323
Options = options;
24-
(Runner, Client) = IntegrationDbGeneration.Generate(options);
25-
Database = Client!.GetDatabase(options.DatabaseName);
26-
27-
Sut = new MongoDbDataProvider(Client, Options);
28-
Collector = Seed(Options.ConnectionString);
2924
}
3025

31-
public static MongoDbDataProviderBuilder Build()
26+
public static Task<MongoDbDataProviderBuilder> Build()
3227
{
3328
var options = new MongoDbOptions()
3429
.WithCollectionName("LogCollection")
3530
.WithDatabaseName(DefaultDbName);
36-
return new MongoDbDataProviderBuilder(options);
31+
return new MongoDbDataProviderBuilder(options).Init();
32+
}
33+
34+
private async Task<MongoDbDataProviderBuilder> Init()
35+
{
36+
(Runner, Client) = await IntegrationDbGeneration.Generate(Options);
37+
38+
Sut = new MongoDbDataProvider(Client, Options);
39+
Collector = Seed(Options.ConnectionString);
40+
41+
return this;
3742
}
3843

3944
private static LogModelPropsCollector Seed(string? connectionString)

tests/Serilog.Ui.MongoDbProvider.Tests/Util/IntegrationDbGeneration.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
2-
using Mongo2Go;
2+
using System.Threading.Tasks;
3+
using EphemeralMongo;
34
using MongoDB.Driver;
45
using Serilog.Ui.Core.Extensions;
56
using Serilog.Ui.MongoDbProvider;
@@ -8,9 +9,14 @@ namespace MongoDb.Tests.Util;
89

910
public static class IntegrationDbGeneration
1011
{
11-
public static (MongoDbRunner runner, IMongoClient client) Generate(MongoDbOptions options)
12+
public static async Task<(IMongoRunner runner, IMongoClient client)> Generate(MongoDbOptions options)
1213
{
13-
var runner = MongoDbRunner.Start(singleNodeReplSet: true);
14+
// don't add an using here - runner should be disposed by the Generate invoker!
15+
var runner = await MongoRunner.RunAsync(new()
16+
{
17+
UseSingleNodeReplicaSet = true,
18+
MongoPort = 27098
19+
});
1420
var settings = MongoClientSettings.FromConnectionString(runner.ConnectionString);
1521
settings.ServerSelectionTimeout = TimeSpan.FromSeconds(10);
1622
var client = new MongoClient(settings);

0 commit comments

Comments
 (0)