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:
parent
77713997bf
commit
55290c93e7
@ -23,6 +23,9 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.20" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.20" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.20" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
||||
<PackageReference Include="NUnit" Version="3.14.0" />
|
||||
|
||||
@ -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>();
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ public class DocumentStatusServiceTests
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_host = Mock.CreateHost();
|
||||
_host = Mock.CreateHost(useRealDb: true);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user