public void Should_unsubscribe_to_ConnectionEstablished_event() { var connectionFactory = new ManagedConnectionFactory { HostName = "localhost", Port = 5672, VirtualHost = "/", UserName = "******", Password = "******" }; var connection = new HaConnection(Substitute.For<IRetryPolicy>(), Substitute.For<IRabbitWatcher>(), new List<ManagedConnectionFactory> { connectionFactory }); var fired = false; connection.Connected += () => { fired = true; }; ManagedConnectionFactory.ConnectionEstablished += (a, b) => { }; //NOTE: To make it not null connection.Dispose(); var model = Substitute.For<IModel>(); model.IsOpen.Returns(true); var c = Substitute.For<IConnection>(); c.CreateModel().Returns(model); c.IsOpen.Returns(true); c.Endpoint.Returns(connectionFactory.Endpoint); ManagedConnectionFactory.SharedConnections[connectionFactory.Endpoint + connectionFactory.VirtualHost] = c; ManagedConnectionFactory.ConnectionEstablished.Invoke(new AmqpTcpEndpoint("localhost"), "/"); Assert.IsFalse(fired); }
public void Should_bind_to_ConnectionEstablished_event_and_change_connection_status_if_a_share_connection_established() { var connection = Substitute.For<IConnection>(); connection.IsOpen.Returns(true); var factory1 = Substitute.For<ManagedConnectionFactory>(); factory1.HostName = "host1"; factory1.VirtualHost = "/virtualhost"; factory1.EstablishConnection().Returns(connection); var factory2 = Substitute.For<ManagedConnectionFactory>(); factory2.HostName = "host2"; factory2.VirtualHost = "/virtualhost"; var factory3 = Substitute.For<ManagedConnectionFactory>(); factory2.HostName = "host3"; factory2.VirtualHost = "/virtualhost"; var haConnection = new HaConnection(Substitute.For<IRetryPolicy>(), Substitute.For<IRabbitWatcher>(), new List<ManagedConnectionFactory> { factory3, factory2, factory1 }); Assert.AreEqual(factory3.HostName, haConnection.ConnectionFactories.Current.HostName); Assert.AreEqual(factory3.VirtualHost, haConnection.ConnectionFactories.Current.VirtualHost); // Action factory1.CreateConnection(); // Assert Assert.AreEqual(factory1.HostName, haConnection.ConnectionFactories.Current.HostName); Assert.AreEqual(factory1.VirtualHost, haConnection.ConnectionFactories.Current.VirtualHost); }
/// <summary> /// Create a tunnel with provided connection string and IRabbitWatcher object /// </summary> /// <param name="connectionString"></param> /// <param name="watcher"></param> /// <returns></returns> public virtual ITunnel Create(string connectionString, IRabbitWatcher watcher) { var clusterConnections = connectionString.Split(new[] {'|'}, StringSplitOptions.RemoveEmptyEntries); if (clusterConnections.Length > 1) { var factories = clusterConnections.Select(x => new ManagedConnectionFactory(new ConnectionString(x))) .ToList(); var rabbitWatcher = watcher ?? Global.DefaultWatcher; var haConnection = new HaConnection(new DefaultRetryPolicy(), rabbitWatcher, factories); return Create(haConnection, rabbitWatcher); } var connectionValues = new ConnectionString(connectionString); return Create(new ManagedConnectionFactory(connectionValues), watcher); }
public override ITunnel Create(string connectionString, IRabbitWatcher watcher) { if (RabbitTunnel.Factory is DependencyInjectionTunnelFactory) { return RabbitTunnel.Factory.Create(connectionString, watcher); } var clusterConnections = connectionString.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); if (clusterConnections.Length > 1) { var factories = clusterConnections.Select(x => new ManagedConnectionFactory(new ConnectionString(x))) .ToList(); var rabbitWatcher = watcher ?? Global.DefaultWatcher; var haConnection = new HaConnection(new DefaultRetryPolicy(), rabbitWatcher, factories); return Create(haConnection, rabbitWatcher); } var cnn = new ConnectionString(connectionString); return Create(cnn.Host, cnn.Port, cnn.VirtualHost, cnn.UserName, cnn.Password, watcher); }
public void Should_convert_connection_factories_to_managed_connection_factories() { // Arrange var connection = new HaConnection(Substitute.For<IRetryPolicy>(), Substitute.For<IRabbitWatcher>(), new List<ManagedConnectionFactory> { new ManagedConnectionFactory { HostName = "localhost", Port = 5672, VirtualHost = "/", UserName = "******", Password = "******" } }); Assert.IsTrue(connection.ConnectionFactory is ManagedConnectionFactory); Assert.AreEqual("localhost", connection.ConnectionFactory.HostName); Assert.AreEqual("vantheshark", connection.ConnectionFactory.UserName); Assert.AreEqual("123", connection.ConnectionFactory.Password); Assert.AreEqual(5672, connection.ConnectionFactory.Port); Assert.AreEqual("/", connection.ConnectionFactory.VirtualHost); }