Skip to content

Commit 50ab31f

Browse files
committed
make tests implementation agnostic
w.r.t. whether rejected messages can get redelivered on the same channel.
1 parent 22768dc commit 50ab31f

File tree

1 file changed

+43
-8
lines changed
  • test/src/com/rabbitmq/client/test/functional

1 file changed

+43
-8
lines changed

test/src/com/rabbitmq/client/test/functional/Reject.java

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@
3434
import com.rabbitmq.client.test.BrokerTestCase;
3535

3636
import com.rabbitmq.client.AMQP;
37+
import com.rabbitmq.client.Channel;
38+
import com.rabbitmq.client.Envelope;
39+
import com.rabbitmq.client.GetResponse;
3740
import com.rabbitmq.client.QueueingConsumer;
3841
import com.rabbitmq.client.QueueingConsumer.Delivery;
3942

@@ -43,30 +46,62 @@
4346
public class Reject extends BrokerTestCase
4447
{
4548

49+
protected Channel secondaryChannel;
50+
51+
protected void setUp()
52+
throws IOException
53+
{
54+
super.setUp();
55+
secondaryChannel = connection.createChannel();
56+
57+
}
58+
59+
protected void tearDown()
60+
throws IOException
61+
{
62+
if (secondaryChannel != null) {
63+
secondaryChannel.abort();
64+
secondaryChannel = null;
65+
}
66+
super.tearDown();
67+
}
68+
4669
protected long checkDelivery(Delivery d, byte[] msg, boolean redelivered)
4770
{
4871
assertNotNull(d);
49-
assertTrue(Arrays.equals(msg, d.getBody()));
50-
assertEquals(d.getEnvelope().isRedeliver(), redelivered);
51-
return d.getEnvelope().getDeliveryTag();
72+
return checkDelivery(d.getEnvelope(), d.getBody(), msg, redelivered);
73+
}
74+
75+
protected long checkDelivery(GetResponse r, byte[] msg, boolean redelivered)
76+
{
77+
assertNotNull(r);
78+
return checkDelivery(r.getEnvelope(), r.getBody(), msg, redelivered);
79+
}
80+
81+
protected long checkDelivery(Envelope e, byte[] m,
82+
byte[] msg, boolean redelivered)
83+
{
84+
assertNotNull(e);
85+
assertTrue(Arrays.equals(m, msg));
86+
assertEquals(e.isRedeliver(), redelivered);
87+
return e.getDeliveryTag();
5288
}
5389

5490
public void testReject()
5591
throws IOException, InterruptedException
5692
{
5793
String q = channel.queueDeclare("", false, true, false, null).getQueue();
5894

59-
QueueingConsumer c = new QueueingConsumer(channel);
60-
String consumerTag = channel.basicConsume(q, false, c);
61-
6295
byte[] m1 = "1".getBytes();
6396
byte[] m2 = "2".getBytes();
6497

6598
basicPublishVolatile(m1, q);
6699
basicPublishVolatile(m2, q);
67100

68-
long tag1 = checkDelivery(c.nextDelivery(), m1, false);
69-
long tag2 = checkDelivery(c.nextDelivery(), m2, false);
101+
long tag1 = checkDelivery(channel.basicGet(q, false), m1, false);
102+
long tag2 = checkDelivery(channel.basicGet(q, false), m2, false);
103+
QueueingConsumer c = new QueueingConsumer(secondaryChannel);
104+
String consumerTag = channel.basicConsume(q, false, c);
70105
channel.basicReject(tag2, true);
71106
long tag3 = checkDelivery(c.nextDelivery(), m2, true);
72107
channel.basicCancel(consumerTag);

0 commit comments

Comments
 (0)