Перевести FakeTenantLimitStore на NSubstitute
Хелпер Support/TestTenantLimitStore: строки лимитов с полной бюджетной семантикой (GetOrCreate/GetState/AddUsage/UpdateBudget, Warned80/ NotifiedExhausted, сброс истёкших периодов, сценарий сбоя чтения), DI получает .Store. Потребители (13 файлов) перетипизированы, фейк удалён, тесты 1340 зелёные.
This commit is contained in:
@@ -18,7 +18,7 @@ namespace Deal.Tests.Unit.Contracts;
|
||||
/// </summary>
|
||||
public sealed class BudgetedAiClassifierTests
|
||||
{
|
||||
// Id тенанта сценариев строкой (формат N) — Guid ключа строк лимита FakeTenantLimitStore.
|
||||
// Id тенанта сценариев строкой (формат N) — Guid ключа строк лимита TestTenantLimitStore.
|
||||
private const string TenantIdValue = "0123456789abcdef0123456789abcdef";
|
||||
|
||||
// Guid того же тенанта — ключ строки лимита.
|
||||
@@ -158,10 +158,10 @@ public sealed class BudgetedAiClassifierTests
|
||||
// (зеркало регистрации AddDealIntegrations при UseLocal=false).
|
||||
// configure: Настройка строки лимита сценария (null — строки нет, ленивый дефолт-бюджет).
|
||||
// Возвращает: Контекст теста.
|
||||
private static Context Create(Action<FakeTenantLimitStore>? configure = null)
|
||||
private static Context Create(Action<TestTenantLimitStore>? configure = null)
|
||||
{
|
||||
var settings = new FakeSettingsStore();
|
||||
var limits = new FakeTenantLimitStore();
|
||||
var limits = new TestTenantLimitStore();
|
||||
configure?.Invoke(limits);
|
||||
ITenantContext tenantContext = new TenantContext();
|
||||
tenantContext.SetTenant(new TenantId(TenantIdValue));
|
||||
@@ -169,7 +169,7 @@ public sealed class BudgetedAiClassifierTests
|
||||
IAiClassifier decorator = new BudgetedAiClassifier(
|
||||
paid.Classifier,
|
||||
new LocalAiClassifier(new LocalFieldsParser(settings)),
|
||||
limits,
|
||||
limits.Store,
|
||||
tenantContext,
|
||||
NullLogger<BudgetedAiClassifier>.Instance);
|
||||
return new Context(decorator, paid, settings);
|
||||
|
||||
Reference in New Issue
Block a user