public void TestDeliveryOrderingWithSingleChannel() { var Ch = Conn.CreateModel(); Ch.ExchangeDeclare(x, "fanout", durable: false); for (int i = 0; i < y; i++) { var ch = Conn.CreateModel(); var q = ch.QueueDeclare("", durable: false, exclusive: true, autoDelete: true, arguments: null); ch.QueueBind(queue: q, exchange: x, routingKey: ""); channels.Add(ch); queues.Add(q); var cons = new CollectingConsumer(ch); consumers.Add(cons); ch.BasicConsume(queue: q, noAck: false, consumer: cons); } for (int i = 0; i < n; i++) { Ch.BasicPublish(exchange: x, routingKey: "", basicProperties: new BasicProperties(), body: encoding.GetBytes("msg")); } counter.Wait(TimeSpan.FromSeconds(30)); foreach (var cons in consumers) { Assert.That(cons.DeliveryTags, Has.Count.EqualTo(n)); var ary = cons.DeliveryTags.ToArray(); Assert.AreEqual(ary[0], 1); Assert.AreEqual(ary[n - 1], n); for (int i = 0; i < (n - 1); i++) { var a = ary[i]; var b = ary[i + 1]; Assert.IsTrue(a < b); } } }
public void TestDeliveryOrderingWithSingleChannel() { IModel Ch = _conn.CreateModel(); Ch.ExchangeDeclare(_x, "fanout", durable: false); for (int i = 0; i < Y; i++) { IModel ch = _conn.CreateModel(); QueueDeclareOk q = ch.QueueDeclare("", durable: false, exclusive: true, autoDelete: true, arguments: null); ch.QueueBind(queue: q, exchange: _x, routingKey: ""); _channels.Add(ch); _queues.Add(q); var cons = new CollectingConsumer(ch); _consumers.Add(cons); ch.BasicConsume(queue: q, autoAck: false, consumer: cons); } for (int i = 0; i < N; i++) { Ch.BasicPublish(exchange: _x, routingKey: "", basicProperties: new BasicProperties(), body: _encoding.GetBytes("msg")); } counter.Wait(TimeSpan.FromSeconds(120)); foreach (CollectingConsumer cons in _consumers) { Assert.That(cons.DeliveryTags, Has.Count.EqualTo(N)); ulong[] ary = cons.DeliveryTags.ToArray(); Assert.AreEqual(ary[0], 1); Assert.AreEqual(ary[N - 1], N); for (int i = 0; i < (N - 1); i++) { ulong a = ary[i]; ulong b = ary[i + 1]; Assert.IsTrue(a < b); } } }
public void TestDeliveryOrderingWithSingleChannel() { var Ch = Conn.CreateModel(); Ch.ExchangeDeclare(x, "fanout", durable: false); for (int i = 0; i < y; i++) { var ch = Conn.CreateModel(); var q = ch.QueueDeclare("", durable: false, exclusive: true, autoDelete: true, arguments: null); ch.QueueBind(queue: q, exchange: x, routingKey: ""); channels.Add(ch); queues.Add(q); var cons = new CollectingConsumer(ch); consumers.Add(cons); ch.BasicConsume(queue: q, autoAck: false, consumer: cons); } for (int i = 0; i < n; i++) { Ch.BasicPublish(exchange: x, routingKey: "", basicProperties: new BasicProperties(), body: encoding.GetBytes("msg")); } counter.Wait(TimeSpan.FromSeconds(30)); foreach (var cons in consumers) { Assert.That(cons.DeliveryTags, Has.Count.EqualTo(n)); var ary = cons.DeliveryTags.ToArray(); Assert.AreEqual(ary[0], 1); Assert.AreEqual(ary[n - 1], n); for (int i = 0; i < (n - 1); i++) { var a = ary[i]; var b = ary[i + 1]; Assert.IsTrue(a < b); } } }