diff --git a/Volo.Abp.sln b/Volo.Abp.sln
index 6e24dbafe1..d6e55fe8f7 100644
--- a/Volo.Abp.sln
+++ b/Volo.Abp.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26730.10
+VisualStudioVersion = 15.0.26730.12
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}"
EndProject
@@ -126,7 +126,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.MemoryDb", "src\Vo
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.MemoryDb.Tests", "test\Volo.Abp.MemoryDb.Tests\Volo.Abp.MemoryDb.Tests.csproj", "{D0279C94-E9A3-4A1B-968B-D3BBF3E06FD8}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TestApp.Tests", "test\Volo.Abp.TestApp.Tests\Volo.Abp.TestApp.Tests.csproj", "{4C2F7B03-C598-4432-A43A-B065D9D0712F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.TestApp.Tests", "test\Volo.Abp.TestApp.Tests\Volo.Abp.TestApp.Tests.csproj", "{4C2F7B03-C598-4432-A43A-B065D9D0712F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Http", "src\Volo.Abp.Http\Volo.Abp.Http.csproj", "{01A70034-D353-4BF9-821D-F2B6F7641532}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Http.Tests", "test\Volo.Abp.Http.Tests\Volo.Abp.Http.Tests.csproj", "{5B86E837-0C89-4058-A84B-0B51F2F573D4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -318,6 +322,14 @@ Global
{4C2F7B03-C598-4432-A43A-B065D9D0712F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4C2F7B03-C598-4432-A43A-B065D9D0712F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4C2F7B03-C598-4432-A43A-B065D9D0712F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {01A70034-D353-4BF9-821D-F2B6F7641532}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {01A70034-D353-4BF9-821D-F2B6F7641532}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {01A70034-D353-4BF9-821D-F2B6F7641532}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {01A70034-D353-4BF9-821D-F2B6F7641532}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5B86E837-0C89-4058-A84B-0B51F2F573D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5B86E837-0C89-4058-A84B-0B51F2F573D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5B86E837-0C89-4058-A84B-0B51F2F573D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5B86E837-0C89-4058-A84B-0B51F2F573D4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -378,6 +390,8 @@ Global
{CF564447-8E0B-4A07-B0D2-396E00A8E437} = {4C753F64-0C93-4D65-96C2-A40893AFC1E8}
{D0279C94-E9A3-4A1B-968B-D3BBF3E06FD8} = {37087D1B-3693-4E96-983D-A69F210BDE53}
{4C2F7B03-C598-4432-A43A-B065D9D0712F} = {37087D1B-3693-4E96-983D-A69F210BDE53}
+ {01A70034-D353-4BF9-821D-F2B6F7641532} = {4C753F64-0C93-4D65-96C2-A40893AFC1E8}
+ {5B86E837-0C89-4058-A84B-0B51F2F573D4} = {37087D1B-3693-4E96-983D-A69F210BDE53}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5}
diff --git a/src/Volo.Abp.Http/Volo.Abp.Http.csproj b/src/Volo.Abp.Http/Volo.Abp.Http.csproj
new file mode 100644
index 0000000000..475e1a8af2
--- /dev/null
+++ b/src/Volo.Abp.Http/Volo.Abp.Http.csproj
@@ -0,0 +1,22 @@
+
+
+
+ netstandard2.0
+ Volo.Abp.Http
+ Volo.Abp.Http
+ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Volo.Abp.Http/Volo/Abp/Http/AbpHttpModule.cs b/src/Volo.Abp.Http/Volo/Abp/Http/AbpHttpModule.cs
new file mode 100644
index 0000000000..2e3d11e01b
--- /dev/null
+++ b/src/Volo.Abp.Http/Volo/Abp/Http/AbpHttpModule.cs
@@ -0,0 +1,13 @@
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.Modularity;
+
+namespace Volo.Abp.Http
+{
+ public class AbpHttpModule : AbpModule
+ {
+ public override void ConfigureServices(IServiceCollection services)
+ {
+ services.AddAssemblyOf();
+ }
+ }
+}
diff --git a/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/AppModule.cs b/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/AbpAspNetCoreMvcTestModule.cs
similarity index 90%
rename from test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/AppModule.cs
rename to test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/AbpAspNetCoreMvcTestModule.cs
index 9d69110408..bec293205e 100644
--- a/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/AppModule.cs
+++ b/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/AbpAspNetCoreMvcTestModule.cs
@@ -16,7 +16,7 @@ namespace Volo.Abp.AspNetCore.App
typeof(AbpAspNetCoreMvcModule),
typeof(AbpAutofacModule)
)]
- public class AppModule : AbpModule
+ public class AbpAspNetCoreMvcTestModule : AbpModule
{
public override void ConfigureServices(IServiceCollection services)
{
@@ -28,7 +28,7 @@ namespace Volo.Abp.AspNetCore.App
options.AppServiceControllers.UrlActionNameNormalizers.Add(new PhoneBookUrlActionNameNormalizer());
});
- services.AddAssemblyOf();
+ services.AddAssemblyOf();
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
diff --git a/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/Startup.cs b/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/Startup.cs
index 8e09c6ba0f..59bff4b91c 100644
--- a/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/Startup.cs
+++ b/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/Startup.cs
@@ -10,7 +10,7 @@ namespace Volo.Abp.AspNetCore.App
{
public IServiceProvider ConfigureServices(IServiceCollection services)
{
- services.AddApplication(options =>
+ services.AddApplication(options =>
{
options.UseAutofac();
});
diff --git a/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj b/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj
index d438e6e0a8..6aa889c65a 100644
--- a/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj
+++ b/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj
@@ -11,12 +11,6 @@
-
-
-
-
-
-
diff --git a/test/Volo.Abp.Http.Tests/Volo.Abp.Http.Tests.csproj b/test/Volo.Abp.Http.Tests/Volo.Abp.Http.Tests.csproj
new file mode 100644
index 0000000000..fd4ae111e2
--- /dev/null
+++ b/test/Volo.Abp.Http.Tests/Volo.Abp.Http.Tests.csproj
@@ -0,0 +1,24 @@
+
+
+
+ netcoreapp2.0
+ Volo.Abp.Http.Tests
+ Volo.Abp.Http.Tests
+ true
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/Volo.Abp.Http.Tests/Volo/Abp/Http/AbpHttpTestBase.cs b/test/Volo.Abp.Http.Tests/Volo/Abp/Http/AbpHttpTestBase.cs
new file mode 100644
index 0000000000..35db320555
--- /dev/null
+++ b/test/Volo.Abp.Http.Tests/Volo/Abp/Http/AbpHttpTestBase.cs
@@ -0,0 +1,9 @@
+using Volo.Abp.AspNetCore.App;
+
+namespace Volo.Abp.Http
+{
+ public abstract class AbpHttpTestBase : AbpAspNetCoreTestBase
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/test/Volo.Abp.Http.Tests/Volo/Abp/Http/AbpHttpTestModule.cs b/test/Volo.Abp.Http.Tests/Volo/Abp/Http/AbpHttpTestModule.cs
new file mode 100644
index 0000000000..ae2cb91658
--- /dev/null
+++ b/test/Volo.Abp.Http.Tests/Volo/Abp/Http/AbpHttpTestModule.cs
@@ -0,0 +1,15 @@
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.AspNetCore.App;
+using Volo.Abp.Modularity;
+
+namespace Volo.Abp.Http
+{
+ [DependsOn(typeof(AbpAspNetCoreMvcTestModule), typeof(AbpHttpModule))]
+ public class AbpHttpTestModule : AbpModule
+ {
+ public override void ConfigureServices(IServiceCollection services)
+ {
+ services.AddAssemblyOf();
+ }
+ }
+}
diff --git a/test/Volo.Abp.Http.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs b/test/Volo.Abp.Http.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs
new file mode 100644
index 0000000000..abd73531c2
--- /dev/null
+++ b/test/Volo.Abp.Http.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs
@@ -0,0 +1,28 @@
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Shouldly;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.TestApp.Application;
+using Xunit;
+
+namespace Volo.Abp.Http.DynamicProxying
+{
+ public class PersonAppServiceClientProxy_Tests : AbpHttpTestBase
+ {
+ private readonly IPeopleAppService _peopleAppService;
+
+ public PersonAppServiceClientProxy_Tests()
+ {
+ //TODO: Should actually test the proxy!
+ _peopleAppService = ServiceProvider.GetRequiredService();
+ }
+
+ [Fact]
+ public async Task Test_GetList()
+ {
+ var people = await _peopleAppService.GetList(new PagedAndSortedResultRequestDto());
+ people.TotalCount.ShouldBeGreaterThan(0);
+ people.Items.Count.ShouldBe(people.TotalCount);
+ }
+ }
+}
diff --git a/test/Volo.Abp.Http.Tests/Volo/Abp/Http/Startup.cs b/test/Volo.Abp.Http.Tests/Volo/Abp/Http/Startup.cs
new file mode 100644
index 0000000000..961454d22a
--- /dev/null
+++ b/test/Volo.Abp.Http.Tests/Volo/Abp/Http/Startup.cs
@@ -0,0 +1,27 @@
+using System;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+
+namespace Volo.Abp.Http
+{
+ public class Startup
+ {
+ public IServiceProvider ConfigureServices(IServiceCollection services)
+ {
+ services.AddApplication(options =>
+ {
+ options.UseAutofac();
+ });
+
+ //TODO: This is needed because ASP.NET Core does not use IServiceProviderFactory!
+ return services.BuildServiceProviderFromFactory();
+ }
+
+ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
+ {
+ app.InitializeApplication();
+ }
+ }
+}