AnyEvent-RipeRedis-Cluster

 view release on metacpan or  search on metacpan

t/test_helper.pl  view on Meta::CPAN

          my $self     = shift;
          my $cmd_name = shift;
          my $cbs      = pop;
          my @args     = @_;

          my $reply;
          my $err;

          if ( $cmd_name eq 'hget' ) {
            $err = AnyEvent::RipeRedis::Error->new(
                q{LOADING Redis is loading the dataset in memory}, 2 );
          }
          else {
            $reply = clone( $command_replies{$cmd_name} );
          }

          AE::postpone {
            $cbs->{on_reply}->( $reply, $err );
          };
        }
      );

      $mock->mock( 'disconnect', sub {} );

      foreach my $name ( qw( host port ) ) {
        $mock->mock( $name,
          sub {
            my $self = shift;
            return $self->{$name};
          }
        );
      }

      return $mock;
    },
  );
}

use AnyEvent::RipeRedis::Cluster qw( :err_codes );

sub new_cluster {
  my %params = @_;

  return AnyEvent::RipeRedis::Cluster->new(
    startup_nodes => [
      { host => '127.0.0.1', port => 7000 },
      { host => '127.0.0.1', port => 7001 },
      { host => '127.0.0.1', port => 7002 },
    ],
    %params,
  );
}

sub ev_loop {
  my $sub = shift;

  my $cv = AE::cv;

  $sub->($cv);

  my $timer = AE::timer( 10, 0,
    sub {
      diag( 'Emergency exit from event loop.' );
      $cv->send;
    }
  );

  $cv->recv;

  return;
}

sub nodes {
  my $cluster = shift;
  my $key     = shift;
  my $allow_slaves = shift;

  return sort { $a->[0] cmp $b->[0] || $a->[1] <=> $b->[1] }
      map { [ $_->host, $_->port ] } $cluster->nodes( $key, $allow_slaves );

  return;
}

1;



( run in 0.416 second using v1.01-cache-2.11-cpan-af0e5977854 )