36 lines
1.2 KiB
C#
36 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.AddLogging();
|
|
services.AddApprovalRouteInfrastructure(configuration);
|
|
services.AddApprovalRouteApplication();
|
|
services.AddSingleton<ICurrentUser>(new TestCurrentUser(currentUserEmail));
|
|
|
|
if (portalClient is not null)
|
|
services.AddSingleton(portalClient);
|
|
|
|
return services.BuildServiceProvider();
|
|
}
|
|
}
|