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 1/2] 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 From a19f8e2291387461db624d764bba3555724c0fd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 5 Jul 2023 12:11:57 +0300 Subject: [PATCH 2/2] Remove MyProjectNameWebTestStartup from startup template --- .../MyProjectNameWebTestBase.cs | 2 +- .../MyProjectNameWebTestStartup.cs | 20 ------------------- 2 files changed, 1 insertion(+), 21 deletions(-) delete mode 100644 templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyProjectNameWebTestStartup.cs diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyProjectNameWebTestBase.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyProjectNameWebTestBase.cs index 9736848b6b..d038106f5a 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyProjectNameWebTestBase.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyProjectNameWebTestBase.cs @@ -9,7 +9,7 @@ using Volo.Abp.AspNetCore.TestBase; namespace MyCompanyName.MyProjectName; -public abstract class MyProjectNameWebTestBase : AbpAspNetCoreIntegratedTestBase +public abstract class MyProjectNameWebTestBase : AbpAspNetCoreIntegratedTestBase { protected override IHostBuilder CreateHostBuilder() { diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyProjectNameWebTestStartup.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyProjectNameWebTestStartup.cs deleted file mode 100644 index 1851f73c9f..0000000000 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyProjectNameWebTestStartup.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using Volo.Abp; - -namespace MyCompanyName.MyProjectName; - -public class MyProjectNameWebTestStartup -{ - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) - { - app.InitializeApplication(); - } -}