mirror of
https://github.com/farcasclaudiu/PracticeCalendar.git
synced 2026-06-22 07:01:16 +03:00
8d68f1b7a1
* test domain events * cleanup
46 lines
1.5 KiB
C#
46 lines
1.5 KiB
C#
using Microsoft.AspNetCore.Hosting;
|
|
using Microsoft.AspNetCore.Mvc.Testing;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Moq;
|
|
using PracticeCalendar.Domain.Common.Interfaces;
|
|
using PracticeCalendar.Infrastructure.Persistence;
|
|
using PracticeCalendar.Infrastructure.Services;
|
|
|
|
namespace PracticeCalendar.UnitTests.Integration
|
|
{
|
|
public class CustomWebApplicationFactory : WebApplicationFactory<Program>
|
|
{
|
|
private readonly Action<IServiceCollection> configServices;
|
|
|
|
public CustomWebApplicationFactory(Action<IServiceCollection> configServices)
|
|
{
|
|
this.configServices = configServices;
|
|
}
|
|
protected override void ConfigureWebHost(IWebHostBuilder builder)
|
|
{
|
|
builder.ConfigureAppConfiguration(configurationBuilder =>
|
|
{
|
|
var integrationConfig = new ConfigurationBuilder()
|
|
.AddJsonFile("appsettings.json")
|
|
.AddEnvironmentVariables()
|
|
.Build();
|
|
|
|
configurationBuilder.AddConfiguration(integrationConfig);
|
|
});
|
|
|
|
builder.ConfigureServices((builder, services) =>
|
|
{
|
|
services.Remove<DbContextOptions<ApplicationDbContext>>();
|
|
services.AddDbContext<ApplicationDbContext>(options =>
|
|
options.UseInMemoryDatabase("InMemoryDbForTesting")
|
|
);
|
|
configServices(services);
|
|
});
|
|
}
|
|
|
|
|
|
}
|
|
}
|