/// <summary> /// Adds MongoDb classes (MongoClient, IMongoClient and MongoUrl) to your Autofac Container /// </summary> /// <param name="container">Your Autofac Container Builder</param> /// <param name="config">Application configuration</param> /// <param name="serviceName">Cloud Foundry service name binding</param> /// <returns>the RegistrationBuilder for (optional) additional configuration</returns> public static IRegistrationBuilder <object, SimpleActivatorData, SingleRegistrationStyle> RegisterMongoDbConnection(this ContainerBuilder container, IConfiguration config, string serviceName = null) { if (container == null) { throw new ArgumentNullException(nameof(container)); } if (config == null) { throw new ArgumentNullException(nameof(config)); } MongoDbServiceInfo info = serviceName == null ? config.GetSingletonServiceInfo <MongoDbServiceInfo>() : config.GetRequiredServiceInfo <MongoDbServiceInfo>(serviceName); var mongoOptions = new MongoDbConnectorOptions(config); var clientFactory = new MongoDbConnectorFactory(info, mongoOptions, MongoDbTypeLocator.MongoClient); var urlFactory = new MongoDbConnectorFactory(info, mongoOptions, MongoDbTypeLocator.MongoUrl); container.Register(c => urlFactory.Create(null)).As(MongoDbTypeLocator.MongoUrl); container.Register(c => new MongoDbHealthContributor(clientFactory, c.ResolveOptional <ILogger <MongoDbHealthContributor> >())).As <IHealthContributor>(); return(container.Register(c => clientFactory.Create(null)).As(MongoDbTypeLocator.IMongoClient, MongoDbTypeLocator.MongoClient)); }
public void Is_Connected_Returns_Up_Status() { var mongoDbConfig = new MongoDbConnectorOptions(); var sInfo = new MongoDbServiceInfo("MyId", "mongodb://localhost:27017"); var logrFactory = new LoggerFactory(); var connFactory = new MongoDbConnectorFactory(sInfo, mongoDbConfig, mongoDbImplementationType); var h = new MongoDbHealthContributor(connFactory, logrFactory.CreateLogger <MongoDbHealthContributor>()); var status = h.Health(); Assert.Equal(HealthStatus.UP, status.Status); }
public void Not_Connected_Returns_Down_Status() { var mongoDbConfig = new MongoDbConnectorOptions(); var sInfo = new MongoDbServiceInfo("MyId", "mongodb://localhost:27018"); var logrFactory = new LoggerFactory(); var connFactory = new MongoDbConnectorFactory(sInfo, mongoDbConfig, mongoDbImplementationType); var h = new MongoDbHealthContributor(connFactory, logrFactory.CreateLogger <MongoDbHealthContributor>(), 1); var status = h.Health(); Assert.Equal(HealthStatus.DOWN, status.Status); Assert.Equal("Failed to open MongoDb connection!", status.Description); }
public void Create_ReturnsMongoDbConnection() { var config = new MongoDbConnectorOptions() { Server = "localhost", Port = 27016, Password = "******", Username = "******", }; var si = new MongoDbServiceInfo("MyId", "mongodb://localhost:27017"); var factory = new MongoDbConnectorFactory(si, config, MongoDbTypeLocator.MongoClient); var connection = factory.Create(null); Assert.NotNull(connection); }