AnyEvent-JSONRPC-Lite
view release on metacpan or search on metacpan
t/disconnect.t view on Meta::CPAN
on_error => sub {
warn 'Server got: ', $_[2];
$state = 'disconnected';
},
on_eof => sub {
$state = 'disconnected';
},
on_read => sub { },
);
}, sub {
my $t; $t = AnyEvent->timer(
after => 1,
cb => sub {
$ready->send;
undef $t;
},
);
};
$ready->recv;
{
my $client = jsonrpc_client '127.0.0.1', $port;
# disconnect soon after leaving this scope
my $sleep = AnyEvent->condvar;
my $t; $t = AnyEvent->timer( after => 1, cb => sub { $sleep->send });
$sleep->recv;
}
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_sec(2), rand_sec(2), rand_sec(2), rand_sec(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 1.480 second using v1.01-cache-2.11-cpan-49f99fa48dc )