Exemplo n.º 1
0
        public void Should_do_nothing_if_already_disposed()
        {
            // Arrange
            var model = Substitute.For<IModel>();
            var consumer = new PriorityBurrowConsumer(model, Substitute.For<IMessageHandler>(), Substitute.For<IRabbitWatcher>(), false, 1);
            consumer.Init(Substitute.For<IInMemoryPriorityQueue<GenericPriorityMessage<BasicDeliverEventArgs>>>(), new CompositeSubscription(), 1, "sem");

            // Action
            consumer.Dispose();
            consumer.DoAck(new BasicDeliverEventArgs());


            // Assert
            model.DidNotReceive().BasicAck(Arg.Any<ulong>(), Arg.Any<bool>());
        }
Exemplo n.º 2
0
        public void Should_do_nothing_if_already_disposed()
        {
            // Arrange
            var waitHandler = new ManualResetEvent(false);
            var model = Substitute.For<IModel>();
            var consumer = new PriorityBurrowConsumer(model, Substitute.For<IMessageHandler>(), Substitute.For<IRabbitWatcher>(), false, 1);
            var queue = Substitute.For<IInMemoryPriorityQueue<GenericPriorityMessage<BasicDeliverEventArgs>>>();
            queue.When(x => x.Dequeue()).Do(callInfo => waitHandler.WaitOne());
            consumer.Init(queue, new CompositeSubscription(), 1, "sem");
            consumer.Ready();

            // Action
            consumer.Dispose();
            consumer.DoAck(new BasicDeliverEventArgs());

            // Assert
            model.DidNotReceive().BasicAck(Arg.Any<ulong>(), Arg.Any<bool>());
            waitHandler.Set();
        }
Exemplo n.º 3
0
        public void Should_catch_IOException()
        {
            // Arrange
            var model = Substitute.For<IModel>();
            model.When(x => x.BasicAck(Arg.Any<ulong>(), Arg.Any<bool>())).Do(callInfo => { throw new IOException(); });
            var watcher = Substitute.For<IRabbitWatcher>();
            var sub = Substitute.For<CompositeSubscription>();
            sub.AddSubscription(new Subscription(model) { ConsumerTag = "Burrow" });

            var consumer = new PriorityBurrowConsumer(model, Substitute.For<IMessageHandler>(), watcher, false, 1);
            consumer.Init(Substitute.For<IInMemoryPriorityQueue<GenericPriorityMessage<BasicDeliverEventArgs>>>(), sub, 1, "sem");

            // Action

            consumer.DoAck(new BasicDeliverEventArgs { ConsumerTag = "Burrow" });


            // Assert
            watcher.Received().WarnFormat(Arg.Any<string>(), Arg.Any<object[]>());
            consumer.Dispose();
        }