From 178bde4ceec160321057989d1cdeaaea565d0cb2 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 15 Sep 2020 16:53:24 +0800 Subject: [PATCH] Update mongodb unit tests --- .../Volo/Abp/MongoDB/MongoClientExtension.cs | 87 ------------------- .../Volo/Abp/MongoDB/AbpMongoDbTestModule.cs | 12 +++ .../Volo/Abp/MongoDB/MongoDbFixture.cs | 6 -- .../AbpAuditLoggingMongoDbTestModule.cs | 12 +++ .../AuditLogging/MongoDB/MongoDbFixture.cs | 6 -- .../AbpBackgroundJobsMongoDbTestModule.cs | 12 +++ .../BackgroundJobs/MongoDB/MongoDbFixture.cs | 6 -- .../BlobStoringDatabaseMongoDbTestModule.cs | 20 +++-- .../MongoDB/MongoDbFixture.cs | 6 -- .../MongoDB/BloggingMongoDBTestModule.cs | 20 +++-- .../Volo/Blogging/MongoDB/MongoDbFixture.cs | 6 -- .../MongoDB/CmsKitMongoDbTestModule.cs | 22 +++-- .../MongoDB/MongoDbFixture.cs | 6 -- .../Docs/MongoDB/DocsMongoDBTestModule.cs | 18 +++- .../Volo/Docs/MongoDB/MongoDbFixture.cs | 6 -- .../AbpFeatureManagementMongoDbTestModule.cs | 14 ++- .../MongoDB/MongoDbFixture.cs | 6 -- .../MongoDB/AbpIdentityMongoDbTestModule.cs | 20 +++-- .../Abp/Identity/MongoDB/MongoDbFixture.cs | 6 -- .../AbpIdentityServerMongoDbTestModule.cs | 12 +++ .../Volo/Abp/IdentityServer/MongoDbFixture.cs | 6 -- ...bpPermissionManagementMongoDbTestModule.cs | 18 +++- .../MongoDb/MongoDbFixture.cs | 6 -- .../AbpSettingManagementMongoDbTestModule.cs | 12 +++ .../MongoDB/MongoDbFixture.cs | 6 -- .../AbpTenantManagementMongoDbTestModule.cs | 12 +++ .../MongoDb/MongoDbFixture.cs | 4 - .../MongoDb/MyProjectNameMongoDbFixture.cs | 5 -- .../MongoDb/MyProjectNameMongoDbTestModule.cs | 11 +++ .../MongoDB/MongoDbFixture.cs | 6 -- .../MongoDB/MyProjectNameMongoDbTestModule.cs | 11 +++ 31 files changed, 195 insertions(+), 205 deletions(-) delete mode 100644 framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoClientExtension.cs diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoClientExtension.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoClientExtension.cs deleted file mode 100644 index f792f6c9a9..0000000000 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoClientExtension.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System; -using System.Threading; -using MongoDB.Driver; - -namespace Volo.Abp.MongoDB -{ - /// - /// TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - /// - public static class MongoClientExtension - { - private static readonly TimeSpan InitialDelay = TimeSpan.FromMilliseconds(500); - private static readonly TimeSpan MaxDelay = TimeSpan.FromSeconds(5000); - - - public static void EnsureReplicationSetReady(this IMongoClient mongoClient) - { - var delay = InitialDelay; - var database = mongoClient.GetDatabase("__dummy-db"); - try - { - while (true) - { - try - { - _ = database.GetCollection("__dummy"); - database.DropCollection("__dummy"); - - var session = mongoClient.StartSession(); - - try - { - session.StartTransaction(); - session.AbortTransaction(); - } - finally - { - session.Dispose(); - } - - break; - } - catch (NotSupportedException) - { - } - - Thread.Sleep(delay); - delay = Min(Double(delay), MaxDelay); - } - } - finally - { - mongoClient.DropDatabase("__dummy-db"); - } - } - - private static TimeSpan Min(TimeSpan left, TimeSpan right) - { - return new TimeSpan(Math.Min(left.Ticks, right.Ticks)); - } - - private static TimeSpan Double(TimeSpan timeSpan) - { - long ticks; - try - { - ticks = checked(timeSpan.Ticks * 2); - } - catch (OverflowException) - { - if (timeSpan.Ticks >= 0) - { - return TimeSpan.MaxValue; - } - - return TimeSpan.MinValue; - } - - return new TimeSpan(ticks); - } - - private sealed class DummyEntry - { - public int Id { get; set; } - } - } -} diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs index f2b04a3a7f..17c46796f2 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs @@ -1,5 +1,9 @@ using System; +using System.Linq; +using System.Threading; using Microsoft.Extensions.DependencyInjection; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; using Volo.Abp.TestApp; @@ -32,6 +36,14 @@ namespace Volo.Abp.MongoDB options.AddDefaultRepositories(); options.AddRepository(); }); + + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } } diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs index a3c3b25cac..ee0de2b459 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace Volo.Abp.MongoDB { @@ -14,10 +12,6 @@ namespace Volo.Abp.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs index 37d43e4ee5..3617d8d243 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -22,6 +26,14 @@ namespace Volo.Abp.AuditLogging.MongoDB { options.ConnectionStrings.Default = connectionString; }); + + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } } diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs index 8d928e9f1e..d4d00736f1 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace Volo.Abp.AuditLogging.MongoDB { @@ -14,10 +12,6 @@ namespace Volo.Abp.AuditLogging.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/AbpBackgroundJobsMongoDbTestModule.cs b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/AbpBackgroundJobsMongoDbTestModule.cs index 17f561c086..16fb856147 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/AbpBackgroundJobsMongoDbTestModule.cs +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/AbpBackgroundJobsMongoDbTestModule.cs @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -22,6 +26,14 @@ namespace Volo.Abp.BackgroundJobs.MongoDB { options.ConnectionStrings.Default = connectionString; }); + + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } } diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs index 9e2f4a76a4..21d3e6f351 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace Volo.Abp.BackgroundJobs.MongoDB { @@ -14,10 +12,6 @@ namespace Volo.Abp.BackgroundJobs.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestModule.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestModule.cs index fa2e2f2936..015f68c89e 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestModule.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestModule.cs @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -7,7 +11,7 @@ namespace Volo.Abp.BlobStoring.Database.MongoDB [DependsOn( typeof(BlobStoringDatabaseTestBaseModule), typeof(BlobStoringDatabaseMongoDbModule) - )] + )] public class BlobStoringDatabaseMongoDbTestModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) @@ -18,10 +22,16 @@ namespace Volo.Abp.BlobStoring.Database.MongoDB "Db_" + Guid.NewGuid().ToString("N") + "/?" + stringArray[1]; - Configure(options => - { - options.ConnectionStrings.Default = connectionString; - }); + Configure(options => { options.ConnectionStrings.Default = connectionString; }); + + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => + client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } } diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs index 82335b13f3..e91ed78aa6 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace Volo.Abp.BlobStoring.Database.MongoDB { @@ -14,10 +12,6 @@ namespace Volo.Abp.BlobStoring.Database.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/BloggingMongoDBTestModule.cs b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/BloggingMongoDBTestModule.cs index cac9cd748e..2c59493c08 100644 --- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/BloggingMongoDBTestModule.cs +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/BloggingMongoDBTestModule.cs @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -18,10 +22,16 @@ namespace Volo.Blogging.MongoDB "Db_" + Guid.NewGuid().ToString("N") + "/?" + stringArray[1]; - Configure(options => - { - options.ConnectionStrings.Default = connectionString; - }); + Configure(options => { options.ConnectionStrings.Default = connectionString; }); + + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => + client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } -} \ No newline at end of file +} diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs index 5198f4087d..cd53f1a8f5 100644 --- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace Volo.Blogging.MongoDB { @@ -14,10 +12,6 @@ namespace Volo.Blogging.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/CmsKitMongoDbTestModule.cs b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/CmsKitMongoDbTestModule.cs index 38f0179093..3aa2e3bd72 100644 --- a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/CmsKitMongoDbTestModule.cs +++ b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/CmsKitMongoDbTestModule.cs @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -7,7 +11,7 @@ namespace Volo.CmsKit.MongoDB [DependsOn( typeof(CmsKitTestBaseModule), typeof(CmsKitMongoDbModule) - )] + )] public class CmsKitMongoDbTestModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) @@ -18,10 +22,16 @@ namespace Volo.CmsKit.MongoDB "Db_" + Guid.NewGuid().ToString("N") + "/?" + stringArray[1]; - Configure(options => - { - options.ConnectionStrings.Default = connectionString; - }); + Configure(options => { options.ConnectionStrings.Default = connectionString; }); + + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => + client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/MongoDbFixture.cs b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/MongoDbFixture.cs index e7c60b7d8d..b867199547 100644 --- a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/MongoDbFixture.cs +++ b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace Volo.CmsKit.MongoDB { @@ -14,10 +12,6 @@ namespace Volo.CmsKit.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/DocsMongoDBTestModule.cs b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/DocsMongoDBTestModule.cs index 942d19071c..3ecebd228b 100644 --- a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/DocsMongoDBTestModule.cs +++ b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/DocsMongoDBTestModule.cs @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -18,10 +22,16 @@ namespace Volo.Docs.MongoDB "Db_" + Guid.NewGuid().ToString("N") + "/?" + stringArray[1]; - Configure(options => - { - options.ConnectionStrings.Default = connectionString; - }); + Configure(options => { options.ConnectionStrings.Default = connectionString; }); + + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => + client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } } diff --git a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs index 90eab2fb2b..ba3debcdc2 100644 --- a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs +++ b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace Volo.Docs.MongoDB { @@ -14,10 +12,6 @@ namespace Volo.Docs.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/AbpFeatureManagementMongoDbTestModule.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/AbpFeatureManagementMongoDbTestModule.cs index a1e24b829e..ae42da1813 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/AbpFeatureManagementMongoDbTestModule.cs +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/AbpFeatureManagementMongoDbTestModule.cs @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -22,6 +26,14 @@ namespace Volo.Abp.FeatureManagement.MongoDB { options.ConnectionStrings.Default = connectionString; }); + + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } -} \ No newline at end of file +} diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs index 32cfd0dc5f..7a0b5ed54f 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace Volo.Abp.FeatureManagement.MongoDB { @@ -14,10 +12,6 @@ namespace Volo.Abp.FeatureManagement.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() 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 6cf462ccb9..b87971b00e 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,11 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; using Volo.Abp.PermissionManagement.MongoDB; -using Volo.Abp.Uow; namespace Volo.Abp.Identity.MongoDB { @@ -10,7 +13,7 @@ namespace Volo.Abp.Identity.MongoDB typeof(AbpIdentityTestBaseModule), typeof(AbpPermissionManagementMongoDbModule), typeof(AbpIdentityMongoDbModule) - )] + )] public class AbpIdentityMongoDbTestModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) @@ -21,11 +24,16 @@ namespace Volo.Abp.Identity.MongoDB "Db_" + Guid.NewGuid().ToString("N") + "/?" + stringArray[1]; - Configure(options => - { - options.ConnectionStrings.Default = connectionString; - }); + Configure(options => { options.ConnectionStrings.Default = connectionString; }); + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => + client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } } diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs index 4c919b6adc..6071001c97 100644 --- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace Volo.Abp.Identity.MongoDB { @@ -14,10 +12,6 @@ namespace Volo.Abp.Identity.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() 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 index f9762d9d4a..73e18457d2 100644 --- 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 @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Identity.MongoDB; using Volo.Abp.IdentityServer.MongoDB; @@ -26,6 +30,14 @@ namespace Volo.Abp.IdentityServer { options.ConnectionStrings.Default = connectionString; }); + + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } } diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs index f974990a54..75ce977418 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace Volo.Abp.IdentityServer { @@ -14,10 +12,6 @@ namespace Volo.Abp.IdentityServer { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbTestModule.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbTestModule.cs index baa579403a..04d5d4aeca 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbTestModule.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbTestModule.cs @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -17,10 +21,16 @@ namespace Volo.Abp.PermissionManagement.MongoDB "Db_" + Guid.NewGuid().ToString("N") + "/?" + stringArray[1]; - Configure(options => - { - options.ConnectionStrings.Default = connectionString; - }); + Configure(options => { options.ConnectionStrings.Default = connectionString; }); + + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => + client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } } diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs index 385f9d3321..8ede0f98e4 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace Volo.Abp.PermissionManagement.MongoDB { @@ -14,10 +12,6 @@ namespace Volo.Abp.PermissionManagement.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs index 8bc35e2724..b19c6f4201 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -22,6 +26,14 @@ namespace Volo.Abp.SettingManagement.MongoDB { options.ConnectionStrings.Default = connectionString; }); + + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs index 1212bb90f0..e15891891b 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace Volo.Abp.SettingManagement.MongoDB { @@ -14,10 +12,6 @@ namespace Volo.Abp.SettingManagement.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/AbpTenantManagementMongoDbTestModule.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/AbpTenantManagementMongoDbTestModule.cs index 29154cc271..2bcf5f89f3 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/AbpTenantManagementMongoDbTestModule.cs +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/AbpTenantManagementMongoDbTestModule.cs @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -22,6 +26,14 @@ namespace Volo.Abp.TenantManagement.MongoDB { options.ConnectionStrings.Default = connectionString; }); + + //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100 + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } } diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs index 6c95e09086..9eed11fb27 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs @@ -14,10 +14,6 @@ namespace Volo.Abp.TenantManagement.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbFixture.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbFixture.cs index 565bd1f5ff..572788f8bc 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbFixture.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace MyCompanyName.MyProjectName.MongoDB { @@ -14,9 +12,6 @@ namespace MyCompanyName.MyProjectName.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbTestModule.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbTestModule.cs index 386c82d5b9..8c1f5a1b60 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbTestModule.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbTestModule.cs @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -22,6 +26,13 @@ namespace MyCompanyName.MyProjectName.MongoDB { options.ConnectionStrings.Default = connectionString; }); + + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } } diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs index 55a7072a9d..3b41ceb151 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs @@ -1,7 +1,5 @@ using System; using Mongo2Go; -using MongoDB.Driver; -using Volo.Abp.MongoDB; namespace MyCompanyName.MyProjectName.MongoDB { @@ -14,10 +12,6 @@ namespace MyCompanyName.MyProjectName.MongoDB { MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10); ConnectionString = MongoDbRunner.ConnectionString; - - //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89 - var client = new MongoClient(MongoDbRunner.ConnectionString); - client.EnsureReplicationSetReady(); } public void Dispose() diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs index d074fe6b43..ecafd42fec 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs @@ -1,4 +1,8 @@ using System; +using System.Linq; +using System.Threading; +using MongoDB.Driver; +using MongoDB.Driver.Core.Servers; using Volo.Abp.Data; using Volo.Abp.Modularity; @@ -22,6 +26,13 @@ namespace MyCompanyName.MyProjectName.MongoDB { options.ConnectionStrings.Default = connectionString; }); + + EnsureTransactionIsReady(new MongoClient(connectionString)); + } + + private void EnsureTransactionIsReady(MongoClient client) + { + SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing)); } } }