From 55290c93e7297baf6233c6c6e7e29fc1e0a42f9a Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Fri, 28 Mar 2025 14:08:38 +0100 Subject: [PATCH] =?UTF-8?q?feat(mock):=20Unterst=C3=BCtzung=20f=C3=BCr=20e?= =?UTF-8?q?chte=20Datenbankkonfiguration=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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. --- .../EnvelopeGenerator.Tests.Application.csproj | 3 +++ EnvelopeGenerator.Tests.Application/Mock.cs | 16 ++++++++++++++-- .../Services/DocumentStatusServiceTests.cs | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/EnvelopeGenerator.Tests.Application/EnvelopeGenerator.Tests.Application.csproj b/EnvelopeGenerator.Tests.Application/EnvelopeGenerator.Tests.Application.csproj index bb36a054..5d3bd5ed 100644 --- a/EnvelopeGenerator.Tests.Application/EnvelopeGenerator.Tests.Application.csproj +++ b/EnvelopeGenerator.Tests.Application/EnvelopeGenerator.Tests.Application.csproj @@ -23,6 +23,9 @@ + + + diff --git a/EnvelopeGenerator.Tests.Application/Mock.cs b/EnvelopeGenerator.Tests.Application/Mock.cs index c4958861..a9cc42d6 100644 --- a/EnvelopeGenerator.Tests.Application/Mock.cs +++ b/EnvelopeGenerator.Tests.Application/Mock.cs @@ -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? builderOptions = null, string configPath = "appsettings.json", params string[] args) + public static IHost CreateHost(Action? 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(); diff --git a/EnvelopeGenerator.Tests.Application/Services/DocumentStatusServiceTests.cs b/EnvelopeGenerator.Tests.Application/Services/DocumentStatusServiceTests.cs index 449b1106..275a11e3 100644 --- a/EnvelopeGenerator.Tests.Application/Services/DocumentStatusServiceTests.cs +++ b/EnvelopeGenerator.Tests.Application/Services/DocumentStatusServiceTests.cs @@ -10,7 +10,7 @@ public class DocumentStatusServiceTests [SetUp] public void SetUp() { - _host = Mock.CreateHost(); + _host = Mock.CreateHost(useRealDb: true); } [TearDown]