1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
#!perl
use lib 't/lib';
use TestHelp;
use Test::Fatal;
use Log::Any::Adapter::Test;
{no warnings 'redefine';
sub Net::Stomp::_get_connection {}
}
subtest 'reconnect on fork' => sub {
my $s = mkstomp();
is($s->reconnect_on_fork,1,'defaults to true');
$s = mkstomp(reconnect_on_fork => 0);
is($s->reconnect_on_fork,0,'can be turned off');
};
subtest 'hosts' => sub {
my $s = mkstomp(hosts=>[{foo=>'bar'}]);
cmp_deeply($s->hosts,[{foo=>'bar'}],'one host ok');
$s = mkstomp(hosts=>[{foo=>'bar'},{one=>'two'}]);
cmp_deeply($s->hosts,[{foo=>'bar'},{one=>'two'}],'two hosts ok');
};
subtest 'failover' => sub {
my %cases = (
'failover:tcp://one:1234' => [
{hostname=>'one',port=>1234},
],
'failover:(tcp://one:1234)?opts' => [
{hostname=>'one',port=>1234},
],
'failover:tcp://one:1234,tcp://two:3456' => [
{hostname=>'one',port=>1234},
{hostname=>'two',port=>3456},
],
'failover:(tcp://one:1234,tcp://two:3456)?opts' => [
{hostname=>'one',port=>1234},
{hostname=>'two',port=>3456},
],
);
for my $case (sort keys %cases) {
my $s = mkstomp(
failover=>$case,
);
cmp_deeply($s->hosts,$cases{$case},"$case parsed ok");
}
};
subtest 'bad failover' => sub {
Log::Any::Adapter->set(
{ lexically => \(my $guard) },
'Test',
);
Log::Any::Adapter::Test->clear;
like(
exception { mkstomp(failover=>'bad') },
qr{Unable to parse failover uri}i,
'bad uri correct exception',
);
like(
exception { mkstomp(failover=>'failover://(a,b)') },
qr{Unable to parse failover component}i,
'bad component correct exception',
);
Log::Any::Adapter::Test->category_contains_ok(
'Net::Stomp',
qr{Unable to parse failover uri},
'the problem should be logged',
);
};
done_testing;
|