reconnect to redis if the connection went away
[perl-Redis.git] / t / 01-Redis.t
index ddb3da6..1d596da 100755 (executable)
@@ -3,8 +3,8 @@
 use warnings;
 use strict;
 
-use Test::More tests => 106;
-use Data::Dump qw/dump/;
+use Test::More tests => 111;
+use Data::Dumper;
 
 use lib 'lib';
 
@@ -16,6 +16,7 @@ ok( my $o = Redis->new(), 'new' );
 
 ok( $o->ping, 'ping' );
 
+ok( $o = Redis->new( server => 'localhost:6379' ), 'new with server' );
 
 diag "Commands operating on string values";
 
@@ -25,10 +26,25 @@ ok( ! $o->setnx( foo => 'bar' ), 'setnx foo => bar fails' );
 
 cmp_ok( $o->get( 'foo' ), 'eq', 'bar', 'get foo = bar' );
 
+SKIP: {
+    skip "set REDIS_RESTART to init script location to test reconnect code", 1 unless $ENV{REDIS_RESTART};
+
+    diag( 'Restarting redis server' );
+    $o->save();
+
+    `sudo $ENV{REDIS_RESTART} restart`;
+
+    cmp_ok( $o->get( 'foo' ), 'eq', 'bar', 'get foo = bar still works after restart' );
+}
+
 ok( $o->set( foo => 'baz' ), 'set foo => baz' );
 
 cmp_ok( $o->get( 'foo' ), 'eq', 'baz', 'get foo = baz' );
 
+my $euro = "\x{20ac}";
+ok( $o->set( utf8 => $euro ), 'set utf8' );
+cmp_ok( $o->get( 'utf8' ), 'eq', $euro, 'get utf8' );
+
 ok( $o->set( 'test-undef' => 42 ), 'set test-undef' );
 ok( $o->set( 'test-undef' => undef ), 'set undef' );
 ok( ! defined $o->get( 'test-undef' ), 'get undef' );
@@ -182,7 +198,8 @@ diag "shutdown not tested";
 diag "Remote server control commands";
 
 ok( my $info = $o->info, 'info' );
-diag dump( $info );
+isa_ok( $info, 'HASH' );
+diag Dumper( $info );
 
 diag "Connection handling";