public void should_close_connection_on_channel_failure() { var bus = this.ConfigureBus("Test", cfg => { }); var tcs = new TaskCompletionSource <bool>(); var connection = new RabbitConnection(new Endpoint("test"), bus.Configuration.ConnectionString, bus); connection.Closed += (sender, args) => tcs.SetResult(true); connection.Open(CancellationToken.None); var channel = connection.OpenChannel(); channel.Abort(); channel.Bind(Queue.Named("q").Instance, Exchange.Named("e").Instance, "key"); Assert.IsTrue(tcs.Task.Result); }
public void should_not_close_connection_on_channel_failure() { var bus = this.ConfigureBus("Test", cfg => { }); var tcs = new TaskCompletionSource <bool>(true); var connection = new RabbitConnection(new Endpoint("test"), bus.Configuration.ConnectionString, bus); connection.Closed += (sender, args) => tcs.SetResult(false); var tokenSource = new CancellationTokenSource(); connection.Open(tokenSource.Token); var channel = connection.OpenChannel(tokenSource.Token); channel.Abort(); Assert.Throws <AlreadyClosedException>( () => channel.Bind(Queue.Named("q").Instance, Exchange.Named("e").Instance, "key")); Assert.True(!tcs.Task.IsCompleted); }