feat(mock): Unterstützung für echte Datenbankkonfiguration hinzugefügt
- Parameter `useRealDb` zur Methode `CreateHost` hinzugefügt, um zwischen In-Memory- und echter Datenbank zu wechseln. - `Microsoft.EntityFrameworkCore` für die Datenbankkonfiguration integriert. - SQL Server-Verbindung konfiguriert, wenn `useRealDb` auf `true` gesetzt ist, ansonsten wird standardmäßig eine In-Memory-Datenbank verwendet.
This commit is contained in:
@@ -4,18 +4,30 @@ using EnvelopeGenerator.Infrastructure;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using EnvelopeGenerator.Application.Services;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace EnvelopeGenerator.Tests.Application;
|
||||
|
||||
public class Mock
|
||||
{
|
||||
public static IHost CreateHost(Action<HostApplicationBuilder>? builderOptions = null, string configPath = "appsettings.json", params string[] args)
|
||||
public static IHost CreateHost(Action<HostApplicationBuilder>? builderOptions = null, string configPath = "appsettings.json", bool useRealDb = false, params string[] args)
|
||||
{
|
||||
var builder = Host.CreateApplicationBuilder(args.Any() ? args : null);
|
||||
var config = builder.Configuration;
|
||||
builder.Configuration.AddJsonFile(configPath, optional: true, reloadOnChange: true);
|
||||
|
||||
builder.Services
|
||||
.AddEnvelopeGeneratorRepositories()
|
||||
.AddEnvelopeGeneratorRepositories(opt =>
|
||||
{
|
||||
if (useRealDb)
|
||||
{
|
||||
var connStr = config.GetConnectionString("Default")
|
||||
?? throw new InvalidOperationException("There is no default connection string in appsettings.json.");
|
||||
opt.UseSqlServer(connStr);
|
||||
}
|
||||
else
|
||||
opt.UseInMemoryDatabase("MockDB");
|
||||
})
|
||||
.AddEnvelopeGeneratorServices(builder.Configuration)
|
||||
.AddScoped<DocumentStatusService>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user