feat(Fake): enhance Fake host with production DbContext support
- Added `EGDbContext2Prod` class to allow connecting to production database in tests - Updated `CreateHost` to register `EGDbContext2Prod` with SQL Server connection string - Added `EnvelopeGenerator.Application.Common.Configurations` and logging support - Refactored service registration ordering for clarity
This commit is contained in:
parent
ccc4e948f3
commit
9eaa777fb6
@ -2,6 +2,7 @@
|
||||
using DigitalData.Core.Abstraction.Application.Repository;
|
||||
using DigitalData.UserManager.Domain.Entities;
|
||||
using EnvelopeGenerator.Application;
|
||||
using EnvelopeGenerator.Application.Common.Configurations;
|
||||
using EnvelopeGenerator.Application.EnvelopeReceivers.Commands;
|
||||
using EnvelopeGenerator.Application.Envelopes.Commands;
|
||||
using EnvelopeGenerator.Application.Histories.Commands;
|
||||
@ -15,6 +16,8 @@ using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using QuestPDF.Fluent;
|
||||
using QuestPDF.Infrastructure;
|
||||
|
||||
@ -33,9 +36,6 @@ public class Fake
|
||||
})
|
||||
.ConfigureServices((context, services) =>
|
||||
{
|
||||
// add custom services
|
||||
configureServices?.Invoke(services);
|
||||
|
||||
IConfiguration configuration = context.Configuration;
|
||||
|
||||
// add Application and Infrastructure services
|
||||
@ -45,6 +45,12 @@ public class Fake
|
||||
(sp, options) => options.UseInMemoryDatabase("EnvelopeGeneratorTestDb"),
|
||||
context.Configuration
|
||||
);
|
||||
|
||||
var prodCnnStr = context.Configuration.GetConnectionString("Default");
|
||||
services.AddDbContext<EGDbContext2Prod>(opt => opt.UseSqlServer(prodCnnStr));
|
||||
|
||||
// add custom services
|
||||
configureServices?.Invoke(services);
|
||||
#pragma warning restore CS0618
|
||||
})
|
||||
.Build()
|
||||
@ -128,6 +134,17 @@ public class Fake
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a mock database context that inherits from <see cref="EGDbContext"/>.
|
||||
/// This context is intended for testing purposes while connecting to the production database.
|
||||
/// </summary>
|
||||
public class EGDbContext2Prod : EGDbContext
|
||||
{
|
||||
public EGDbContext2Prod(DbContextOptions<EGDbContext> options, IOptions<DbTriggerParams> triggerParamOptions, ILogger<EGDbContext>? logger = null) : base(options, triggerParamOptions, logger)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class Extensions
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user