mget
[perl-Redis.git] / t / 01-Redis.t
index 2d13b97..7c9ec64 100755 (executable)
@@ -3,7 +3,7 @@
 use warnings;
 use strict;
 
-use Test::More tests => 75;
+use Test::More tests => 95;
 
 use lib 'lib';
 
@@ -15,6 +15,8 @@ ok( my $o = Redis->new(), 'new' );
 
 ok( $o->ping, 'ping' );
 
+diag "Commands operating on string values";
+
 ok( $o->set( foo => 'bar' ), 'set foo => bar' );
 
 eval { $o->set( foo => 'bar', 1 ) };
@@ -43,6 +45,8 @@ my $key_next = 3;
 
 ok( $o->set('key-left' => $key_next), 'key-left' );
 
+is_deeply( [ $o->mget( 'foo', 'key-next', 'key-left' ) ], [ 'baz', 0, 3 ], 'mget' );
+
 my @keys;
 
 foreach ( 0 .. $key_next ) {
@@ -115,4 +119,49 @@ cmp_ok( $o->lpop( $list ), 'eq', 'r1', 'lpop' );
 
 ok( ! $o->rpop( $list ), 'rpop' );
 
+
+diag "Commands operating on sets";
+
+my $set = 'test-set';
+$o->del($set);
+
+ok( $o->sadd( $set, 'foo' ), 'sadd' );
+ok( ! $o->sadd( $set, 'foo' ), 'sadd' );
+cmp_ok( $o->scard( $set ), '==', 1, 'scard' );
+ok( $o->sismember( $set, 'foo' ), 'sismember' );
+
+cmp_ok( $o->type( $set ), 'eq', 'set', 'type is set' );
+
+ok( $o->srem( $set, 'foo' ), 'srem' );
+ok( ! $o->srem( $set, 'foo' ), 'srem again' );
+cmp_ok( $o->scard( $set ), '==', 0, 'scard' );
+
+$o->sadd( 'test-set1', $_ ) foreach ( 'foo', 'bar', 'baz' );
+$o->sadd( 'test-set2', $_ ) foreach ( 'foo', 'baz', 'xxx' );
+
+my $inter = [ 'baz', 'foo' ];
+
+is_deeply( [ $o->sinter( 'test-set1', 'test-set2' ) ], $inter, 'siter' );
+
+ok( $o->sinterstore( 'test-set-inter', 'test-set1', 'test-set2' ), 'sinterstore' );
+
+cmp_ok( $o->scard( 'test-set-inter' ), '==', $#$inter + 1, 'cardinality of intersection' );
+
+
+diag "Multiple databases handling commands";
+
+ok( $o->select( 1 ), 'select' );
+ok( $o->select( 0 ), 'select' );
+
+ok( $o->move( 'foo', 1 ), 'move' );
+ok( ! $o->exists( 'foo' ), 'gone' );
+
+ok( $o->select( 1 ), 'select' );
+ok( $o->exists( 'foo' ), 'exists' );
+
+ok( $o->flushdb, 'flushdb' );
+cmp_ok( $o->dbsize, '==', 0, 'empty' );
+
+diag "Connection handling";
+
 ok( $o->quit, 'quit' );