From f2a0f68ecbc11c3c3dec782cf8baa457b86daf19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 13 Sep 2017 11:08:05 +0300 Subject: [PATCH] Created Volo.Abp.Http module and unit test project. --- Volo.Abp.sln | 18 ++++++++++-- src/Volo.Abp.Http/Volo.Abp.Http.csproj | 22 +++++++++++++++ .../Volo/Abp/Http/AbpHttpModule.cs | 13 +++++++++ ...odule.cs => AbpAspNetCoreMvcTestModule.cs} | 4 +-- .../Volo/Abp/AspNetCore/App/Startup.cs | 2 +- .../Volo.Abp.Castle.Core.Tests.csproj | 6 ---- .../Volo.Abp.Http.Tests.csproj | 24 ++++++++++++++++ .../Volo/Abp/Http/AbpHttpTestBase.cs | 9 ++++++ .../Volo/Abp/Http/AbpHttpTestModule.cs | 15 ++++++++++ .../PersonAppServiceClientProxy_Tests.cs | 28 +++++++++++++++++++ .../Volo/Abp/Http/Startup.cs | 27 ++++++++++++++++++ 11 files changed, 157 insertions(+), 11 deletions(-) create mode 100644 src/Volo.Abp.Http/Volo.Abp.Http.csproj create mode 100644 src/Volo.Abp.Http/Volo/Abp/Http/AbpHttpModule.cs rename test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/{AppModule.cs => AbpAspNetCoreMvcTestModule.cs} (90%) create mode 100644 test/Volo.Abp.Http.Tests/Volo.Abp.Http.Tests.csproj create mode 100644 test/Volo.Abp.Http.Tests/Volo/Abp/Http/AbpHttpTestBase.cs create mode 100644 test/Volo.Abp.Http.Tests/Volo/Abp/Http/AbpHttpTestModule.cs create mode 100644 test/Volo.Abp.Http.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs create mode 100644 test/Volo.Abp.Http.Tests/Volo/Abp/Http/Startup.cs 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(); + } + } +}