~ubuntu-branches/ubuntu/oneiric/libanyevent-redis-perl/oneiric

« back to all changes in this revision

Viewing changes to t/client.t

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghedini
  • Date: 2011-02-09 19:31:48 UTC
  • Revision ID: james.westby@ubuntu.com-20110209193148-asa3jeyaol6nikd2
Tags: upstream-0.23
ImportĀ upstreamĀ versionĀ 0.23

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
use strict;
 
2
use Test::More;
 
3
use t::Redis;
 
4
 
 
5
test_redis {
 
6
    my $r = shift;
 
7
 
 
8
    $r->all_cv->begin(sub { $_[0]->send });
 
9
 
 
10
    my $info = $r->info->recv;
 
11
    is ref $info, 'HASH';
 
12
    ok $info->{redis_version};
 
13
 
 
14
    $r->set("foo", "bar", sub { pass "SET foo" });
 
15
    $r->get("foo", sub { is $_[0], "bar" });
 
16
 
 
17
    $r->lpush("list", "bar");
 
18
    $r->lpush("list", "baz");
 
19
 
 
20
    is $r->lpop("list")->recv, 'baz';
 
21
    is $r->lpop("list")->recv, 'bar';
 
22
 
 
23
    $r->set("prefix.bar", "test", sub { $r->get("prefix.bar", sub { is $_[0], "test" }) });
 
24
    $r->set("prefix.baz", "test");
 
25
 
 
26
    $r->mget(
 
27
        "prefix.bar",
 
28
        "prefix.baz",
 
29
        "foo",
 
30
        sub {
 
31
            my $res = shift;
 
32
            is $res->[0], "test";
 
33
            is $res->[2], "bar";
 
34
        }
 
35
    );
 
36
    $r->mget(
 
37
        1, 2, 3,
 
38
        sub {
 
39
            my $res = shift;
 
40
            map { ok !$_ } @$res;
 
41
        }
 
42
    );
 
43
    $r->mget(
 
44
        1,
 
45
        "prefix.baz",
 
46
        "barbaz",
 
47
        sub {
 
48
            my $res = shift;
 
49
            ok !$res->[0];
 
50
            is $res->[1], "test";
 
51
            ok !$res->[2];
 
52
        }
 
53
    );
 
54
 
 
55
    if ($info->{redis_version} =~ /^2/) {
 
56
        $r->hset("hash", "foo", "bar", sub { is $_[0], 1 });
 
57
        $r->hset("hash", "baz", "foo");
 
58
        $r->hget("hash", "foo", sub { is $_[0], "bar" });
 
59
        $r->hmget("hash", "foo", "baz",
 
60
            sub { my $res = shift; is $res->[0], "bar"; is $res->[1], "foo" });
 
61
        $r->hdel("hash", "foo", sub { is $_[0], 1 });
 
62
        $r->hmset("hash", "foo", 1, "bar", 2, "baz", 3,
 
63
            sub { my $res = shift; ok $res });
 
64
        $r->hincrby("hash", "foo", 2, sub { my $res = shift; is $res, 3 });
 
65
        $r->hkeys("hash", sub {my $res = shift; is scalar @$res, 3;});
 
66
        $r->hvals("hash", sub {my $res = shift; is scalar @$res, 3;});
 
67
        $r->hgetall("hash", sub {my $res = shift; is scalar @$res, 6;});
 
68
        for (qw/foo bar baz/) {
 
69
            $r->hdel("hash", $_);
 
70
        }
 
71
    }
 
72
 
 
73
    $r->keys('prefix.*', sub { my $keys = shift; is ref $keys, 'ARRAY'; is @$keys, 2 });
 
74
 
 
75
    my $cv = $r->get("nonx");
 
76
    is $cv->recv, undef;
 
77
 
 
78
    my $err;
 
79
    $r->{on_error} = sub { $err = shift };
 
80
    $r->bogus("foo", sub { });
 
81
 
 
82
    $r->all_cv->end;
 
83
    $r->all_cv->recv;
 
84
 
 
85
    like $err, qr/ERR unknown command/;
 
86
};
 
87
 
 
88
done_testing;
 
89
 
 
90