AnyEvent-RipeRedis
view release on metacpan or search on metacpan
t/04-commands.t view on Meta::CPAN
use 5.008000;
use strict;
use warnings;
use utf8;
use Test::More;
use AnyEvent::RipeRedis qw( :err_codes );
require 't/test_helper.pl';
my $server_info = run_redis_instance();
if ( !defined $server_info ) {
plan skip_all => 'redis-server is required for this test';
}
plan tests => 33;
my $T_CONNECTED = 0;
my $T_DISCONNECTED = 0;
my $redis;
ev_loop(
sub {
my $cv = shift;
$redis = AnyEvent::RipeRedis->new(
host => $server_info->{host},
port => $server_info->{port},
connection_timeout => 5,
read_timeout => 5,
handle_params => {
autocork => 1,
},
on_connect => sub {
$T_CONNECTED = 1;
$cv->send;
},
on_disconnect => sub {
$T_DISCONNECTED = 1;
},
);
},
);
ok( $T_CONNECTED, 'on_connect' );
t_status_reply($redis);
t_numeric_reply($redis);
t_bulk_reply($redis);
t_set_undef($redis);
t_get_undef($redis);
t_set_utf8_string($redis);
t_get_utf8_string($redis);
t_get_non_existent($redis);
t_mbulk_reply($redis);
t_mbulk_reply_empty_list($redis);
t_mbulk_reply_undef($redis);
t_nested_mbulk_reply($redis);
t_multiword_command($redis);
t_error_reply($redis);
t_default_on_error($redis);
t_error_after_exec($redis);
t_discard_method($redis);
t_execute_method($redis);
t_quit($redis);
sub t_status_reply {
my $redis = shift;
my $t_reply;
ev_loop(
sub {
my $cv = shift;
$redis->set( 'foo', "some\r\nstring",
sub {
$t_reply = shift;
my $err = shift;
if ( defined $err ) {
diag( $err->message );
}
}
);
$redis->del( 'foo',
sub {
my $reply = shift;
my $err = shift;
if ( defined $err ) {
diag( $err->message );
}
$cv->send;
}
);
}
);
is( $t_reply, 'OK', 'status reply; SET' );
return;
}
sub t_numeric_reply {
my $redis = shift;
my $t_reply;
ev_loop(
t/04-commands.t view on Meta::CPAN
}
sub t_set_undef {
my $redis = shift;
my $t_reply;
ev_loop(
sub {
my $cv = shift;
$redis->set( 'empty', undef,
sub {
$t_reply = shift;
my $err = shift;
if ( defined $err ) {
diag( $err->message );
}
$cv->send;
}
);
}
);
is( $t_reply, 'OK', 'write undef; SET' );
return;
}
sub t_get_undef {
my $redis = shift;
my $t_reply;
ev_loop(
sub {
my $cv = shift;
$redis->get( 'empty',
sub {
$t_reply = shift;
my $err = shift;
if ( defined $err ) {
diag( $err->message );
}
$cv->send;
}
);
}
);
is( $t_reply, '', 'read undef; GET' );
return;
}
sub t_set_utf8_string {
my $redis = shift;
my $t_reply;
ev_loop(
sub {
my $cv = shift;
$redis->set( 'клÑÑ', 'ÐнаÑение',
sub {
$t_reply = shift;
my $err = shift;
if ( defined $err ) {
diag( $err->message );
}
}
);
$redis->del( 'клÑÑ',
sub {
my $reply = shift;
my $err = shift;
if ( defined $err ) {
diag( $err->message );
}
$cv->send;
}
);
}
);
is( $t_reply, 'OK', 'write UTF-8 string; SET' );
return;
}
sub t_get_utf8_string {
my $redis = shift;
my $t_reply;
ev_loop(
sub {
my $cv = shift;
$redis->set( 'клÑÑ', 'ÐнаÑение' );
$redis->get( 'клÑÑ',
sub {
$t_reply = shift;
my $err = shift;
if ( defined $err ) {
diag( $err->message );
}
}
);
$redis->del( 'клÑÑ',
sub {
my $reply = shift;
my $err = shift;
if ( defined $err ) {
diag( $err->message );
}
$cv->send;
}
);
}
);
is( $t_reply, 'ÐнаÑение', 'read UTF-8 string; GET' );
return;
}
sub t_get_non_existent {
my $redis = shift;
my $t_reply = 'not_undef';
my $t_err;
ev_loop(
sub {
my $cv = shift;
$redis->get( 'non_existent',
sub {
$t_reply = shift;
$t_err = shift;
if ( defined $t_err ) {
diag( $t_err->message );
}
( run in 0.345 second using v1.01-cache-2.11-cpan-97f6503c9c8 )