From e0544a12dbb26135443b0ea659832af670f39058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 25 Feb 2018 14:09:24 +0300 Subject: [PATCH] Refactored. --- .../AbpAspNetCoreIntegratedTestBase.cs | 1 - ...AuthorizationServiceCollectionExtensions.cs | 13 +++++++++++++ .../AlwaysAllowPermissionChecker.cs | 18 ++++++++++++++++++ .../Permissions/IPermissionStore.cs | 6 +++++- src/Volo.Abp.TestBase/AbpTestBaseModule.cs | 9 --------- src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj | 2 +- .../{ => Volo/Abp}/AbpIntegratedTest.cs | 6 +++--- .../Volo/Abp/AbpTestBaseModule.cs | 13 +++++++++++++ .../Abp}/AbpTestBaseWithServiceProvider.cs | 2 +- .../DependencyInjection_Tests.cs | 1 + .../AbpIdentityApplicationTestModule.cs | 5 ++++- 11 files changed, 59 insertions(+), 17 deletions(-) create mode 100644 src/Volo.Abp.Authorization/Microsoft/Extensions/DependencyInjection/AbpAuthorizationServiceCollectionExtensions.cs create mode 100644 src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AlwaysAllowPermissionChecker.cs delete mode 100644 src/Volo.Abp.TestBase/AbpTestBaseModule.cs rename src/Volo.Abp.TestBase/{ => Volo/Abp}/AbpIntegratedTest.cs (95%) create mode 100644 src/Volo.Abp.TestBase/Volo/Abp/AbpTestBaseModule.cs rename src/Volo.Abp.TestBase/{ => Volo/Abp}/AbpTestBaseWithServiceProvider.cs (94%) diff --git a/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs b/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs index 04995503b7..ae238f3694 100644 --- a/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs +++ b/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs @@ -6,7 +6,6 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Routing; using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.TestBase; namespace Volo.Abp.AspNetCore.TestBase { diff --git a/src/Volo.Abp.Authorization/Microsoft/Extensions/DependencyInjection/AbpAuthorizationServiceCollectionExtensions.cs b/src/Volo.Abp.Authorization/Microsoft/Extensions/DependencyInjection/AbpAuthorizationServiceCollectionExtensions.cs new file mode 100644 index 0000000000..a2d564d584 --- /dev/null +++ b/src/Volo.Abp.Authorization/Microsoft/Extensions/DependencyInjection/AbpAuthorizationServiceCollectionExtensions.cs @@ -0,0 +1,13 @@ +using Microsoft.Extensions.DependencyInjection.Extensions; +using Volo.Abp.Authorization.Permissions; + +namespace Microsoft.Extensions.DependencyInjection +{ + public static class AbpAuthorizationServiceCollectionExtensions + { + public static IServiceCollection AddAlwaysAllowPermissionChecker(this IServiceCollection services) + { + return services.Replace(ServiceDescriptor.Singleton()); + } + } +} diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AlwaysAllowPermissionChecker.cs b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AlwaysAllowPermissionChecker.cs new file mode 100644 index 0000000000..9773ab2f28 --- /dev/null +++ b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AlwaysAllowPermissionChecker.cs @@ -0,0 +1,18 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.Authorization.Permissions +{ + /// + /// Always allows for any permission. + /// + /// Use IServiceCollection.AddAlwaysAllowPermissionChecker() to replace + /// IPermissionChecker with this class. This is useful for tests. + /// + public class AlwaysAllowPermissionChecker : IPermissionChecker + { + public Task CheckAsync(string name) + { + return Task.FromResult(new PermissionGrantInfo(name, true, "AlwaysAllow")); + } + } +} diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionStore.cs b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionStore.cs index f7ed62b6d4..b2d077d3c7 100644 --- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionStore.cs +++ b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionStore.cs @@ -5,6 +5,10 @@ namespace Volo.Abp.Authorization.Permissions { public interface IPermissionStore { - Task IsGrantedAsync([NotNull] string name, [CanBeNull] string providerName, [CanBeNull] string providerKey); + Task IsGrantedAsync( + [NotNull] string name, + [CanBeNull] string providerName, + [CanBeNull] string providerKey + ); } } diff --git a/src/Volo.Abp.TestBase/AbpTestBaseModule.cs b/src/Volo.Abp.TestBase/AbpTestBaseModule.cs deleted file mode 100644 index 859ccb3e72..0000000000 --- a/src/Volo.Abp.TestBase/AbpTestBaseModule.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Volo.Abp.Modularity; - -namespace Volo.Abp.TestBase -{ - public class AbpTestBaseModule : AbpModule - { - - } -} diff --git a/src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj b/src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj index 4c814ffdd0..96fb5c54e7 100644 --- a/src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj +++ b/src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj @@ -10,7 +10,7 @@ false false false - Volo.Abp.TestBase + diff --git a/src/Volo.Abp.TestBase/AbpIntegratedTest.cs b/src/Volo.Abp.TestBase/Volo/Abp/AbpIntegratedTest.cs similarity index 95% rename from src/Volo.Abp.TestBase/AbpIntegratedTest.cs rename to src/Volo.Abp.TestBase/Volo/Abp/AbpIntegratedTest.cs index abbb6aa49e..ac969fd06b 100644 --- a/src/Volo.Abp.TestBase/AbpIntegratedTest.cs +++ b/src/Volo.Abp.TestBase/Volo/Abp/AbpIntegratedTest.cs @@ -2,7 +2,7 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Modularity; -namespace Volo.Abp.TestBase +namespace Volo.Abp { public abstract class AbpIntegratedTest : AbpTestBaseWithServiceProvider, IDisposable where TStartupModule : IAbpModule @@ -15,7 +15,7 @@ namespace Volo.Abp.TestBase protected IServiceScope TestServiceScope { get; } - public AbpIntegratedTest() + protected AbpIntegratedTest() { var services = CreateServiceCollection(); @@ -57,7 +57,7 @@ namespace Volo.Abp.TestBase return services.BuildServiceProviderFromFactory(); } - public void Dispose() + public virtual void Dispose() { Application.Shutdown(); TestServiceScope.Dispose(); diff --git a/src/Volo.Abp.TestBase/Volo/Abp/AbpTestBaseModule.cs b/src/Volo.Abp.TestBase/Volo/Abp/AbpTestBaseModule.cs new file mode 100644 index 0000000000..5ff26f7a12 --- /dev/null +++ b/src/Volo.Abp.TestBase/Volo/Abp/AbpTestBaseModule.cs @@ -0,0 +1,13 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Modularity; + +namespace Volo.Abp +{ + public class AbpTestBaseModule : AbpModule + { + public override void ConfigureServices(IServiceCollection services) + { + + } + } +} diff --git a/src/Volo.Abp.TestBase/AbpTestBaseWithServiceProvider.cs b/src/Volo.Abp.TestBase/Volo/Abp/AbpTestBaseWithServiceProvider.cs similarity index 94% rename from src/Volo.Abp.TestBase/AbpTestBaseWithServiceProvider.cs rename to src/Volo.Abp.TestBase/Volo/Abp/AbpTestBaseWithServiceProvider.cs index 8a49f89dcc..c99e616387 100644 --- a/src/Volo.Abp.TestBase/AbpTestBaseWithServiceProvider.cs +++ b/src/Volo.Abp.TestBase/Volo/Abp/AbpTestBaseWithServiceProvider.cs @@ -1,7 +1,7 @@ using System; using Microsoft.Extensions.DependencyInjection; -namespace Volo.Abp.TestBase +namespace Volo.Abp { public abstract class AbpTestBaseWithServiceProvider { diff --git a/test/Volo.Abp.Core.Tests/Microsoft/Extensions/DependencyInjection/DependencyInjection_Tests.cs b/test/Volo.Abp.Core.Tests/Microsoft/Extensions/DependencyInjection/DependencyInjection_Tests.cs index fe49b34637..b2cb23c06b 100644 --- a/test/Volo.Abp.Core.Tests/Microsoft/Extensions/DependencyInjection/DependencyInjection_Tests.cs +++ b/test/Volo.Abp.Core.Tests/Microsoft/Extensions/DependencyInjection/DependencyInjection_Tests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using Shouldly; +using Volo.Abp; using Volo.Abp.DependencyInjection; using Volo.Abp.Modularity; using Volo.Abp.TestBase; diff --git a/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/AbpIdentityApplicationTestModule.cs b/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/AbpIdentityApplicationTestModule.cs index 5977aebf42..54763c0169 100644 --- a/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/AbpIdentityApplicationTestModule.cs +++ b/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/AbpIdentityApplicationTestModule.cs @@ -9,11 +9,14 @@ namespace Volo.Abp.Identity typeof(AbpIdentityApplicationModule), typeof(AbpIdentityEntityFrameworkCoreModule), typeof(AbpAutofacModule), - typeof(AbpIdentityDomainTestModule))] + typeof(AbpIdentityDomainTestModule), + typeof(AbpTestBaseModule) + )] public class AbpIdentityApplicationTestModule : AbpModule { public override void ConfigureServices(IServiceCollection services) { + services.AddAlwaysAllowPermissionChecker(); services.AddAssemblyOf(); } }