Files
tiku-backend.net/Tiku.IntegrationTests/ModulePersistenceBoundaryTests.cs
xiong 33375a38d7
Some checks failed
ci / release-gate (push) Has been cancelled
refactor(architecture): harden module boundaries
2026-08-04 12:10:36 +08:00

48 lines
1.9 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Tiku.Application;
using Tiku.Infrastructure;
using Tiku.Infrastructure.Persistence;
namespace Tiku.IntegrationTests;
public sealed class ModulePersistenceBoundaryTests
{
[Fact]
public void Module_persistence_capabilities_share_one_scoped_db_context()
{
var services = new ServiceCollection();
services.AddLogging();
services.AddApplication();
services.AddInfrastructure(
"Host=127.0.0.1;Port=5432;Database=tiku_module_boundary_test;Username=postgres;Password=unused");
using var provider = services.BuildServiceProvider(new ServiceProviderOptions { ValidateScopes = true });
using var scope = provider.CreateScope();
var concrete = scope.ServiceProvider.GetRequiredService<TikuDbContext>();
var capabilityTypes = new[]
{
typeof(IIdentityPersistence),
typeof(ITenancyPersistence),
typeof(ITenantAdministrationPersistence),
typeof(ICatalogPersistence),
typeof(IQuestionBankPersistence),
typeof(IContentAssetPersistence),
typeof(ILearningPersistence),
typeof(ICommercePersistence),
typeof(IPointsPersistence),
typeof(IGrowthPersistence),
typeof(IJobsOperationsPersistence),
typeof(IPlatformControlPlanePersistence),
typeof(IPlatformAdministrationPersistence),
typeof(IPlatformQuestionBankAdministrationPersistence),
typeof(IPlatformTenantCapabilitiesPersistence),
typeof(IPlatformBillingPersistence),
typeof(IOwnerActivationPersistence),
typeof(IBootstrapPersistence)
};
foreach (var capabilityType in capabilityTypes)
Assert.Same(concrete, scope.ServiceProvider.GetRequiredService(capabilityType));
}
}