use Test::More tests => 18;
use Data::Dumper;
require_ok ( 'Redis::hiredis' );
my $h = Redis::hiredis->new();
isa_ok($h, 'Redis::hiredis');
SKIP: {
skip "No REDISHOST defined", 16 if ( ! defined $ENV{'REDISHOST'} );
my $host = $ENV{'REDISHOST'};
my $port = $ENV{'REDISPORT'} || 6379;
my $r;
my $c = $h->connect($host, $port);
is($c, undef, 'connect success');
my $prefix = "Redis-hiredis-$$-";
$h->command("set ".$prefix."foo bar");
$h->command("set ".$prefix."baz foo");
$r = $h->command('exists '.$prefix.'foo');
is($r, 1, 'exists');
$r = $h->command('type '.$prefix.'foo');
is($r, 'string', 'type');
$r = $h->command('keys '.$prefix.'fo*');
is($r->[0], $prefix.'foo', 'keys');
$r = $h->command('randomkey');
isnt($r, undef, 'randomkey');
$r = $h->command('rename '.$prefix.'foo '.$prefix.'bar');
is($r, 'OK', 'rename');
$r = $h->command('renamenx '.$prefix.'bar '.$prefix.'awesomesauce');
is($r, 1, 'renamenx');
$r = $h->command('renamenx '.$prefix.'baz '.$prefix.'awesomesauce');
is($r, 0, 'renamenx to existing key');
$r = $h->command('dbsize');
cmp_ok($r, '>=', 1, 'dbsize');
$r = $h->command('move '.$prefix.'baz 1');
is($r, 1, 'move');
$r = $h->command('select 1');
is($r, 'OK', 'select');
$r = $h->command('del '.$prefix.'baz');
is($r, 1, 'del');
$r = $h->command('select 0');
$h->command('set '.$prefix.'baz bar');
$r = $h->command('expire '.$prefix.'baz 86400');
is($r, 1, 'expire');
$r = $h->command('ttl '.$prefix.'baz');
cmp_ok($r, '>', 86300, 'ttl');
$h->command("del ".$prefix."awesomesauce");
$h->command("del ".$prefix."baz");
SKIP: {
skip "not destroying data", 2 unless $ENV{'REDIS_TEST_DESTRUCTIVE'};
$r = $h->command('flushdb');
is($r, 'OK', 'flushdb');
$r = $h->command('flushall');
is($r, 'OK', 'flushall');
};
};