Files
tnsu-approval-route/backend/tests/Tnsu.ApprovalRoute.IntegrationTests/Infrastructure/TestServiceProviderFactory.cs
T
gorbenko.pavel 602554ac64
Tests / test (push) Successful in 5m45s
апи для работы с маршрутами согласования (#2)
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/2
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tnsu.kz>
Co-committed-by: gorbenko.pavel <gorbenko.pavel@tnsu.kz>
2026-07-27 13:14:32 +00:00

35 lines
1.2 KiB
C#

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Tnsu.ApprovalRoute.Application;
using Tnsu.ApprovalRoute.Application.Common.Interfaces;
using Tnsu.ApprovalRoute.Infrastructure;
using Tnsu.ApprovalRoute.Infrastructure.TnsuPortal;
namespace Tnsu.ApprovalRoute.IntegrationTests.Infrastructure;
internal static class TestServiceProviderFactory
{
public static ServiceProvider Build(
string connectionString,
string? currentUserEmail = "initiator@tnsu.kz",
ITnsuPortalClient? portalClient = null)
{
var configuration = new ConfigurationBuilder()
.AddInMemoryCollection(new Dictionary<string, string?>
{
["ConnectionStrings:Postgres"] = connectionString
})
.Build();
var services = new ServiceCollection();
services.AddApprovalRouteInfrastructure(configuration);
services.AddApprovalRouteApplication();
services.AddSingleton<ICurrentUser>(new TestCurrentUser(currentUserEmail));
if (portalClient is not null)
services.AddSingleton(portalClient);
return services.BuildServiceProvider();
}
}