AnyEvent-Redis-RipeRedis
view release on metacpan or search on metacpan
t/05-db-select.t view on Meta::CPAN
$cv->send();
}
};
$redis_db1->ping( { on_done => $on_done_cb } );
$redis_db2->ping( { on_done => $on_done_cb } );
}
);
my $db1_index = $redis_db1->selected_database();
my $db2_index = $redis_db2->selected_database();
my %t_data;
ev_loop(
sub {
my $cv = shift;
$redis_db1->get( 'foo',
{ on_done => sub {
$t_data{db1} = shift;
},
}
);
$redis_db2->get( 'foo',
{ on_done => sub {
$t_data{db2} = shift;
},
}
);
my $done_cnt = 0;
my $on_done_cb = sub {
if ( ++$done_cnt == 2 ) {
$cv->send();
}
};
$redis_db1->del( 'foo', { on_done => $on_done_cb } );
$redis_db2->del( 'foo', { on_done => $on_done_cb } );
}
);
my $t_npref = 'auto-selection of DB after reconnection';
is( $db1_index, 1, "$t_npref; first DB index" );
is( $db2_index, 2, "$t_npref; second DB index" );
is_deeply( \%t_data,
{ db1 => 'bar1',
db2 => 'bar2',
},
"$t_npref; SET and GET"
);
return;
}
sub t_auto_select_after_auth {
my $server_info = shift;
my $redis_db1 = AnyEvent::Redis::RipeRedis->new(
host => $server_info->{host},
port => $server_info->{port},
password => $server_info->{password},
database => 1,
);
my $redis_db2 = AnyEvent::Redis::RipeRedis->new(
host => $server_info->{host},
port => $server_info->{port},
password => $server_info->{password},
database => 2,
);
ev_loop(
sub {
my $cv = shift;
my $done_cnt = 0;
my $on_done_cb = sub {
if ( ++$done_cnt == 2 ) {
$cv->send();
}
};
$redis_db1->ping( { on_done => $on_done_cb } );
$redis_db2->ping( { on_done => $on_done_cb } );
}
);
my $db1_index = $redis_db1->selected_database();
my $db2_index = $redis_db2->selected_database();
my $t_data = set_get( $redis_db1, $redis_db2 );
my $t_npref = 'auto-selection of DB after authentication';
is( $db1_index, 1, "$t_npref; first DB index" );
is( $db2_index, 2, "$t_npref; second DB index" );
is_deeply( $t_data,
{ db1 => 'bar1',
db2 => 'bar2',
},
"$t_npref; SET and GET"
);
return;
}
sub set_get {
my $redis_db1 = shift;
my $redis_db2 = shift;
ev_loop(
sub {
my $cv = shift;
my $done_cnt = 0;
my $on_done = sub {
++$done_cnt;
if ( $done_cnt == 2 ) {
$cv->send();
}
};
$redis_db1->set( 'foo', 'bar1', { on_done => $on_done } );
$redis_db2->set( 'foo', 'bar2', { on_done => $on_done } );
}
);
my %t_data;
ev_loop(
sub {
( run in 0.370 second using v1.01-cache-2.11-cpan-13bb782fe5a )