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.Core.Abstraction.Application.Repository;
|
||||||
using DigitalData.UserManager.Domain.Entities;
|
using DigitalData.UserManager.Domain.Entities;
|
||||||
using EnvelopeGenerator.Application;
|
using EnvelopeGenerator.Application;
|
||||||
|
using EnvelopeGenerator.Application.Common.Configurations;
|
||||||
using EnvelopeGenerator.Application.EnvelopeReceivers.Commands;
|
using EnvelopeGenerator.Application.EnvelopeReceivers.Commands;
|
||||||
using EnvelopeGenerator.Application.Envelopes.Commands;
|
using EnvelopeGenerator.Application.Envelopes.Commands;
|
||||||
using EnvelopeGenerator.Application.Histories.Commands;
|
using EnvelopeGenerator.Application.Histories.Commands;
|
||||||
@ -15,6 +16,8 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
using QuestPDF.Fluent;
|
using QuestPDF.Fluent;
|
||||||
using QuestPDF.Infrastructure;
|
using QuestPDF.Infrastructure;
|
||||||
|
|
||||||
@ -33,9 +36,6 @@ public class Fake
|
|||||||
})
|
})
|
||||||
.ConfigureServices((context, services) =>
|
.ConfigureServices((context, services) =>
|
||||||
{
|
{
|
||||||
// add custom services
|
|
||||||
configureServices?.Invoke(services);
|
|
||||||
|
|
||||||
IConfiguration configuration = context.Configuration;
|
IConfiguration configuration = context.Configuration;
|
||||||
|
|
||||||
// add Application and Infrastructure services
|
// add Application and Infrastructure services
|
||||||
@ -45,6 +45,12 @@ public class Fake
|
|||||||
(sp, options) => options.UseInMemoryDatabase("EnvelopeGeneratorTestDb"),
|
(sp, options) => options.UseInMemoryDatabase("EnvelopeGeneratorTestDb"),
|
||||||
context.Configuration
|
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
|
#pragma warning restore CS0618
|
||||||
})
|
})
|
||||||
.Build()
|
.Build()
|
||||||
@ -128,6 +134,17 @@ public class Fake
|
|||||||
}
|
}
|
||||||
#endregion
|
#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
|
public static class Extensions
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user