You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
abp/modules/permission-management/test/Volo.Abp.PermissionManageme.../Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMong...

37 lines
1.3 KiB

using System;
using System.Linq;
using System.Threading;
using MongoDB.Driver;
using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
namespace Volo.Abp.PermissionManagement.MongoDB
{
[DependsOn(
typeof(AbpPermissionManagementMongoDbModule),
typeof(AbpPermissionManagementTestBaseModule))]
public class AbpPermissionManagementMongoDbTestModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
var stringArray = MongoDbFixture.ConnectionString.Split('?');
var connectionString = stringArray[0].EnsureEndsWith('/') +
"Db_" +
Guid.NewGuid().ToString("N") + "/?" + stringArray[1];
Configure<AbpDbConnectionOptions>(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));
}
}
}