AnyEvent-RipeRedis

 view release on metacpan or  search on metacpan

t/05-db-select.t  view on Meta::CPAN

        sub {
          $t_data{db1} = shift;
          my $err      = shift;

          if ( defined $err ) {
            diag( $err->message );
          }
        }
      );
      $redis_db2->get( 'foo',
        sub {
          $t_data{db2} = shift;
          my $err      = shift;

          if ( defined $err ) {
            diag( $err->message );
          }
        }
      );

      my $reply_cnt = 0;

      my $on_reply = sub {
        my $reply = shift;
        my $err   = shift;

        if ( defined $err ) {
          diag( $err->message );
        }

        if ( ++$reply_cnt == 2 ) {
          $cv->send;
        }
      };

      $redis_db1->del( 'foo', $on_reply );
      $redis_db2->del( 'foo', $on_reply );
    }
  );

  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::RipeRedis->new(
    host     => $server_info->{host},
    port     => $server_info->{port},
    password => $server_info->{password},
    database => 1,
  );
  my $redis_db2 = AnyEvent::RipeRedis->new(
    host     => $server_info->{host},
    port     => $server_info->{port},
    password => $server_info->{password},
    database => 2,
  );

  ev_loop(
    sub {
      my $cv = shift;

      my $reply_cnt = 0;

      my $on_reply = sub {
        my $reply = shift;
        my $err   = shift;

        if ( defined $err ) {
          diag( $err->message );
        }

        if ( ++$reply_cnt == 2 ) {
          $cv->send;
        }
      };

      $redis_db1->ping($on_reply);
      $redis_db2->ping($on_reply);
    }
  );

  my $db1_index = $redis_db1->database;
  my $db2_index = $redis_db2->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 $reply_cnt = 0;

      my $on_reply = sub {
        my $reply = shift;
        my $err   = shift;

        if ( defined $err ) {



( run in 2.292 seconds using v1.01-cache-2.11-cpan-e1769b4cff6 )