Browse Source

Suppport module class at AbpAspNetCoreIntegratedTestBase

pull/17039/head
Halil İbrahim Kalkan 3 years ago
parent
commit
6eafa2a9e8
  1. 18
      framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs
  2. 18
      framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/TestStartup.cs

18
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.AspNetCore.TestHost;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using Volo.Abp.Modularity;
namespace Volo.Abp.AspNetCore.TestBase; namespace Volo.Abp.AspNetCore.TestBase;
public abstract class AbpAspNetCoreIntegratedTestBase<TStartup> : AbpTestBaseWithServiceProvider, IDisposable /// <typeparam name="TStartupModule">
where TStartup : class /// Can be a module type or old-style ASP.NET Core Startup class.
/// </typeparam>
public abstract class AbpAspNetCoreIntegratedTestBase<TStartupModule> : AbpTestBaseWithServiceProvider, IDisposable
where TStartupModule : class
{ {
protected TestServer Server { get; } protected TestServer Server { get; }
@ -39,7 +43,15 @@ public abstract class AbpAspNetCoreIntegratedTestBase<TStartup> : AbpTestBaseWit
return Host.CreateDefaultBuilder() return Host.CreateDefaultBuilder()
.ConfigureWebHostDefaults(webBuilder => .ConfigureWebHostDefaults(webBuilder =>
{ {
webBuilder.UseStartup<TStartup>(); if (typeof(TStartupModule).IsAssignableTo<IAbpModule>())
{
webBuilder.UseStartup<TestStartup<TStartupModule>>();
}
else
{
webBuilder.UseStartup<TStartupModule>();
}
webBuilder.UseAbpTestServer(); webBuilder.UseAbpTestServer();
}) })
.UseAutofac() .UseAutofac()

18
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<TStartupModule>
{
public void ConfigureServices(IServiceCollection services)
{
AsyncHelper.RunSync(() => services.AddApplicationAsync(typeof(TStartupModule)));
}
public void Configure(IApplicationBuilder app)
{
AsyncHelper.RunSync(app.InitializeApplicationAsync);
}
}
Loading…
Cancel
Save