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 f3e60979bb..aa2ee0026a 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 @@ -40,7 +40,7 @@ public abstract class AbpAspNetCoreIntegratedTestBase : AbpTestBaseWit .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); - webBuilder.UseTestServer(); + webBuilder.UseAbpTestServer(); }) .UseAutofac() .ConfigureServices(ConfigureServices); diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpNoopHostLifetime.cs b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpNoopHostLifetime.cs new file mode 100644 index 0000000000..c20cf0db3a --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpNoopHostLifetime.cs @@ -0,0 +1,18 @@ +using System.Threading; +using System.Threading.Tasks; +using Microsoft.Extensions.Hosting; + +namespace Volo.Abp.AspNetCore.TestBase; + +public class AbpNoopHostLifetime : IHostLifetime +{ + public Task StopAsync(CancellationToken cancellationToken) + { + return Task.CompletedTask; + } + + public Task WaitForStartAsync(CancellationToken cancellationToken) + { + return Task.CompletedTask; + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/WebHostBuilderExtensions.cs b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/WebHostBuilderExtensions.cs new file mode 100644 index 0000000000..288f6ad569 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/WebHostBuilderExtensions.cs @@ -0,0 +1,19 @@ +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Hosting.Server; +using Microsoft.AspNetCore.TestHost; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; + +namespace Volo.Abp.AspNetCore.TestBase; + +public static class AbpWebHostBuilderExtensions +{ + public static IWebHostBuilder UseAbpTestServer(this IWebHostBuilder builder) + { + return builder.ConfigureServices(services => + { + services.AddScoped(); + services.AddScoped(); + }); + } +} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ModelBinding/ModelBindingController_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ModelBinding/ModelBindingController_Tests.cs index 2850ca82c7..b2270adc42 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ModelBinding/ModelBindingController_Tests.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ModelBinding/ModelBindingController_Tests.cs @@ -6,8 +6,10 @@ using System.Text.Json; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Options; using Shouldly; using Volo.Abp.Http; +using Volo.Abp.Json.SystemTextJson; using Volo.Abp.Timing; using Xunit; @@ -106,7 +108,7 @@ public abstract class ModelBindingController_Tests : AspNetCoreMvcTestBase } } -public class ModelBindingController_Utc_Tests : ModelBindingController_Tests +public abstract class ModelBindingController_Utc_Tests : ModelBindingController_Tests { protected override void ConfigureServices(HostBuilderContext context, IServiceCollection services) { @@ -117,7 +119,7 @@ public class ModelBindingController_Utc_Tests : ModelBindingController_Tests } } -public class ModelBindingController_Local_Tests : ModelBindingController_Tests +public abstract class ModelBindingController_Local_Tests : ModelBindingController_Tests { protected override void ConfigureServices(HostBuilderContext context, IServiceCollection services) { @@ -127,3 +129,46 @@ public class ModelBindingController_Local_Tests : ModelBindingController_Tests base.ConfigureServices(context, services); } } + +public class SystemTextJson_ModelBindingController_Utc_Tests : ModelBindingController_Utc_Tests +{ + +} + +public class SystemTextJson_ModelBindingController_Local_Tests : ModelBindingController_Local_Tests +{ + +} + +public class Newtonsoft_ModelBindingController_Utc_Tests : ModelBindingController_Utc_Tests +{ + protected override void ConfigureServices(HostBuilderContext context, IServiceCollection services) + { + services.Configure(options => + { + options.UnsupportedTypes.Add(); + options.UnsupportedTypes.Add(); + }); + + services.Configure>(x => + { + + }); + + base.ConfigureServices(context, services); + } +} + +public class Newtonsoft_ModelBindingController_Local_Tests : ModelBindingController_Local_Tests +{ + protected override void ConfigureServices(HostBuilderContext context, IServiceCollection services) + { + services.Configure(options => + { + options.UnsupportedTypes.Add(); + options.UnsupportedTypes.Add(); + }); + + base.ConfigureServices(context, services); + } +}