Files
base_abp/test/ASPBaseOIDC.Tests/ASPBaseOIDCTestModule.cs
2025-10-01 21:16:23 -06:00

64 lines
1.9 KiB
C#

using Abp.AutoMapper;
using Abp.Configuration.Startup;
using Abp.Dependency;
using Abp.Modules;
using Abp.Net.Mail;
using Abp.TestBase;
using Abp.Zero.Configuration;
using Abp.Zero.EntityFrameworkCore;
using ASPBaseOIDC.EntityFrameworkCore;
using ASPBaseOIDC.Tests.DependencyInjection;
using Castle.MicroKernel.Registration;
using NSubstitute;
using System;
namespace ASPBaseOIDC.Tests;
[DependsOn(
typeof(ASPBaseOIDCApplicationModule),
typeof(ASPBaseOIDCEntityFrameworkModule),
typeof(AbpTestBaseModule)
)]
public class ASPBaseOIDCTestModule : AbpModule
{
public ASPBaseOIDCTestModule(ASPBaseOIDCEntityFrameworkModule abpProjectNameEntityFrameworkModule)
{
abpProjectNameEntityFrameworkModule.SkipDbContextRegistration = true;
abpProjectNameEntityFrameworkModule.SkipDbSeed = true;
}
public override void PreInitialize()
{
Configuration.UnitOfWork.Timeout = TimeSpan.FromMinutes(30);
Configuration.UnitOfWork.IsTransactional = false;
// Disable static mapper usage since it breaks unit tests (see https://github.com/aspnetboilerplate/aspnetboilerplate/issues/2052)
Configuration.Modules.AbpAutoMapper().UseStaticMapper = false;
Configuration.BackgroundJobs.IsJobExecutionEnabled = false;
// Use database for language management
Configuration.Modules.Zero().LanguageManagement.EnableDbLocalization();
RegisterFakeService<AbpZeroDbMigrator<ASPBaseOIDCDbContext>>();
Configuration.ReplaceService<IEmailSender, NullEmailSender>(DependencyLifeStyle.Transient);
}
public override void Initialize()
{
ServiceCollectionRegistrar.Register(IocManager);
}
private void RegisterFakeService<TService>() where TService : class
{
IocManager.IocContainer.Register(
Component.For<TService>()
.UsingFactoryMethod(() => Substitute.For<TService>())
.LifestyleSingleton()
);
}
}