1use Test::More tests => 18;
2use strict;
3use warnings;
4
5use FindBin qw/$Bin/;
6use lib "$Bin/lib";
7use NAR::Helper;
8
9my $helper = NAR::Helper->new;
10
11ok $helper->connect, "connected";
12ok $helper->channel_open, "channel_open";
13ok $helper->exchange_declare, "default exchange declare";
14ok $helper->queue_declare, "queue declare";
15ok $helper->queue_bind, "queue bind";
16ok $helper->drain, "drain queue";
17
18my $tag_back = $helper->consume;
19is $helper->{consumer_tag}, $tag_back, 'consume returns the tag we gave it';
20
21#we don't need to publish or anything, as the segfault happens either way
22my $rv = $helper->recv(-1);
23$helper->ack( 1231211 );
24
25#cancel will fail because the above ack caused an error
26# this used to cause a segfault. but now it shouldn't
27is $helper->cancel, undef, 'cancel fails';
28is $rv, undef, "recv";
29
30ok $helper->disconnect, 'disconnect';
31
32ok $helper->connect, "connected";
33ok $helper->channel_open, "channel_open";
34ok $helper->queue_bind, "queue bind";
35ok $helper->drain, "drain queue";
36
37$tag_back = $helper->consume;
38is $helper->{consumer_tag}, $tag_back, 'consume returns the tag we gave it';
39
40#this one shouldn't fail or segfault
41ok $helper->cancel( $tag_back ), 'cancel ok';
42ok $helper->disconnect, 'disconnect';
43ok !$helper->cancel, "cancel on disconnected fails";
44