From 347c8ca6396959f06e194baa89beed673500645b Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 7 Sep 2021 22:47:40 +0800 Subject: [PATCH] Update unit tests --- .../MongoDB/AbpIdentityMongoDbTestModule.cs | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbTestModule.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbTestModule.cs index 3399b96754..3db52f4144 100644 --- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbTestModule.cs +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbTestModule.cs @@ -1,8 +1,13 @@ using System; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.Modularity; +using Volo.Abp.MongoDB; using Volo.Abp.Uow; using Volo.Abp.PermissionManagement.MongoDB; +using Volo.Abp.Threading; namespace Volo.Abp.Identity.MongoDB { @@ -25,5 +30,31 @@ namespace Volo.Abp.Identity.MongoDB options.ConnectionStrings.Default = connectionString; }); } + + public override void OnPreApplicationInitialization(ApplicationInitializationContext context) + { + InitializeCollections(context); + } + + private static void InitializeCollections(ApplicationInitializationContext context) + { + var dbContexts = context.ServiceProvider.GetServices(); + var connectionStringResolver = context.ServiceProvider.GetRequiredService(); + + foreach (var dbContext in dbContexts) + { + var connectionString = AsyncHelper.RunSync(()=> connectionStringResolver.ResolveAsync(ConnectionStringNameAttribute.GetConnStringName(dbContext.GetType()))); + var mongoUrl = new MongoUrl(connectionString); + var databaseName = mongoUrl.DatabaseName; + var client = new MongoClient(mongoUrl); + + if (databaseName.IsNullOrWhiteSpace()) + { + databaseName = ConnectionStringNameAttribute.GetConnStringName(dbContext.GetType()); + } + + (dbContext as AbpMongoDbContext)?.InitializeCollections(client.GetDatabase(databaseName)); + } + } } }