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>
|
<ItemGroup>
|
||||||
<PackageReference Include="coverlet.collector" Version="6.0.0" />
|
<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.Extensions.DependencyInjection" Version="8.0.1" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
||||||
<PackageReference Include="NUnit" Version="3.14.0" />
|
<PackageReference Include="NUnit" Version="3.14.0" />
|
||||||
|
|||||||
@ -4,18 +4,30 @@ using EnvelopeGenerator.Infrastructure;
|
|||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using EnvelopeGenerator.Application.Services;
|
using EnvelopeGenerator.Application.Services;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Tests.Application;
|
namespace EnvelopeGenerator.Tests.Application;
|
||||||
|
|
||||||
public class Mock
|
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 builder = Host.CreateApplicationBuilder(args.Any() ? args : null);
|
||||||
|
var config = builder.Configuration;
|
||||||
builder.Configuration.AddJsonFile(configPath, optional: true, reloadOnChange: true);
|
builder.Configuration.AddJsonFile(configPath, optional: true, reloadOnChange: true);
|
||||||
|
|
||||||
builder.Services
|
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)
|
.AddEnvelopeGeneratorServices(builder.Configuration)
|
||||||
.AddScoped<DocumentStatusService>();
|
.AddScoped<DocumentStatusService>();
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,7 @@ public class DocumentStatusServiceTests
|
|||||||
[SetUp]
|
[SetUp]
|
||||||
public void SetUp()
|
public void SetUp()
|
||||||
{
|
{
|
||||||
_host = Mock.CreateHost();
|
_host = Mock.CreateHost(useRealDb: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TearDown]
|
[TearDown]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user