/
afanasevn
/
MaxSystems
Обзор
Документация
Войти
/
afanasevn
/
MaxSystems
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/MaxSystems.IntegrationTests/MaxSystemsWebApplicationFactory.cs
54 строки
2 KB
IBS\NAfanasev
Integration Event Bus
22 июн 2026, 17:02
22 июн 2026, 17:02
05d97a7
Код
Авторство
О чём код?
using MaxSystems.Infrastructure.Configuration; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.Extensions.Configuration; namespace MaxSystems.IntegrationTests; /// <summary> /// Поднимает <see cref="Program"/> in-process для интеграционных тестов. /// Подменяет connection strings на Testcontainers; окружение Testing отключает загрузку .env. /// </summary> public sealed class MaxSystemsWebApplicationFactory : WebApplicationFactory<Program> { /// <summary>Создаёт фабрику с connection strings из Testcontainers.</summary> public MaxSystemsWebApplicationFactory( string postgresConnectionString, string rabbitMqConnectionString) { PostgresConnectionString = postgresConnectionString; RabbitMqConnectionString = rabbitMqConnectionString; } /// <summary>PostgreSQL из Testcontainers.</summary> public string PostgresConnectionString { get; } /// <summary>RabbitMQ AMQP URI из Testcontainers.</summary> public string RabbitMqConnectionString { get; } /// <inheritdoc /> protected override void ConfigureWebHost(IWebHostBuilder builder) { builder.UseEnvironment("Testing"); Environment.SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Testing"); Environment.SetEnvironmentVariable( $"ConnectionStrings__{ConnectionStringConfiguration.DefaultConnectionName}", PostgresConnectionString); Environment.SetEnvironmentVariable( $"ConnectionStrings__{ConnectionStringConfiguration.RabbitMqConnectionName}", RabbitMqConnectionString); builder.ConfigureAppConfiguration( (_, config) => { config.AddInMemoryCollection(new Dictionary<string, string?> { [$"ConnectionStrings:{ConnectionStringConfiguration.DefaultConnectionName}"] = PostgresConnectionString, [$"ConnectionStrings:{ConnectionStringConfiguration.RabbitMqConnectionName}"] = RabbitMqConnectionString, }); }); } }