From 6eafa2a9e821f6ec8fbffc3d79b8ac5dd5f11dce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 5 Jul 2023 12:04:29 +0300 Subject: [PATCH] Suppport module class at AbpAspNetCoreIntegratedTestBase --- .../AbpAspNetCoreIntegratedTestBase.cs | 18 +++++++++++++++--- .../Abp/AspNetCore/TestBase/TestStartup.cs | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/TestStartup.cs diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs index eb9504570c..c362d5074c 100644 --- a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs @@ -7,11 +7,15 @@ using Microsoft.AspNetCore.Routing; using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Volo.Abp.Modularity; namespace Volo.Abp.AspNetCore.TestBase; -public abstract class AbpAspNetCoreIntegratedTestBase : AbpTestBaseWithServiceProvider, IDisposable - where TStartup : class +/// +/// Can be a module type or old-style ASP.NET Core Startup class. +/// +public abstract class AbpAspNetCoreIntegratedTestBase : AbpTestBaseWithServiceProvider, IDisposable + where TStartupModule : class { protected TestServer Server { get; } @@ -39,7 +43,15 @@ public abstract class AbpAspNetCoreIntegratedTestBase : AbpTestBaseWit return Host.CreateDefaultBuilder() .ConfigureWebHostDefaults(webBuilder => { - webBuilder.UseStartup(); + if (typeof(TStartupModule).IsAssignableTo()) + { + webBuilder.UseStartup>(); + } + else + { + webBuilder.UseStartup(); + } + webBuilder.UseAbpTestServer(); }) .UseAutofac() diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/TestStartup.cs b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/TestStartup.cs new file mode 100644 index 0000000000..be641912c7 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/TestStartup.cs @@ -0,0 +1,18 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Threading; + +namespace Volo.Abp.AspNetCore.TestBase; + +internal class TestStartup +{ + public void ConfigureServices(IServiceCollection services) + { + AsyncHelper.RunSync(() => services.AddApplicationAsync(typeof(TStartupModule))); + } + + public void Configure(IApplicationBuilder app) + { + AsyncHelper.RunSync(app.InitializeApplicationAsync); + } +} \ No newline at end of file