public void Is_Connected_Returns_Up_Status() { // arrange Type rabbitMQInterfaceType = RabbitMQTypeLocator.IConnectionFactory; Type rabbitMQImplementationType = RabbitMQTypeLocator.ConnectionFactory; RabbitMQProviderConnectorOptions rabbitMQConfig = new RabbitMQProviderConnectorOptions(); var sInfo = new RabbitMQServiceInfo("MyId", "amqp://localhost:5672"); var logrFactory = new LoggerFactory(); var connFactory = new RabbitMQProviderConnectorFactory(sInfo, rabbitMQConfig, rabbitMQImplementationType); var h = new RabbitMQHealthContributor(connFactory, logrFactory.CreateLogger <RabbitMQHealthContributor>()); // act var status = h.Health(); // assert Assert.Equal(HealthStatus.UP, status.Status); }
public void Not_Connected_Returns_Down_Status() { // arrange _ = RabbitMQTypeLocator.IConnectionFactory; var rabbitMQImplementationType = RabbitMQTypeLocator.ConnectionFactory; var rabbitMQConfig = new RabbitMQProviderConnectorOptions(); var sInfo = new RabbitMQServiceInfo("MyId", "amqp://*****:*****@localhost:5672/si_vhost"); var logrFactory = new LoggerFactory(); var connFactory = new RabbitMQProviderConnectorFactory(sInfo, rabbitMQConfig, rabbitMQImplementationType); var h = new RabbitMQHealthContributor(connFactory, logrFactory.CreateLogger <RabbitMQHealthContributor>()); // act var status = h.Health(); // assert Assert.Equal(HealthStatus.DOWN, status.Status); Assert.Equal("Failed to open RabbitMQ connection!", status.Description); }
/// <summary> /// Adds RabbitMQ ConnectionFactory (as IConnectionFactory and ConnectionFactory) 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> RegisterRabbitMQConnection(this ContainerBuilder container, IConfiguration config, string serviceName = null) { if (container == null) { throw new ArgumentNullException(nameof(container)); } if (config == null) { throw new ArgumentNullException(nameof(config)); } Type rabbitMQInterfaceType = ConnectorHelpers.FindType(rabbitMQAssemblies, rabbitMQInterfaceTypeNames); Type rabbitMQImplementationType = ConnectorHelpers.FindType(rabbitMQAssemblies, rabbitMQImplementationTypeNames); if (rabbitMQInterfaceType == null || rabbitMQImplementationType == null) { throw new ConnectorException("Unable to find ConnectionFactory, are you missing RabbitMQ assembly"); } RabbitMQServiceInfo info; if (serviceName == null) { info = config.GetSingletonServiceInfo <RabbitMQServiceInfo>(); } else { info = config.GetRequiredServiceInfo <RabbitMQServiceInfo>(serviceName); } RabbitMQProviderConnectorOptions rabbitMQConfig = new RabbitMQProviderConnectorOptions(config); RabbitMQProviderConnectorFactory factory = new RabbitMQProviderConnectorFactory(info, rabbitMQConfig, rabbitMQImplementationType); return(container.Register(c => factory.Create(null)).As(rabbitMQInterfaceType, rabbitMQImplementationType)); }