keys, _sock_result_bulk
[perl-Redis.git] / t / 01-Redis.t
1 #!/usr/bin/perl
2
3 use warnings;
4 use strict;
5
6 use Test::More tests => 48;
7
8 use lib 'lib';
9
10 BEGIN {
11         use_ok( 'Redis' );
12 }
13
14 ok( my $o = Redis->new(), 'new' );
15
16 ok( $o->ping, 'ping' );
17
18 ok( $o->set( foo => 'bar' ), 'set foo => bar' );
19
20 eval { $o->set( foo => 'bar', 1 ) };
21 ok( $@, 'set foo => bar new again failed' );
22
23 cmp_ok( $o->get( 'foo' ), 'eq', 'bar', 'get foo = bar' );
24
25 ok( $o->set( foo => 'baz' ), 'set foo => baz' );
26
27 cmp_ok( $o->get( 'foo' ), 'eq', 'baz', 'get foo = baz' );
28
29 $o->del('non-existant');
30
31 ok( ! $o->exists( 'non-existant' ), 'exists non-existant' );
32 ok( ! $o->get( 'non-existant' ), 'get non-existant' );
33
34 ok( $o->set('key-next' => 0), 'key-next = 0' );
35
36 my $key_next = 3;
37
38 ok( $o->set('key-left' => $key_next), 'key-left' );
39
40 my @keys;
41
42 foreach ( 0 .. $key_next ) {
43         my $key = 'key-' . $_;
44         push @keys, $key;
45         ok(     $o->set( $key => $_ ),           "set $key" );
46         ok(  $o->exists( $key       ),           "exists $key" );
47         cmp_ok( $o->get( $key       ), 'eq', $_, "get $key" );
48         cmp_ok( $o->incr( 'key-next' ), '==', $_ + 1, 'incr' );
49         cmp_ok( $o->decr( 'key-left' ), '==', $key_next - $_ - 1, 'decr' );
50 }
51
52 cmp_ok( $o->get( 'key-next' ), '==', $key_next + 1, 'key-next' );
53
54 ok( $o->set('test-incrby', 0), 'test-incrby' );
55 ok( $o->set('test-decrby', 0), 'test-decry' );
56 foreach ( 1 .. 3 ) {
57         cmp_ok( $o->incr('test-incrby', 3), '==', $_ * 3, 'incrby 3' );
58         cmp_ok( $o->decr('test-decrby', 7), '==', -( $_ * 7 ), 'decrby 7' );
59 }
60
61 ok( $o->del( $_ ), "del $_" ) foreach map { "key-$_" } ( 'next', 'left' );
62 ok( ! $o->del('non-existing' ), 'del non-existing' );
63
64 cmp_ok( $o->type('foo'), 'eq', 'string', 'type' );
65
66 cmp_ok( $o->keys('key-*'), '==', $key_next + 1, 'key-*' );
67 is_deeply( [ $o->keys('key-*') ], [ @keys ], 'keys' );
68
69 ok( $o->quit, 'quit' );