From 0468792fcf28a124aa193d5b341ea881eba9c077 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 4 Oct 2018 17:56:20 +0300 Subject: [PATCH] IDS4 mongodb tests #496 --- .../Volo.Abp.IdentityServer.sln | 14 ++++ ...lo.Abp.IdentityServer.MongoDB.Tests.csproj | 24 +++++++ .../MongoDB/AbpIdentityServerBsonClassMap.cs | 10 +-- ...pIdentityServerMongoDbContextExtensions.cs | 8 +-- .../MongoDB/AbpIdentityServerMongoDbModule.cs | 4 +- ...erMongoModelBuilderConfigurationOptions.cs | 5 +- .../MongoIdentityResourceRepository.cs | 3 +- .../ApiResourceRepository_Tests.cs | 7 ++ ...lo.Abp.IdentityServer.MongoDB.Tests.csproj | 24 +++++++ .../AbpIdentityServerMongoDbTestModule.cs | 33 +++++++++ .../ApiResourceRepository_Tests.cs | 7 ++ .../IdentityServer/ClientRepository_Tests.cs | 11 +++ .../IdentityResourceRepository_Tests.cs | 10 +++ .../Volo.Abp.IdentityServer.TestBase.csproj | 29 ++++++++ .../AbpIdentityServerTestBase.cs | 16 +++++ .../AbpIdentityServerTestBaseModule.cs | 38 +++++++++++ .../AbpIdentityServerTestDataBuilder.cs | 68 +++++++++++++++++++ .../ApiResourceRepository_Tests.cs | 32 +++++++++ .../IdentityServer/ClientRepository_Tests.cs | 29 ++++++++ .../IdentityResourceRepository_Tests.cs | 28 ++++++++ 20 files changed, 383 insertions(+), 17 deletions(-) create mode 100644 modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ClientRepository_Tests.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo.Abp.IdentityServer.TestBase.csproj create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBase.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/ClientRepository_Tests.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs diff --git a/modules/identityserver/Volo.Abp.IdentityServer.sln b/modules/identityserver/Volo.Abp.IdentityServer.sln index 97d6b0b97a..03e2b5a9af 100644 --- a/modules/identityserver/Volo.Abp.IdentityServer.sln +++ b/modules/identityserver/Volo.Abp.IdentityServer.sln @@ -17,6 +17,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.IdentityServer.Ent EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.IdentityServer.MongoDB", "src\Volo.Abp.IdentityServer.MongoDB\Volo.Abp.IdentityServer.MongoDB.csproj", "{FC6CC65A-27B9-43D4-8F20-D941B4987B2C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.IdentityServer.TestBase", "test\Volo.Abp.IdentityServer.TestBase\Volo.Abp.IdentityServer.TestBase.csproj", "{9CD1BFDB-DD76-4194-ACAD-A64541AC2069}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.IdentityServer.MongoDB.Tests", "test\Volo.Abp.IdentityServer.MongoDB.Tests\Volo.Abp.IdentityServer.MongoDB.Tests.csproj", "{2E18B471-7FCA-497B-90FF-6AA9172CC62F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -43,6 +47,14 @@ Global {FC6CC65A-27B9-43D4-8F20-D941B4987B2C}.Debug|Any CPU.Build.0 = Debug|Any CPU {FC6CC65A-27B9-43D4-8F20-D941B4987B2C}.Release|Any CPU.ActiveCfg = Release|Any CPU {FC6CC65A-27B9-43D4-8F20-D941B4987B2C}.Release|Any CPU.Build.0 = Release|Any CPU + {9CD1BFDB-DD76-4194-ACAD-A64541AC2069}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9CD1BFDB-DD76-4194-ACAD-A64541AC2069}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CD1BFDB-DD76-4194-ACAD-A64541AC2069}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9CD1BFDB-DD76-4194-ACAD-A64541AC2069}.Release|Any CPU.Build.0 = Release|Any CPU + {2E18B471-7FCA-497B-90FF-6AA9172CC62F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E18B471-7FCA-497B-90FF-6AA9172CC62F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E18B471-7FCA-497B-90FF-6AA9172CC62F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E18B471-7FCA-497B-90FF-6AA9172CC62F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -53,6 +65,8 @@ Global {F352D620-1CBF-4658-953F-70BA73B458F1} = {59A0FC0F-EA6D-477B-84A7-3B1E41B4C858} {8B8FBA95-4FA2-4438-A387-7C5EC7A89E82} = {2C792EC1-BA27-44ED-B7CC-D0939553F1B2} {FC6CC65A-27B9-43D4-8F20-D941B4987B2C} = {59A0FC0F-EA6D-477B-84A7-3B1E41B4C858} + {9CD1BFDB-DD76-4194-ACAD-A64541AC2069} = {2C792EC1-BA27-44ED-B7CC-D0939553F1B2} + {2E18B471-7FCA-497B-90FF-6AA9172CC62F} = {2C792EC1-BA27-44ED-B7CC-D0939553F1B2} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {45562023-C330-4060-A583-2BA10F472D3D} diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj new file mode 100644 index 0000000000..5a7d60a821 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj @@ -0,0 +1,24 @@ + + + + netcoreapp2.1 + Volo.Abp.IdentityServer.MongoDB.Tests + Volo.Abp.IdentityServer.MongoDB.Tests + true + false + false + false + + + + + + + + + + + + + + diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/AbpIdentityServerBsonClassMap.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/AbpIdentityServerBsonClassMap.cs index 28cde387cf..f55ad596c8 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/AbpIdentityServerBsonClassMap.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/AbpIdentityServerBsonClassMap.cs @@ -1,8 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Text; -using IdentityServer4.Models; -using MongoDB.Bson.Serialization; +using MongoDB.Bson.Serialization; +using Volo.Abp.IdentityServer.ApiResources; +using Volo.Abp.IdentityServer.Clients; +using Volo.Abp.IdentityServer.Grants; +using Volo.Abp.IdentityServer.IdentityResources; using Volo.Abp.Threading; namespace Volo.Abp.IdentityServer.MongoDB diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/AbpIdentityServerMongoDbContextExtensions.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/AbpIdentityServerMongoDbContextExtensions.cs index ed9bfc7422..6f81a67493 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/AbpIdentityServerMongoDbContextExtensions.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/AbpIdentityServerMongoDbContextExtensions.cs @@ -1,7 +1,8 @@ using System; -using System.Collections.Generic; -using System.Text; -using IdentityServer4.Models; +using Volo.Abp.IdentityServer.ApiResources; +using Volo.Abp.IdentityServer.Clients; +using Volo.Abp.IdentityServer.Grants; +using Volo.Abp.IdentityServer.IdentityResources; using Volo.Abp.MongoDB; namespace Volo.Abp.IdentityServer.MongoDB @@ -27,7 +28,6 @@ namespace Volo.Abp.IdentityServer.MongoDB { b.CollectionName = options.CollectionPrefix + "Clients"; }); - builder.Entity(b => { b.CollectionName = options.CollectionPrefix + "IdentityResources"; diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/AbpIdentityServerMongoDbModule.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/AbpIdentityServerMongoDbModule.cs index 6e42bc347d..599f60f579 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/AbpIdentityServerMongoDbModule.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/AbpIdentityServerMongoDbModule.cs @@ -1,5 +1,5 @@ -using IdentityServer4.Models; -using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.IdentityServer.Grants; using Volo.Abp.Modularity; using Volo.Abp.MongoDB; using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource; diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/IdentityServerMongoModelBuilderConfigurationOptions.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/IdentityServerMongoModelBuilderConfigurationOptions.cs index 49b9f80f47..bb88711e9e 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/IdentityServerMongoModelBuilderConfigurationOptions.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/IdentityServerMongoModelBuilderConfigurationOptions.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Volo.Abp.MongoDB; +using Volo.Abp.MongoDB; namespace Volo.Abp.IdentityServer.MongoDB { diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs index ac2a1b4978..ed84284369 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; @@ -22,7 +21,7 @@ namespace Volo.Abp.IdentityServer.MongoDB CancellationToken cancellationToken = default) { return await GetMongoQueryable() - .Where(ar => scopeNames.Any(s=>s == ar.Name)) + .Where(ar => scopeNames.Contains(ar.Name)) .ToListAsync(GetCancellationToken(cancellationToken)); } } diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs new file mode 100644 index 0000000000..965d2c8893 --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs @@ -0,0 +1,7 @@ + +namespace Volo.Abp.IdentityServer +{ + public class ApiResourceRepository_Tests //: ApiResourceRepository_Tests + { + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj new file mode 100644 index 0000000000..5a7d60a821 --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj @@ -0,0 +1,24 @@ + + + + netcoreapp2.1 + Volo.Abp.IdentityServer.MongoDB.Tests + Volo.Abp.IdentityServer.MongoDB.Tests + true + false + false + false + + + + + + + + + + + + + + diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs new file mode 100644 index 0000000000..f1e81bf21f --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs @@ -0,0 +1,33 @@ +using Microsoft.Extensions.DependencyInjection; +using Mongo2Go; +using Volo.Abp.Data; +using Volo.Abp.IdentityServer.MongoDB; +using Volo.Abp.Modularity; + +namespace Volo.Abp.IdentityServer +{ + + [DependsOn( + typeof(AbpIdentityServerTestBaseModule), + typeof(AbpIdentityServerMongoDbModule) + )] + public class AbpIdentityServerMongoDbTestModule : AbpModule + { + private MongoDbRunner _mongoDbRunner; + + public override void ConfigureServices(ServiceConfigurationContext context) + { + _mongoDbRunner = MongoDbRunner.Start(); + + context.Services.Configure(options => + { + options.ConnectionStrings.Default = _mongoDbRunner.ConnectionString; + }); + } + + public override void OnApplicationShutdown(ApplicationShutdownContext context) + { + _mongoDbRunner.Dispose(); + } + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs new file mode 100644 index 0000000000..032505266d --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs @@ -0,0 +1,7 @@ + +namespace Volo.Abp.IdentityServer +{ + public class ApiResourceRepository_Tests : ApiResourceRepository_Tests + { + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ClientRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ClientRepository_Tests.cs new file mode 100644 index 0000000000..29b006cd99 --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/ClientRepository_Tests.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Volo.Abp.IdentityServer +{ + public class ClientRepository_Tests : ClientRepository_Tests + { + + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs new file mode 100644 index 0000000000..2b44b2c6a0 --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs @@ -0,0 +1,10 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Volo.Abp.IdentityServer +{ + public class IdentityResourceRepository_Tests : IdentityResourceRepository_Tests + { + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo.Abp.IdentityServer.TestBase.csproj b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo.Abp.IdentityServer.TestBase.csproj new file mode 100644 index 0000000000..3cf0bab9d4 --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo.Abp.IdentityServer.TestBase.csproj @@ -0,0 +1,29 @@ + + + + netcoreapp2.1 + Volo.Abp.IdentityServer.TestBase + Volo.Abp.IdentityServer.TestBase + true + false + false + false + + + + + + + + + + + + + + + + + + + diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBase.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBase.cs new file mode 100644 index 0000000000..a78caec8d0 --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBase.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Volo.Abp.Modularity; + +namespace Volo.Abp.IdentityServer +{ + public class AbpIdentityServerTestBase : AbpIntegratedTest + where TStartupModule : IAbpModule + { + protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) + { + options.UseAutofac(); + } + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs new file mode 100644 index 0000000000..b5617e489f --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs @@ -0,0 +1,38 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Autofac; +using Volo.Abp.Modularity; +using Volo.Abp.Threading; + +namespace Volo.Abp.IdentityServer +{ + [DependsOn( + typeof(AbpAutofacModule), + typeof(AbpTestBaseModule), + typeof(AbpIdentityServerDomainModule) + )] + public class AbpIdentityServerTestBaseModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddAlwaysAllowPermissionChecker(); + } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + SeedTestData(context); + } + + private static void SeedTestData(ApplicationInitializationContext context) + { + using (var scope = context.ServiceProvider.CreateScope()) + { + //var dataSeeder = scope.ServiceProvider.GetRequiredService(); + //AsyncHelper.RunSync(() => dataSeeder.SeedAsync("1q2w3E*")); + + scope.ServiceProvider + .GetRequiredService() + .Build(); + } + } + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs new file mode 100644 index 0000000000..472c23b7e2 --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs @@ -0,0 +1,68 @@ +using Volo.Abp.DependencyInjection; +using Volo.Abp.Guids; +using Volo.Abp.IdentityServer.ApiResources; +using Volo.Abp.IdentityServer.Clients; +using Volo.Abp.IdentityServer.Grants; +using Volo.Abp.IdentityServer.IdentityResources; + +namespace Volo.Abp.IdentityServer +{ + public class AbpIdentityServerTestDataBuilder : ITransientDependency + { + private readonly IGuidGenerator _guidGenerator; + private readonly IApiResourceRepository _apiResourceRepository; + private readonly IClientRepository _clientRepository; + private readonly IIdentityResourceRepository _identityResourceRepository; + //private readonly IPersistentGrantRepository _persistentGrantRepository; + + public AbpIdentityServerTestDataBuilder( + IGuidGenerator guidGenerator, + IApiResourceRepository apiResourceRepository, + IClientRepository clientRepository, + IIdentityResourceRepository identityResourceRepository + /*IPersistentGrantRepository persistentGrantRepository*/) + { + _guidGenerator = guidGenerator; + _apiResourceRepository = apiResourceRepository; + _clientRepository = clientRepository; + _identityResourceRepository = identityResourceRepository; + //_persistentGrantRepository = persistentGrantRepository; + } + + public void Build() + { + AddPersistedGrants(); + AddIdentityResources(); + AddApiResources(); + AddClients(); + } + + private void AddPersistedGrants() + { + //_persistentGrantRepository.Insert(new PersistedGrant(_guidGenerator.Create())); + //_persistentGrantRepository.Insert(new PersistedGrant(_guidGenerator.Create())); + //_persistentGrantRepository.Insert(new PersistedGrant(_guidGenerator.Create())); + } + + private void AddIdentityResources() + { + _identityResourceRepository.Insert(new IdentityResource(_guidGenerator.Create(), "NewIdentityResource1")); + _identityResourceRepository.Insert(new IdentityResource(_guidGenerator.Create(), "NewIdentityResource2")); + _identityResourceRepository.Insert(new IdentityResource(_guidGenerator.Create(), "NewIdentityResource3")); + } + + private void AddApiResources() + { + _apiResourceRepository.Insert(new ApiResource(_guidGenerator.Create(), "NewApiResource1")); + _apiResourceRepository.Insert(new ApiResource(_guidGenerator.Create(), "NewApiResource2")); + _apiResourceRepository.Insert(new ApiResource(_guidGenerator.Create(), "NewApiResource3")); + } + + private void AddClients() + { + _clientRepository.Insert(new Client(_guidGenerator.Create(), "ClientId1")); + _clientRepository.Insert(new Client(_guidGenerator.Create(), "ClientId2")); + _clientRepository.Insert(new Client(_guidGenerator.Create(), "ClientId3")); + } + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs new file mode 100644 index 0000000000..db8eacae5c --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/ApiResourceRepository_Tests.cs @@ -0,0 +1,32 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Shouldly; +using Volo.Abp.IdentityServer.ApiResources; +using Volo.Abp.Modularity; +using Xunit; + +namespace Volo.Abp.IdentityServer +{ + public abstract class ApiResourceRepository_Tests : AbpIdentityServerTestBase + where TStartupModule : IAbpModule + { + protected IApiResourceRepository apiResourceRepository { get; } + + public ApiResourceRepository_Tests() + { + apiResourceRepository = ServiceProvider.GetRequiredService(); + } + + [Fact] + public async Task FindByNormalizedNameAsync() + { + (await apiResourceRepository.FindByNameAsync("NewApiResource2")).ShouldNotBeNull(); + } + + [Fact] + public async Task GetListByScopesAsync() + { + (await apiResourceRepository.GetListByScopesAsync(new []{ "NewApiResource2", "NewApiResource3"})).Count.ShouldBe(2); + } + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/ClientRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/ClientRepository_Tests.cs new file mode 100644 index 0000000000..8770e7969c --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/ClientRepository_Tests.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Shouldly; +using Volo.Abp.IdentityServer.Clients; +using Volo.Abp.Modularity; +using Xunit; + +namespace Volo.Abp.IdentityServer +{ + public abstract class ClientRepository_Tests : AbpIdentityServerTestBase + where TStartupModule : IAbpModule + { + protected IClientRepository clientRepository { get; } + + public ClientRepository_Tests() + { + clientRepository = ServiceProvider.GetRequiredService(); + } + + [Fact] + public async Task FindByCliendIdAsync() + { + (await clientRepository.FindByCliendIdAsync("ClientId2")).ShouldNotBeNull(); + } + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs new file mode 100644 index 0000000000..a9487657b3 --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Shouldly; +using Volo.Abp.IdentityServer.IdentityResources; +using Volo.Abp.Modularity; +using Xunit; + +namespace Volo.Abp.IdentityServer +{ + public class IdentityResourceRepository_Tests : AbpIdentityServerTestBase + where TStartupModule : IAbpModule + { + private IIdentityResourceRepository identityResourceRepository; + public IdentityResourceRepository_Tests() + { + identityResourceRepository = ServiceProvider.GetRequiredService(); + } + + [Fact] + public async Task GetListByScopesAsync() + { + (await identityResourceRepository.GetListByScopesAsync(new []{"", "NewIdentityResource2" })).Count.ShouldBe(1); + } + } +}