From ed53a95e123863645e40451f27fd3d4238a40b30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 5 May 2017 23:34:15 +0300 Subject: [PATCH] Made sync test succeed for interception. --- .../AbpDesk/Tickets/ITicketAppService.cs | 2 + .../AbpDesk/Tickets/TicketAppService.cs | 18 +++++++++ src/Volo.Abp.TestBase/AbpIntegratedTest.cs | 13 +++++-- .../AbpDesk/Tickets/TicketAppService_Tests.cs | 12 ++++++ .../Volo/Abp/Autofac/AutofacTestModule.cs | 2 +- .../Interception/Autofac_Interception_Test.cs | 39 ++++++++++++++++++- .../Abp/Castle/AbpCastleCoreTestModule.cs | 1 - .../CastleInterceptionTestBase.cs | 1 + .../SimpleInterceptionTargetClass.cs | 11 ++++++ 9 files changed, 91 insertions(+), 8 deletions(-) diff --git a/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk/Tickets/ITicketAppService.cs b/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk/Tickets/ITicketAppService.cs index 6aca279236..81077e270e 100644 --- a/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk/Tickets/ITicketAppService.cs +++ b/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk/Tickets/ITicketAppService.cs @@ -8,5 +8,7 @@ namespace AbpDesk.Tickets public interface ITicketAppService : IApplicationService { Task> GetAll(GetAllTicketsInput input); + + ListResultDto GetAll2(GetAllTicketsInput input); } } diff --git a/src/AbpDesk/AbpDesk.Application/AbpDesk/Tickets/TicketAppService.cs b/src/AbpDesk/AbpDesk.Application/AbpDesk/Tickets/TicketAppService.cs index c68ddcc8a8..29af97062b 100644 --- a/src/AbpDesk/AbpDesk.Application/AbpDesk/Tickets/TicketAppService.cs +++ b/src/AbpDesk/AbpDesk.Application/AbpDesk/Tickets/TicketAppService.cs @@ -39,5 +39,23 @@ namespace AbpDesk.Tickets return new ListResultDto(tickets); } + + public ListResultDto GetAll2(GetAllTicketsInput input) + { + var tickets = _ticketRepository + .WhereIf( + !input.Filter.IsNullOrWhiteSpace(), + t => t.Title.Contains(input.Filter) || t.Body.Contains(input.Filter) + ) + .Select(t => new TicketDto + { + Id = t.Id, + Title = t.Title, + Body = t.Body + }) + .ToList(); + + return new ListResultDto(tickets); + } } } diff --git a/src/Volo.Abp.TestBase/AbpIntegratedTest.cs b/src/Volo.Abp.TestBase/AbpIntegratedTest.cs index 3721ae1ba7..6d78afccd9 100644 --- a/src/Volo.Abp.TestBase/AbpIntegratedTest.cs +++ b/src/Volo.Abp.TestBase/AbpIntegratedTest.cs @@ -19,11 +19,12 @@ namespace Volo.Abp.TestBase BeforeAddApplication(services); - Application = services.AddApplication(); + Application = services.AddApplication(SetAbpApplicationCreationOptions); AfterAddApplication(services); - var serviceProvider = CreateServiceProvider(services); + MainServiceScope = CreateServiceProvider(services).CreateScope(); + var serviceProvider = MainServiceScope.ServiceProvider; Application.Initialize(serviceProvider); } @@ -38,6 +39,11 @@ namespace Volo.Abp.TestBase } + protected virtual void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) + { + + } + protected virtual void AfterAddApplication(IServiceCollection services) { @@ -45,8 +51,7 @@ namespace Volo.Abp.TestBase protected virtual IServiceProvider CreateServiceProvider(IServiceCollection services) { - MainServiceScope = services.BuildServiceProvider().CreateScope(); - return MainServiceScope.ServiceProvider; + return services.BuildServiceProvider(); } public void Dispose() diff --git a/test/AbpDesk/AbpDesk.Application.Tests/AbpDesk/Tickets/TicketAppService_Tests.cs b/test/AbpDesk/AbpDesk.Application.Tests/AbpDesk/Tickets/TicketAppService_Tests.cs index ca56ac9b6a..06de028db7 100644 --- a/test/AbpDesk/AbpDesk.Application.Tests/AbpDesk/Tickets/TicketAppService_Tests.cs +++ b/test/AbpDesk/AbpDesk.Application.Tests/AbpDesk/Tickets/TicketAppService_Tests.cs @@ -38,5 +38,17 @@ namespace AbpDesk.Tickets result.Items.Count.ShouldBe(0); } + + [Fact] + public void GetAll2_Test() + { + //Act + + var result = _ticketAppService.GetAll2(new GetAllTicketsInput()); + + //Assert + + result.Items.Count.ShouldBe(1); + } } } diff --git a/test/Volo.Abp.Autofac.Tests/Volo/Abp/Autofac/AutofacTestModule.cs b/test/Volo.Abp.Autofac.Tests/Volo/Abp/Autofac/AutofacTestModule.cs index 9ae98678d4..12d06b5c38 100644 --- a/test/Volo.Abp.Autofac.Tests/Volo/Abp/Autofac/AutofacTestModule.cs +++ b/test/Volo.Abp.Autofac.Tests/Volo/Abp/Autofac/AutofacTestModule.cs @@ -10,7 +10,7 @@ namespace Volo.Abp.Autofac { public override void ConfigureServices(IServiceCollection services) { - services.AddAssemblyOf(); + services.AddAssemblyOf(); } } } \ No newline at end of file diff --git a/test/Volo.Abp.Autofac.Tests/Volo/Abp/Autofac/Interception/Autofac_Interception_Test.cs b/test/Volo.Abp.Autofac.Tests/Volo/Abp/Autofac/Interception/Autofac_Interception_Test.cs index cc2dcc1c4d..d24aedf04b 100644 --- a/test/Volo.Abp.Autofac.Tests/Volo/Abp/Autofac/Interception/Autofac_Interception_Test.cs +++ b/test/Volo.Abp.Autofac.Tests/Volo/Abp/Autofac/Interception/Autofac_Interception_Test.cs @@ -1,9 +1,44 @@ -using Volo.Abp.Castle.DynamicProxy; +using System; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Shouldly; +using Volo.Abp.Castle.DynamicProxy; +using Xunit; namespace Volo.Abp.Autofac.Interception { public class Autofac_Interception_Test : CastleInterceptionTestBase { - + protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) + { + options.UseAutofac(); + } + + protected override IServiceProvider CreateServiceProvider(IServiceCollection services) + { + return services.BuildAutofacServiceProvider(); + } + + [Fact] + public async Task Should_Intercept_Async_Methods() + { + //Arrange + + var target = ServiceProvider.GetService(); + + //Act + + var result = await target.GetValueAsync(); + + //Assert + + result.ShouldBe(42); + target.Logs.Count.ShouldBe(5); + target.Logs[0].ShouldBe("BeforeInvocation"); + target.Logs[1].ShouldBe("EnterGetValueAsync"); + target.Logs[2].ShouldBe("MiddleGetValueAsync"); + target.Logs[3].ShouldBe("ExitGetValueAsync"); + target.Logs[4].ShouldBe("AfterInvocation"); + } } } diff --git a/test/Volo.Abp.Castle.Core.Tests/Volo/Abp/Castle/AbpCastleCoreTestModule.cs b/test/Volo.Abp.Castle.Core.Tests/Volo/Abp/Castle/AbpCastleCoreTestModule.cs index 09b984e26d..6bdfa007da 100644 --- a/test/Volo.Abp.Castle.Core.Tests/Volo/Abp/Castle/AbpCastleCoreTestModule.cs +++ b/test/Volo.Abp.Castle.Core.Tests/Volo/Abp/Castle/AbpCastleCoreTestModule.cs @@ -1,7 +1,6 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Castle.DynamicProxy; using Volo.Abp.Modularity; -using Volo.Abp.Uow; namespace Volo.Abp.Castle { diff --git a/test/Volo.Abp.Castle.Core.Tests/Volo/Abp/Castle/DynamicProxy/CastleInterceptionTestBase.cs b/test/Volo.Abp.Castle.Core.Tests/Volo/Abp/Castle/DynamicProxy/CastleInterceptionTestBase.cs index 67a997fed2..f8ad33481f 100644 --- a/test/Volo.Abp.Castle.Core.Tests/Volo/Abp/Castle/DynamicProxy/CastleInterceptionTestBase.cs +++ b/test/Volo.Abp.Castle.Core.Tests/Volo/Abp/Castle/DynamicProxy/CastleInterceptionTestBase.cs @@ -1,3 +1,4 @@ +using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Shouldly; using Volo.Abp.Modularity; diff --git a/test/Volo.Abp.Castle.Core.Tests/Volo/Abp/Castle/DynamicProxy/SimpleInterceptionTargetClass.cs b/test/Volo.Abp.Castle.Core.Tests/Volo/Abp/Castle/DynamicProxy/SimpleInterceptionTargetClass.cs index b9acd96d95..9acf2b1832 100644 --- a/test/Volo.Abp.Castle.Core.Tests/Volo/Abp/Castle/DynamicProxy/SimpleInterceptionTargetClass.cs +++ b/test/Volo.Abp.Castle.Core.Tests/Volo/Abp/Castle/DynamicProxy/SimpleInterceptionTargetClass.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Threading.Tasks; using Volo.Abp.TestBase.Logging; using Volo.DependencyInjection; @@ -13,5 +14,15 @@ namespace Volo.Abp.Castle.DynamicProxy Logs.Add("ExecutingGetValue"); return 42; } + + public virtual async Task GetValueAsync() + { + Logs.Add("EnterGetValueAsync"); + await Task.Delay(1); + Logs.Add("MiddleGetValueAsync"); + await Task.Delay(1); + Logs.Add("ExitGetValueAsync"); + return 42; + } } } \ No newline at end of file