public void Return_should_not_return_channel_to_the_pool_if_closed() { var channel = NSubstitute.Substitute.For <IModel>(); channel.IsClosed.Returns(true); var references = new QueueReferences("lorem", "ipsum", "dolor", "amet", "sic"); var connection = NSubstitute.Substitute.For <IBusConnection>(); connection.CreateChannel() .Returns(channel); var sut = new PublisherChannelContextPool(connection); var ctx = new PublisherChannelContext(channel, references, sut); sut.Get(references); channel.Received(1) .ExchangeDeclare(references.ExchangeName, type: ExchangeType.Topic); channel.ClearReceivedCalls(); sut.Return(ctx); sut.GetAvailableCount().Should().Be(0); }
public void Create_should_return_valid_context() { var channel = NSubstitute.Substitute.For <IModel>(); var references = new QueueReferences("exchange", "queue", "routingKey", "deadletterExch", "deadLetterQ"); var pool = NSubstitute.Substitute.For <IPublisherChannelContextPool>(); var ctx = new PublisherChannelContext(channel, references, pool); pool.Get(references) .Returns(ctx); var factory = NSubstitute.Substitute.For <IQueueReferenceFactory>(); factory.Create((IMessage)null) .ReturnsForAnyArgs(references); var sut = new PublisherChannelFactory(pool, factory); var message = DummyMessage.New(); var result = sut.Create(message); result.Should().NotBeNull(); result.Channel.Should().Be(channel); result.QueueReferences.Should().Be(references); }
public void Dispose_should_return_to_pool() { var pool = NSubstitute.Substitute.For <IPublisherChannelContextPool>(); var channel = NSubstitute.Substitute.For <IModel>(); var references = new QueueReferences("exchange", "queue", "routingKey", "deadletterExch", "deadLetterQ"); var sut = new PublisherChannelContext(channel, references, pool); sut.Dispose(); pool.Received(1) .Return(sut); }
public void Dispose_should_dispose_channels() { var openChannel = NSubstitute.Substitute.For <IModel>(); var references = new QueueReferences("lorem", "ipsum", "dolor", "amet", "sic"); var connection = NSubstitute.Substitute.For <IBusConnection>(); var sut = new PublisherChannelContextPool(connection); var ctx = new PublisherChannelContext(openChannel, references, sut); sut.Return(ctx); sut.Dispose(); openChannel.Received(1) .Dispose(); }