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 )