VberAdminTestModule.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using Abp.AutoMapper;
  2. using Abp.Configuration.Startup;
  3. using Abp.Dependency;
  4. using Abp.Modules;
  5. using Abp.Net.Mail;
  6. using Abp.TestBase;
  7. using Castle.MicroKernel.Registration;
  8. using NSubstitute;
  9. using System;
  10. using VberAdmin.EntityFrameworkCore;
  11. using VberAdmin.Tests.DependencyInjection;
  12. using VberZero.Configuration;
  13. namespace VberAdmin.Tests;
  14. [DependsOn(
  15. typeof(VberAdminApplicationModule),
  16. typeof(VberAdminEfModule),
  17. typeof(AbpTestBaseModule)
  18. )]
  19. public class VberAdminTestModule : AbpModule
  20. {
  21. public VberAdminTestModule(VberAdminEfModule abpProjectNameEfModule)
  22. {
  23. abpProjectNameEfModule.SkipDbContextRegistration = true;
  24. }
  25. public override void PreInitialize()
  26. {
  27. Configuration.UnitOfWork.Timeout = TimeSpan.FromMinutes(30);
  28. Configuration.UnitOfWork.IsTransactional = false;
  29. // Disable static mapper usage since it breaks unit tests (see https://github.com/aspnetboilerplate/aspnetboilerplate/issues/2052)
  30. Configuration.Modules.AbpAutoMapper().UseStaticMapper = false;
  31. Configuration.BackgroundJobs.IsJobExecutionEnabled = false;
  32. // Use database for language management
  33. //Configuration.Modules.Zero().LanguageManagement.EnableDbLocalization();
  34. RegisterFakeService<VberAdminDbMigrator>();
  35. Configuration.ReplaceService<IEmailSender, NullEmailSender>(DependencyLifeStyle.Transient);
  36. }
  37. public override void Initialize()
  38. {
  39. ServiceCollectionRegistrar.Register(IocManager);
  40. }
  41. private void RegisterFakeService<TService>() where TService : class
  42. {
  43. IocManager.IocContainer.Register(
  44. Component.For<TService>()
  45. .UsingFactoryMethod(() => Substitute.For<TService>())
  46. .LifestyleSingleton()
  47. );
  48. }
  49. }