public void ConsumingSuccesfully() { var consumer = new FakeConsumer(_ => Task.Factory.StartNew(() => { })); var result = new ConsumedMessage(new Foo(), FakeBasicDeliverEventArgs()).ConsumeAsync(new[] { consumer }) .Result; Assert.IsType <Success>(result); }
public void Throws() { const String message = "boom"; var exception = new Exception(message); var consumer = new FakeConsumer(_ => { throw exception; }); var result = new ConsumedMessage(new Foo(), FakeBasicDeliverEventArgs()).ConsumeAsync(new[] { consumer }).Result; var actual = Assert.IsType <ConsumingFailure>(result); Assert.Equal(1, actual.Exceptions.Length); Assert.Equal(message, actual.Exceptions.First().Message); Assert.Equal(1, consumer.Errors.Count); Assert.Equal(message, consumer.Errors.First().Message); }
public void ThrowsOnRedelivered() { const String message = "boom"; var exception = new Exception(message); var consumer = new FakeConsumer(_ => { throw exception; }); var result = new ConsumedMessage(new Foo(), new BasicDeliverEventArgs { Redelivered = true, BasicProperties = new BasicProperties() }).ConsumeAsync(new[] { consumer }).Result; var actual = Assert.IsType <ReiteratedConsumingFailure>(result); Assert.Equal(1, actual.Exceptions.Length); Assert.Equal(message, actual.Exceptions.First().Message); Assert.Equal(1, consumer.Errors.Count); Assert.Equal(message, consumer.Errors.First().Message); }
public void InitializationOfAmqpStuff() { const String queueName = "queue_name"; const String exchangeName = "exchange_name"; const String routingKey = "routing_key"; var configuration = new EnvironmentConfiguration(); configuration.GeneratesMessageIdBy(new Mock <INewId>().Object); configuration.ResolveMessageTypeBy(new Mock <IMessageTypeResolver>().Object); var model = new Mock <IModel>(); var connectionBuilder = StubConnectionBuilder(model); var broker = new BrokerWrapper(connectionBuilder.Object, model.Object, configuration); var consumer = new FakeConsumer(_ => Task.Factory.StartNew(() => { })); var queue = broker.DeclareQueue(queueName); var exchange = broker.DeclareDirectExchange(exchangeName); broker.DeclareExchangeBinding(exchange, queue, routingKey); broker.SubscribeByAtLeastOnce(queue, _ => { _.Consumes(consumer); }); broker.Connect(); model.Verify(_ => _.QueueDeclare(queueName, false, false, false, It.IsAny <IDictionary <String, Object> >())); model.Verify(_ => _.ExchangeDeclare(exchangeName, "direct", false, false, It.IsAny <IDictionary <String, Object> >())); model.Verify(_ => _.QueueBind(queueName, exchangeName, routingKey, It.IsAny <IDictionary <String, Object> >())); }