AnyEvent-RabbitMQ-Fork

 view release on metacpan or  search on metacpan

t/release-04_anyevent.t  view on Meta::CPAN

#!/usr/bin/env perl

BEGIN {
  unless ($ENV{RELEASE_TESTING}) {
    print qq{1..0 # SKIP these tests are for release candidate testing\n};
    exit
  }
}


use strict;
use warnings;

use Test::More;
use Test::Exception;
use Data::Dumper;

use FindBin;

my %server = (
    product => undef,
    version => undef,
);

my %conf = (
    host  => 'localhost',
    port  => 5672,
    user  => 'guest',
    pass  => 'guest',
    vhost => q{/},
    #verbose => 1,
);

eval {
    use IO::Socket::INET;

    my $socket = IO::Socket::INET->new(
        Proto    => 'tcp',
        PeerAddr => $conf{host},
        PeerPort => $conf{port},
        Timeout  => 1,
      )
      or die 'Error connecting to AMQP Server!';

    close $socket;
};

plan skip_all => 'Connection failure: ' . $conf{host} . q{:} . $conf{port} if $@;

use AnyEvent::RabbitMQ::Fork;

my $ar = AnyEvent::RabbitMQ::Fork->new(verbose => $conf{verbose});

lives_ok sub {
    $ar->load_xml_spec();
}, 'load xml spec';

my @nagle = ([], [nodelay => 0], [nodelay => 1]);

for my $opt (@nagle) {
    my $done = AnyEvent->condvar;
    my $z = AnyEvent::RabbitMQ::Fork->new(verbose => $conf{verbose})->load_xml_spec;
    $z->connect(
        (map { $_ => $conf{$_} } qw(host port user pass vhost)),
        timeout    => 1,
        on_success => sub {
            my $ar = shift;
            isa_ok($ar, 'AnyEvent::RabbitMQ::Fork');
            $done->send;
        },
        on_failure => failure_cb($done),
        on_return  => sub {
            my $method_frame = shift->method_frame;
            die "return: ", $method_frame->reply_code, $method_frame->reply_text
              if $method_frame->reply_code;
        },
        on_close => sub {
            my $method_frame = shift->method_frame;
            Carp::confess "close: ", $method_frame->reply_code, $method_frame->reply_text
              if $method_frame->reply_code;
        },
        @{$opt},
    );
    $done->recv;
}

my $done = AnyEvent->condvar;
$ar->connect(
    (map { $_ => $conf{$_} } qw(host port user pass vhost)),
    tune       => { frame_max => 2**17 },
    timeout    => 1,
    on_success => sub {
        my $ar = shift;
        isa_ok($ar, 'AnyEvent::RabbitMQ::Fork');
        $server{product} = $ar->server_properties->{product};
        $server{version} = version->parse($ar->server_properties->{version});
        $done->send;
    },
    on_failure => failure_cb($done),
    on_return  => sub {
        my $method_frame = shift->method_frame;

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 1.307 second using v1.00-cache-2.02-grep-82fe00e-cpan-cec75d87357c )