/
d3h5
/
Unistream.TestTask
Обзор
Документация
Войти
/
d3h5
/
Unistream.TestTask
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Unistream.TestTask.Tests/TransientContext/Postgresql/TestDatabaseBuilder.cs
73 строки
2 KB
WORKSTATION-H\mrthe
Первый залив
03 июн 2025, 11:20
03 июн 2025, 11:20
33c9164
Код
Авторство
О чём код?
using Unistream.TestTask.Tests.TransientContext.Common; using Microsoft.Extensions.Configuration; namespace Grimtod.Articles.Tests.TransientContext.Postgresql; public class TestDatabaseBuilder { private string _connectionString = string.Empty; private string _connectionStringName = "Default"; private string _templateDatabase = string.Empty; private IConfiguration? _configuration; private readonly DatabaseNameGenerator _databaseNameGenerator = new DatabaseNameGenerator(); public TestDatabaseBuilder WithConnectionString(string value) { _connectionString = value; return this; } public TestDatabaseBuilder WithConfiguration(IConfiguration value) { _configuration = value; return this; } public TestDatabaseBuilder WithConnectionStringName(string value) { _connectionStringName = value; return this; } public TestDatabaseBuilder WithDatabaseNamePrefix(string value) { _databaseNameGenerator.Prefix = value; return this; } public TestDatabaseBuilder WithTemplateDatabase(string value) { _templateDatabase = value; return this; } public ITestDatabase Build() { if (string.IsNullOrWhiteSpace(_connectionString) && _configuration is null) { throw new ArgumentException("No connection string or configuration was provided"); } if (_configuration is null) { return new TestDatabase(new ConnectionStringManager(_connectionString), _databaseNameGenerator, new Connection()) { TemplateDatabase = _templateDatabase }; } _connectionString = _configuration.GetConnectionString(_connectionStringName)!; if (string.IsNullOrWhiteSpace(_connectionString)) { throw new ArgumentException($"Could not find connection string with name: {_connectionStringName}"); } return new TestDatabase(new ConnectionStringManager(_connectionString), _databaseNameGenerator, new Connection()) { TemplateDatabase = _templateDatabase }; } }