mirror of https://github.com/abpframework/abp
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.
37 lines
1.3 KiB
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));
|
|
}
|
|
}
|
|
}
|