AnyEvent-JSONRPC

 view release on metacpan or  search on metacpan

t/disconnect.t  view on Meta::CPAN

    );
};

{
    my $client = jsonrpc_client '127.0.0.1', $port;
    # disconnect soon after leaving this scope
}

my $cv = AnyEvent->condvar;

my ($client, $timer1, $timer2);
my $t = AnyEvent->timer(
    after => 1,
    cb    => sub {
        is $state, 'disconnected', 'already disconnected ok';

        $client = jsonrpc_client '127.0.0.1', $port;
        $timer1 = AnyEvent->timer(
            after => 0.5,
            cb    => sub {
                is $state, 'connected', 'connected at this time ok';
                undef $client;  # disconnect here
            },
        );

        $timer2 = AnyEvent->timer(
            after => 1,
            cb    => sub {
                is $state, 'disconnected', 'connection disconnected ok';
                $cv->send;
            },
        );
    },
);

$cv->recv;

t/disconnect_server.t  view on Meta::CPAN

        },
    );

    my $d = $client->call( echo => { foo => 'bar' } );
    my $res = $d->recv;

    is_deeply({ foo => 'bar' }, $res, 'echo response ok');

    undef $server;

    my $t; $t = AnyEvent->timer(
        after => 0.5,
        cb    => sub {
            undef $t;
            ok $closed, 'server closed ok';
            $cv->send;
        },
    );
}

$cv->recv;

t/mix_request.t  view on Meta::CPAN


my $waits = [ undef, rand(2), rand(2), rand(2), rand(2) ];
my $exit = 0;

$server->reg_cb(
    wait => sub {
        my ($r, $num, $wait) = @_;

        is( $waits->[$num], $wait, "Num $num will wait for $wait seconds ok");

        my $w; $w = AnyEvent->timer(
            after => $wait,
            cb    => sub {
                $r->result($wait);
                if (++$exit >= 4) {
                    my $w; $w = AnyEvent->timer(
                        after => 0.3,
                        cb    => sub { undef $w; $cv->send },
                    );
                }
                else {
                    undef $w;
                }
            },
        );
    },



( run in 0.996 second using v1.01-cache-2.11-cpan-49f99fa48dc )