using Microsoft.Extensions.DependencyInjection; using StellaOps.Graph.Indexer.Infrastructure; using Mongo2Go; using MongoDB.Driver; namespace StellaOps.Graph.Indexer.Tests; public sealed class MongoServiceCollectionExtensionsTests : IAsyncLifetime { private MongoDbRunner _runner = default!; public Task InitializeAsync() { _runner = MongoDbRunner.Start(singleNodeReplSet: true); return Task.CompletedTask; } public Task DisposeAsync() { _runner.Dispose(); return Task.CompletedTask; } [Fact] public void AddGraphMongoDatabase_RegistersClientAndDatabase() { var services = new ServiceCollection(); services.AddGraphMongoDatabase(options => { options.ConnectionString = _runner.ConnectionString; options.DatabaseName = "graph-indexer-ext-tests"; }); var provider = services.BuildServiceProvider(); var client = provider.GetService(); var database = provider.GetService(); Assert.NotNull(client); Assert.NotNull(database); Assert.Equal("graph-indexer-ext-tests", database!.DatabaseNamespace.DatabaseName); } }