Net::RabbitMQ::Java->init;
my
$factory
= Net::RabbitMQ::Java::Client::ConnectionFactory->new;
isa_ok(
$factory
,
'Net::RabbitMQ::Java::Client::ConnectionFactory'
);
$factory
->setUsername(
'guest'
);
$factory
->setPassword(
'guest'
);
$factory
->setHost(
$ENV
{
'MQHOST'
} ||
"dev.rabbitmq.com"
);
$factory
->setPort(
$ENV
{
'MQPORT'
} || 5672);
ok(
my
$conn
=
eval
{
$factory
->newConnection })
or diag($@->printStackTrace);
isa_ok(
$conn
,
'Net::RabbitMQ::Java::Client::impl::AMQConnection'
);
my
$channel
=
$conn
->createChannel;
isa_ok(
$channel
,
'Net::RabbitMQ::Java::Client::impl::ChannelN'
);
my
$cb
=
$conn
->addShutdownListener(
sub
{
my
(
$shutdownSignalException
) =
@_
;
isa_ok(
$shutdownSignalException
,
'Net::RabbitMQ::Java::Client::ShutdownSignalException'
);
like(
$shutdownSignalException
->getReason->getMethod->getReplyText,
qr/NOT_FOUND/
,
'shutdown reason'
);
ok(1,
'connection shutdown'
);
});
isa_ok(
$cb
,
'Net::RabbitMQ::Java::Helper::CallbackCaller'
);
my
$cb1
=
$channel
->addShutdownListener(
sub
{
my
(
$shutdownSignalException
) =
@_
;
isa_ok(
$shutdownSignalException
,
'Net::RabbitMQ::Java::Client::ShutdownSignalException'
);
like(
$shutdownSignalException
->getReason->getMethod->getReplyText,
qr/NOT_FOUND/
,
'shutdown reason'
);
ok(1,
'channel shutdown'
);
});
isa_ok(
$cb
,
'Net::RabbitMQ::Java::Helper::CallbackCaller'
);
my
$cb2
=
$channel
->addShutdownListener(
sub
{
ok(1,
'second channel shutdown callback'
);
});
isa_ok(
$cb2
,
'Net::RabbitMQ::Java::Helper::CallbackCaller'
);
ok(
my
$txSelect_res
=
eval
{
$channel
->txSelect }) or diag $@;
isa_ok(
$txSelect_res
,
'Net::RabbitMQ::Java::Client::impl::AMQImpl::Tx::SelectOk'
);
for
(1..3) {
ok(
eval
{
$channel
->basicPublish(
'non-existent-exchange'
,
'non-existent-routing-key'
,
1,
1,
undef
,
"unroutable message"
);
1;
},
'basicPublish'
) or diag $@;
}
my
$txCommit_res
=
eval
{
$channel
->txCommit };
isa_ok($@,
'Net::RabbitMQ::Java::java::io::IOException'
,
'commit failure'
);
Net::RabbitMQ::Java->processCallbacks;
1;